remquo()、remquof()、remquol() - 剰余の計算

標準

標準/拡張機能 C/C++ 依存項目

C99
Single UNIX Specification、バージョン 3
C++ TR1 C99

両方 z/OS® V1R5

形式

#define _ISOC99_SOURCE
#include <math.h>

double remquo(double x, double y, int *quo);
float remquof(float x, float y, int *quo);
long double remquol(long double x, long double y, int *quo);
C++ TR1 C99
#define _TR1_C99
#include <math.h>

float remquo(float x, float y, int *quo); 
long double remquo(long double x, long double y, int *quo);

機能説明

remquo 関数は、remainder 関数と同じ剰余を計算します。 remquo 関数は、quo で指されるオブジェクトの中に、符号は x/y の符号であり、 絶対値は x/y の整数商の絶対値に対して 2 の n 乗 (n はインプリメンテーション依存の 3 以上の値) を法とする (剰余である) 値を保管します。
注: 下表は、これらの関数の実行可能な形式を示しています。 IEEE 2 進数浮動小数点の詳細は、IEEE 2 進数浮動小数点を参照してください。
関数 Hex IEEE
remquo X X
remquof X X
remquol X X
制約事項: remquof() 関数は、_FP_MODE_VARIABLE フィーチャー・テスト・マクロをサポートしません。

戻り値

remquo 関数は、xy で割った剰余を戻します。

/*
 * This program illustrates the use of remquol() function
 *
 */
#define _ISOC99_SOURCE
#include <math.h>
#include <stdio.h>


void main() {

  long double number1=3.0L, number2=3.5L;
  int quo=0;

  printf("Illustrates the remquol() function");

  #ifdef __BFP__
    printf(" (IEEE version)¥n¥n");
  #else
    printf(" (HFP version)¥n¥n");
  #endif

  printf("remquol(%.2Lf,%.2Lf,&quo)=%.2Lf",number1,number2,remquol(number1,number2,&(quo)));
  printf(" quo=%i¥n",quo);
  number1=1.0L; number2=2.0L;
  printf("remquol(%.2Lf,%.2Lf,&quo)=%.2Lf",number1,number2,remquol(number1,number2,&(quo)));
  printf(" quo=%i¥n",quo);
  number1=1.0L; number2=0.0L;
  printf("remquol(%.2Lf,%.2Lf,&quo)=%.2Lf",number1,number2,remquol(number1,number2,&(quo)));
  printf(" quo=%i¥n",quo);
}


出力:

Illustrates the remquol() function (IEEE version)

remquol(3.00,3.50,&quo)=-0.50   quo=1
remquol(1.00,2.00,&quo)=1.00    quo=0
remquol(1.00,0.00,&quo)=NaNQ(1) quo=0

関連情報