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

◆ _drotg()

void _drotg ( double *  a,
double *  b,
double *  c,
double *  s 
)

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

目的
本ルーチンは点(a, b)について次のギブンス変換を求める.
( c s ) * ( a ) = ( r )
( -s c ) ( b ) ( 0 )
ただし, r = sign(sqrt(a^2 + b^2), a) (|a| > |b| の場合),
r = sign(sqrt(a^2 + b^2), b) (|a| <= |b| の場合),
c^2 + s^2 = 1.
求められたギブンス変換は, drotを用いてある点を新しい座標系に変換するために使用することができる.
引数
[in,out]a[in] a の値
[out] r の値
[in,out]b[in] b の値
[out] z の値
  = s (|a| > |b| の場合)
  = 1/c (|a| <= |b| かつ c != 0 の場合)
  = 1 (|a| <= |b| かつ c = 0 の場合))
  = 0 (r = 0 の場合)
z から c と s を求めることができる.
  c = sqrt(1 - z^2), s = z (z < 1 の場合)
  c = 0, s = 1 (z = 1 の場合)
  c = 1/z, s = sqrt(1 - (1/z)^2) (z > 1 の場合)
[out]cc (cos) の値.
  = a/r (r != 0 の場合)
  = 1 (r = 0 の場合)
[out]ss (sin) の値.
  = b/r (r != 0 の場合)
  = 0 (r = 0 の場合)
出典
BLAS