35 matrix_t Q[][q_col_num],
bool reduced)
38 puts(
"A has more columns than rows");
42 for (uint8_t j = 0; j < n; j++) {
43 for (uint8_t i = j + 1; i < m; i++) {
46 A[i][j] = c_s_t_r_vec[2];
47 A[j][j] = c_s_t_r_vec[3];
49 for (uint8_t k = j + 1; k < n; k++) {
54 A[j][k] = c * A[j][k] + s * A[i][k];
55 A[i][k] = -s * tmp + c * A[i][k];
80 for (int16_t j = max_m - 1; j >= 0; j--) {
82 for (uint8_t k = 0; k <= j; k++) {
87 for (int16_t i = m - 1; i >= j + 1; i--) {
99 for (uint8_t k = j; k < max_m; k++) {
101 Q[j][k] = c * Q[j][k] - s * Q[i][k];
102 Q[i][k] = s * tmp + c * Q[i][k];
115 c_s_t_r_vec[2] = xij / xjj;
116 u = sqrt(1 + c_s_t_r_vec[2] * c_s_t_r_vec[2]);
117 c_s_t_r_vec[0] = 1 / u;
118 c_s_t_r_vec[1] = c_s_t_r_vec[0] * c_s_t_r_vec[2];
119 c_s_t_r_vec[3] = u * xjj;
124 c_s_t_r_vec[2] = FLT_MAX;
125 c_s_t_r_vec[3] = xij;