XL Fortran for AIX V8.1.1

ランゲージ・リファレンス


ハードウェア固有の組み込みプロシージャー

この節では、ハードウェア固有の組み込み関数をアルファベット順に説明します。

FCFI(I)

整数から浮動小数点への変換

浮動小数点変数の整数値を、浮動小数点値に変換します。

この組み込み関数は、64 ビット・モードを使用する 64 ビット PowerPC アーキテクチャーで有効です。

引き数タイプおよび属性

I
タイプは REAL(8) でなければなりません。

結果タイプおよび属性

I と同じです。

結果値

I の倍精度浮動小数点値。

...
REAL*8 :: R8, RES
INTEGER*8 :: I8
EQUIVALENCE(R8, I8)
 
I8 = 89
RES = FCFI(R8) ! RES = 89.0
... 

FCTID(X)

浮動小数点から整数への変換

現行の丸めモードを使用して、浮動小数点オペランドを、 64 ビットの符号付き固定小数点整数に変換します。

この組み込み関数は、64 ビット・モードを使用するどの PowerPC アーキテクチャーでも有効です。

引き数タイプおよび属性

X
タイプは REAL(8) でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は、浮動小数点レジスター内の固定小数点整数になります。

FCTIDZ(X)

浮動小数点を整数に変換してゼロに丸める

浮動小数点オペランドを、64 ビットの符号付き固定小数点整数に変換し、ゼロに丸めます。

この組み込み関数は、64 ビットまたは 32 ビット・モードを使用する 64 ビット PowerPC アーキテクチャーで有効です。

引き数タイプおよび属性

X
タイプは REAL(8) でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は、浮動小数点変数内のゼロに丸められた固定小数点整数になります。

FCTIW(X)

浮動小数点から整数への変換

現行の丸めモードを使用して、浮動小数点オペランドを、 32 ビットの符号付き固定小数点整数に変換します。

この組み込み関数は、どの PowerPC または POWER2 アーキテクチャーでも有効です。

引き数タイプおよび属性

X
タイプは REAL(8) でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は、浮動小数点変数内の固定小数点整数になります。

FCTIWZ(X)

浮動小数点を整数に変換してゼロに丸める

浮動小数点オペランドを、32 ビットの符号付き固定小数点整数に変換し、ゼロに丸めます。

この組み込み関数は、どの PowerPC または POWER2 アーキテクチャーでも有効です。

引き数タイプおよび属性

X
タイプは REAL(8) でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は、浮動小数点変数内のゼロに丸められた固定小数点整数になります。

FMADD(A, X, Y)

浮動小数点の乗算加算

浮動小数点の乗算加算の結果を戻します。

引き数タイプおよび属性

A
タイプは REAL(8) でなければなりません。PowerPC プラットフォームで PowerPC コンパイル用の -qarch セットを使用してコンパイルする場合、 A は REAL(8) ではなくタイプ REAL(4) になる場合があります。

X
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

Y
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

結果タイプおよび属性

AX、および Y と同じ。

結果値

結果は A*X + Y に等しい値を持ちます。

以下の例は、ABC および RES1 が単精度実数であるため、 PowerPC コンパイル用の -qarch オプションを使ってコンパイルした場合にのみ有効です。

       REAL(4) :: A, B, C, RES1
       REAL(8) :: D, E, F, RES2
 
       RES1 = FMADD(A, B, C)
       RES2 = FMADD(D, E, F)
       END

FMSUB(A, X, Y)

浮動小数点の乗算減算

浮動小数点の乗算減算の結果を戻します。

引き数タイプおよび属性

A
タイプは REAL(8) でなければなりません。PowerPC プラットフォームで PowerPC コンパイル用の -qarch セットを使用してコンパイルする場合、 A は REAL(8) ではなくタイプ REAL(4) になる場合があります。

X
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

Y
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

結果タイプおよび属性

AX、および Y と同じ。

結果値

結果は A*X - Y に等しい値を持ちます。

FNABS(X)

浮動小数点の負の値 -|X| を戻します。

引き数タイプおよび属性

X
タイプは REAL でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は、X の浮動小数点の負の値 -|X| になります。

次の例では、浮動小数点変数の絶対値の内容が負になります。

    REAL(4) :: A, RES1
    REAL(8) :: D, RES2
 
    RES1 = FNABS(A)
    RES2 = FNABS(D)

FNMADD(A, X, Y)

浮動小数点の負の乗算加算

浮動小数点の負の乗算加算の結果を戻します。

引き数タイプおよび属性

A
タイプは REAL(8) でなければなりません。PowerPC プラットフォームで PowerPC コンパイル用の -qarch セットを使用してコンパイルする場合、 A は REAL(8) ではなくタイプ REAL(4) になる場合があります。

X
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

Y
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は -(A*X + Y) に等しい値を持ちます。

FNMSUB(A, X, Y)

浮動小数点の負の乗算減算

浮動小数点の負の乗算減算の結果を戻します。

引き数タイプおよび属性

A
タイプは REAL(8) でなければなりません。PowerPC プラットフォームで PowerPC コンパイル用の -qarch セットを使用してコンパイルする場合、 A は REAL(8) ではなくタイプ REAL(4) になる場合があります。

X
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

Y
タイプおよび kind 型付きパラメーターは A と同じでなければなりません。

結果タイプおよび属性

AX、および Y と同じ。

結果値

結果は -(A*X - Y) に等しい値を持ちます。

以下の例では、FNMSUB の結果はタイプ REAL(4) です。この値は REAL(8) に変換されてから、RES に割り当てられます。

    REAL(4) :: A, B, C
    REAL(8) :: RES
 
    RES = FNMSUB(A, B, C)
    END

