some printf for debugging removed and some comments added
[libfirm] / matrix.h
1 #ifndef KAPS_MATRIX_H
2 #define KAPS_MATRIX_H
3
4 #include "matrix_t.h"
5
6 pbqp_matrix *pbqp_matrix_alloc(pbqp *pbqp, unsigned rows, unsigned cols);
7
8 /* Copy the given matrix. */
9 pbqp_matrix *pbqp_matrix_copy(pbqp *pbqp, pbqp_matrix *m);
10
11 pbqp_matrix *pbqp_matrix_copy_and_transpose(pbqp *pbqp, pbqp_matrix *m);
12
13 void pbqp_matrix_transpose(pbqp *pbqp, pbqp_matrix *mat);
14
15 /* sum += summand */
16 void pbqp_matrix_add(pbqp_matrix *sum, pbqp_matrix *summand);
17
18 void pbqp_matrix_set(pbqp_matrix *mat, unsigned row, unsigned col, num value);
19
20 num pbqp_matrix_get_col_min(pbqp_matrix *matrix, unsigned col_index, vector *flags);
21 num pbqp_matrix_get_row_min(pbqp_matrix *matrix, unsigned row_index, vector *flags);
22
23 unsigned pbqp_matrix_get_col_min_index(pbqp_matrix *matrix, unsigned col_index, vector *flags);
24 unsigned pbqp_matrix_get_row_min_index(pbqp_matrix *matrix, unsigned row_index, vector *flags);
25
26 void pbqp_matrix_set_col_value(pbqp_matrix *mat, unsigned col, num value);
27 void pbqp_matrix_set_row_value(pbqp_matrix *mat, unsigned row, num value);
28
29 void pbqp_matrix_sub_col_value(pbqp_matrix *matrix, unsigned col_index,
30                 vector *flags, num value);
31 void pbqp_matrix_sub_row_value(pbqp_matrix *matrix, unsigned row_index,
32                 vector *flags, num value);
33
34 int pbqp_matrix_is_zero(pbqp_matrix *mat, vector *src_vec, vector *tgt_vec);
35
36 void pbqp_matrix_add_to_all_cols(pbqp_matrix *mat, vector *vec);
37 void pbqp_matrix_add_to_all_rows(pbqp_matrix *mat, vector *vec);
38
39 #endif /* KAPS_MATRIX_H */