LIBM_QUADRUPLE(3F)

名前
libm_quadruple - 4 倍精度 libm 関数への FORTRAN アクセス (SPARC のみ)

形式
非組み込み関数の例:

        real*16 c, q_acosh, q_hypot, q_infinity, s, x, y, z
        z = q_acosh( x )
        i = iq_finite( x )
        z = q_hypot( x, y )
        z = q_infinity()
        call q_sincos( x, s, c )

4 倍精度関数は real*16 文で使用されます。

機能説明
これらの関数は、標準の FORTRAN 一般的組み込み関数には対応 しない、4 倍精度の libm 関数を利用できるようにします。 asind(x) 、 sind(x) などの関数は、ラジアン値ではなく度数値を使用します。

組み込み関数
次の FORTRAN 組み込み関数は、引数が 4 倍精度であれば、4 倍精度の値を戻します。 型文に含める必要はありません。 必要となる関数が組み込み関数として使用可能な場合は、非組み込み関数を 使用するよりも簡単です。

値 c 、 l 、 p 、 s 、 u 、 x 、 y は real*16 です。
sqrt(x) | asin(x) | acosd(x)*
log(x) | acos(x) | asind(x)*
log10(x) | atan(x) | acosd(x)*
exp(x) | atan2(x,y) | atand(x)*
x**y | sinh(x) | atan2d(x,y)*
sin(x) | cosh(x)* | aint(x)
cos(x) | tanh(x)* | anint(x)
tan(x) | sind(x)* | nint(x)

* = 非標準: これらが組み込み関数であるというのは拡張機能です。

非組み込み関数
通常これらの関数は、標準の FORTRAN 一般組み込み関数と 対応しないため、データ型は FORTRAN データ型の規則にしたがって決定されます。

この中の 4 倍精度関数を使用する場合は、 real*16 文に指定してください (あるいは implicit 文に入力してください)。

ルーチンと引数の定義については、以下のルーチン名から q_ を除いた名前のマニュアルページを参照してください。 これらのマニュアルページは C コンパイラ用ですが、FORTRAN でも内容は同じです。

c 、 l 、 p 、 s 、 u 、 x 、 y の値は real*16 です。
q_copysign( x, y ) | real*16 | 関数 |
q_fabs( x ) | real*16 | 関数 |
q_fmod( x ) | real*16 | 関数 |
q_infinity( ) | real*16 | 関数 |
iq_finite( x ) | 整数 | 関数 |
iq_fp_class( x ) | 整数 | 関数 |
iq_ilogb( x ) | 整数 | 関数 |
iq_isinf( x ) | 整数 | 関数 |
iq_isnan( x ) | 整数 | 関数 |
iq_isnormal( x ) | 整数 | 関数 |
iq_issubnormal( x ) | 整数 | 関数 |
iq_iszero( x ) | 整数 | 関数 |
iq_signbit( x ) | 整数 | 関数 |
q_max_normal() | real*16 | 関数 |
q_max_subnormal() | real*16 | 関数 |
q_min_normal() | real*16 | 関数 |
q_min_subnormal() | real*16 | 関数 |
q_nextafter( x, y ) | real*16 | 関数 |
q_quiet_nan( n ) | real*16 | 関数 |
q_remainder( x, y ) | real*16 | 関数 |
q_scalbn( x, n ) | real*16 | 関数 |
q_signaling_nan( n ) | real*16 | 関数 |

他の 4 倍精度の libm 関数を使用する必要がある場合には、その libm 関数を呼び出す C 関数を使用します。

ファイル
libm.a

関連項目
intro(3M)
『数値計算ガイド』
『FORTRAN 77 言語リファレンス』