|
|
◆ Drotmg()
| Sub Drotmg |
( |
D1 As |
Double, |
|
|
D2 As |
Double, |
|
|
X1 As |
Double, |
|
|
Y1 As |
Double, |
|
|
P() As |
Double |
|
) |
| |
修正ギブンス変換を求める (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] | Y1 | Y座標 y1 の値. |
| [out] | P() | 配列 P(LP - 1) (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)
配列P()の大きさが不足する場合, 処理を行わずに戻る. |
- 出典
- BLAS
|