35 matrix_t Q[][q_col_num],
bool reduced)
38 puts(
"A has more columns than rows");
43 for (uint8_t k = 0; k < n; k++) {
46 for (uint8_t i = k; i < m; i++) {
56 for (
int i = k; i < m; i++) {
63 for (uint8_t j = k + 1; j < n; j++) {
65 for (uint8_t i = k; i < m; i++) {
66 sigma += A[i][k] * A[i][j];
68 sigma = -sigma / A[k][k];
69 for (uint8_t i = k; i < m; i++) {
70 A[i][j] += sigma * A[i][k];
76 diag_R_vec[k] = -norm_2;
91 for (
int k = max_n - 1; k >= 0; k--) {
92 for (
int i = 0; i < m; i++) {
96 for (
int j = k; j < max_n; j++) {
100 for (
int i = k; i < m; i++) {
101 s += A[i][k] * Q[i][j];
104 for (
int i = k; i < m; i++) {
105 Q[i][j] += s * A[i][k];
113 for (
int i = 0; i < max_m; i++) {
114 for (
int j = 0; j < n; j++) {
116 A[i][j] = diag_R_vec[i];