FRES(X)

浮動小数点の逆数演算

浮動小数点の逆数演算の処理結果を戻します。

拡張グラフィックス命令コードを使用するどの PowerPC でも有効です。

引き数タイプおよび属性

X
タイプは REAL(4) でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は 1/X の単精度見積もりです。

FRSQRTE(X)

平方根の逆数の処理結果を戻します。

拡張グラフィックス命令コードを使用するどの PowerPC でも有効です。

引き数タイプおよび属性

X
タイプは REAL(8) でなければなりません。

結果タイプおよび属性

X と同じです。

結果値

結果は X の平方根の逆数の倍精度見積もりです。

FSEL(X,Y,Z)

浮動小数点の選択

浮動小数点の選択処理の結果を戻します。この結果は、X の値をゼロと比較することにより判別されます。

拡張グラフィックス命令コードを使用するどの PowerPC でも有効です。

引き数タイプおよび属性

X
タイプは REAL(4) または REAL(8) でなければなりません。

結果タイプおよび属性

XY および Z と同じです。

結果値

ゼロ値は符号なしと見なされます。つまり、+0 と -0 は両方ともゼロと等しい値であると見なされます。

MTFSF(MASK, R)

浮動小数点状況フィールドおよび制御レジスター (FPSCR) フィールドに移動します。

R の内容は、 MASK に指定されたフィールド・マスクの制御のもと、 FPSCR に置かれます。

引き数タイプおよび属性

MASK
タイプ INTEGER(4) のリテラル値でなければなりません。下位 8 ビットが使用されます。

R
タイプは REAL(8) でなければなりません。

MTFSFI(BF, I)

即時に FPSCR フィールドに移動します。

I の値は、BF に指定されている FPSCR フィールドに置かれます。

引き数タイプおよび属性

BF
タイプが INTEGER(4) の 0 から 7 のリテラル値でなければなりません。

I
タイプが INTEGER(4) の 0 から 15 のリテラル値でなければなりません。

MULHY(RA, RB)

高位の乗算

オペランド RARB の 64 ビットまたは 128 ビットの積の、高位の 32 ビットまたは 64 ビットを戻します。

32 ビット整数については、どの PowerPC でも有効です。

64 ビット整数については、64 ビット・モードの 64 ビット・アーキテクチャーを持つ PowerPC で有効です。

引き数タイプおよび属性

RA
タイプは整数でなければなりません。

RB
タイプは整数でなければなりません。

結果タイプおよび属性

RARB と同じです。

結果値

オペランド RARB の 32 または 64 ビットの積

ROTATELI(RS, IS, SHIFT, MASK)

即時に左シフトして循環させ MASK を挿入

RS の値を SHIFT に指定されたビット数だけ左にシフトして循環させます。次にこの関数は、ビット・マスク MASK の下で、ISRS を挿入します。

8 バイト整数は 64 ビット・アーキテクチャーでのみ有効です。

引き数タイプおよび属性

RS
タイプは整数でなければなりません。

IS
タイプは整数でなければなりません。

SHIFT
タイプは INTEGER(4) でなければなりません。

MASK
整数タイプのリテラル値である必要があります。

結果タイプおよび属性

RS と同じです。

結果値

SHIFT に指定したビット数だけ RS を左シフトして循環させ、その結果をビット・マスク MASK の下で IS に挿入します。

ROTATELM(RS, SHIFT, MASK)

左シフトして循環させマスクと AND 演算

RS の値を SHIFT に指定されたビット数だけ左にシフトして循環させます。シフトして循環されたデータは、MASK との AND 演算が行われ、結果として戻されます。

引き数タイプおよび属性

RS
タイプは整数でなければなりません。8 バイトより小さい整数でなければなりません。

SHIFT
タイプは INTEGER(4) でなければなりません。

MASK
整数タイプのリテラル値である必要があります。

結果タイプおよび属性

RS と同じです。

結果値

シフトして循環されたデータが、MASK と AND 演算されます。

SETFSB0(BT)

0 を FPSCR ビットに移動

FPSCR のビット BT が 0 に設定されます。このサブルーチンは値を戻しません。

どの PowerPC でも有効です。

引き数タイプおよび属性

BT
タイプは INTEGER(4) でなければなりません。

SETFSB1(BT)

1 を FPSCR ビットに移動

FPSCR のビット BT が 1 に設定されます。このサブルーチンは値を戻しません。

どの PowerPC でも有効です。

引き数タイプおよび属性

BT
タイプは INTEGER(4) でなければなりません。

SFTI(M, Y)

浮動小数点を整数に保管

Y の下位 32 ビットの内容が、変換されずに M のワードに保管されます。

どの PowerPC でも有効です。

引き数タイプおよび属性

M
タイプは INTEGER(4) でなければなりません。

Y
タイプは REAL(8) でなければなりません。

...
integer*4 :: m
real*8 :: x
 
x = z"00000000abcd0001"
call sfti(m, x) ! m = z"abcd0001"
..

TRAP(A, B, TO)

オペランド A がオペランド B と比較されます。この比較の結果は、 TO と AND 演算されて 5 つの状態になります。結果が 0 以外の場合は、システム・トラップ・ハンドラーが起動されます。

8 バイト整数は 64 ビット・アーキテクチャーでのみ有効です。

引き数タイプおよび属性

A
タイプは整数でなければなりません。

B
タイプは整数でなければなりません。

TO
タイプ INTEGER(4) の 1 から 31 までのリテラル値でなければなりません。

+--------------------------------IBM 拡張の終り-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]