XLPack 6.1
C/C++ API リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ _drotmg()

void _drotmg ( double *  d1,
double *  d2,
double *  x1,
double  y1,
double  p[] 
)

修正ギブンス変換を求める (BLAS 1)

目的
本ルーチンは点(x1, y1)について次の修正ギブンス変換 H を求める.
( sqrt(d1') 0 ) * H * ( x1 ) = ( sqrt(d1')*x1' )
( 0 sqrt(d2') ) ( y1 ) ( 0 )
スケール因子の入力値 d1, d2 と出力値 d1', d2'の間には次の関係がある.
( d1 0 ) = H^T * ( d1' 0 ) * H
( 0 d2 ) ( 0 d2')
求められた修正ギブンス変換は, drotmを用いてある点を新しい座標系に変換するために使用することができる.
引数
[in,out]d1[in] スケール因子の入力値 d1. 通常は, 最初の呼び出しの際には 1 とし, その後は前の呼び出しの出力値を使う.
[out] 更新されたスケール因子 d1'.
[in,out]d2[in] スケール因子の入力値 d2. 通常は, 最初の呼び出しの際には 1 とし, その後は前の呼び出しの出力値を使う.
[out] 更新されたスケール因子 d2'.
[in,out]x1[in] X座標 x1 の値.
[out] 変換後の x1 の値. (= x1')
[in]y1Y座標 y1 の値.
[out]p[]配列 p[lp] (lp >= 5)
変換行列 H.
  p[0]: -1, 0, 1 または -2 の値をとり, それぞれ下に示す形の変換行列を表す.
  p[1], p[2], p[3], p[4]: H11, H21, H12, H22 の値. ただし, 下で 0, 1 または -1 で示される値は対応するp[]の要素には設定されない.
  p[0] = 1 の場合:
    H11 = p[1], H21 = -1, H12 = 1, H22 = p[4]
  p[0] = 0 の場合:
    H11 = 1, H21 = p[2], H12 = p[3], H22 = 1
  p[0] = -1 の場合:
    H11 = p[1], H21 = p[2], H12 = p[3], H22 = p[4]
  p[0] = -2 の場合:
    H11 = 1, H21 = 0, H12 = 0, H22 = 1 (H = I)
出典
BLAS