1 /* { dg-do compile } */
2 /* { dg-options "-O3 -Warray-bounds" } */
7 #define MAX_MATRIX_SIZE (10)
11 unsigned int nof_rows
;
12 unsigned int nof_cols
;
13 float data
[MAX_MATRIX_SIZE
][MAX_MATRIX_SIZE
];
16 extern void mtrx_decompose_matrix (MATRIX_TYPE
* p_input_matrix
);
19 mtrx_decompose_matrix (MATRIX_TYPE
* p_input_matrix
)
27 for (row
= 0; row
< MAX_MATRIX_SIZE
; row
++) {
28 for (col
= 0; col
< MAX_MATRIX_SIZE
; col
++) {
29 tmp
.data
[row
][col
] = 0.0;
35 for (row
= 0; row
< p_input_matrix
->nof_rows
; row
++) {
36 for (col
= row
; col
< p_input_matrix
->nof_cols
; col
++) {
38 for (sub
= 0; sub
< row
; sub
++) {
39 sum
+= tmp
.data
[row
][sub
] * tmp
.data
[col
][sub
];
41 sum
= p_input_matrix
->data
[col
][row
] - sum
;
45 tmp
.data
[row
][col
] = sqrtf (sum
);
47 tmp
.data
[row
][col
] = sum
;
51 tmp
.data
[row
][col
] = 0.0f
;
55 tmp
.data
[col
][row
] = sum
/ tmp
.data
[row
][row
];