Lines Matching refs:rotmat_cst
67 …HELPER void CalcRot(const CeedScalar *A, CeedInt N, CeedInt i, CeedInt j, CeedScalar *rotmat_cst) { in CalcRot() argument
68 rotmat_cst[2] = 1.0; // = tan(θ) in CalcRot()
73 rotmat_cst[2] = 0.0; in CalcRot()
79 rotmat_cst[2] = 1.0 / (sqrt(1 + kappa * kappa) + fabs(kappa)); in CalcRot()
80 if (kappa < 0.0) rotmat_cst[2] = -rotmat_cst[2]; in CalcRot()
83 rotmat_cst[0] = 1.0 / sqrt(1 + rotmat_cst[2] * rotmat_cst[2]); in CalcRot()
84 rotmat_cst[1] = rotmat_cst[0] * rotmat_cst[2]; in CalcRot()
155 …Rot(CeedScalar *A, CeedInt N, CeedInt i, CeedInt j, CeedInt *max_idx_row, CeedScalar *rotmat_cst) { in ApplyRot() argument
157 A[i * N + i] -= rotmat_cst[2] * A[i * N + j]; in ApplyRot()
158 A[j * N + j] += rotmat_cst[2] * A[i * N + j]; in ApplyRot()
170 …A[w * N + i] = rotmat_cst[0] * A[w * N + i] - rotmat_cst[1] * A[w * N + j]; // A[w][i], A[w][j] f… in ApplyRot()
176 …A[i * N + w] = rotmat_cst[0] * A[i * N + w] - rotmat_cst[1] * A[w * N + j]; // A[i][w], A[w][j] f… in ApplyRot()
180 …A[i * N + w] = rotmat_cst[0] * A[i * N + w] - rotmat_cst[1] * A[j * N + w]; // A[i][w], A[j][w] f… in ApplyRot()
188 …A[w * N + j] = rotmat_cst[1] * A[i * N + w] + rotmat_cst[0] * A[w * N + j]; // A[i][w], A[w][j] f… in ApplyRot()
193 …A[w * N + j] = rotmat_cst[1] * A[w * N + i] + rotmat_cst[0] * A[w * N + j]; // A[w][i], A[w][j] f… in ApplyRot()
198 …A[j * N + w] = rotmat_cst[1] * A[w * N + i] + rotmat_cst[0] * A[j * N + w]; // A[w][i], A[j][w] f… in ApplyRot()
214 …_HELPER void ApplyRotLeft(CeedScalar *A, CeedInt N, CeedInt i, CeedInt j, CeedScalar *rotmat_cst) { in ApplyRotLeft() argument
218 A[i * N + v] = rotmat_cst[0] * A[i * N + v] - rotmat_cst[1] * A[j * N + v]; in ApplyRotLeft()
219 A[j * N + v] = rotmat_cst[1] * Aiv + rotmat_cst[0] * A[j * N + v]; in ApplyRotLeft()
279 CeedScalar rotmat_cst[3] = {0.}; // cos(θ), sin(θ), and tan(θ), in Diagonalize() local
302 …CalcRot(A, N, i, j, rotmat_cst); // Calculate the parameters of the rotation matrix. in Diagonalize()
303 ApplyRot(A, N, i, j, max_idx_row, rotmat_cst); // Apply this rotation to the A matrix. in Diagonalize()
304 if (calc_evec) ApplyRotLeft(evec, N, i, j, rotmat_cst); in Diagonalize()