dlar2v function

void dlar2v(
  1. int N,
  2. Array<double> X_,
  3. Array<double> Y_,
  4. Array<double> Z_,
  5. int INCX,
  6. Array<double> C_,
  7. Array<double> S_,
  8. int INCC,
)

Implementation

void dlar2v(
  final int N,
  final Array<double> X_,
  final Array<double> Y_,
  final Array<double> Z_,
  final int INCX,
  final Array<double> C_,
  final Array<double> S_,
  final int INCC,
) {
  final X = X_.having();
  final Y = Y_.having();
  final Z = Z_.having();
  final C = C_.having();
  final S = S_.having();
  int I, IC, IX;
  double CI, SI, T1, T2, T3, T4, T5, T6, XI, YI, ZI;

  IX = 1;
  IC = 1;
  for (I = 1; I <= N; I++) {
    XI = X[IX];
    YI = Y[IX];
    ZI = Z[IX];
    CI = C[IC];
    SI = S[IC];
    T1 = SI * ZI;
    T2 = CI * ZI;
    T3 = T2 - SI * XI;
    T4 = T2 + SI * YI;
    T5 = CI * XI + T1;
    T6 = CI * YI - T1;
    X[IX] = CI * T5 + SI * T4;
    Y[IX] = CI * T6 - SI * T3;
    Z[IX] = CI * T4 - SI * T5;
    IX += INCX;
    IC += INCC;
  }
}