2 * This file is part of libFirm.
3 * Copyright (C) 2012 University of Karlsruhe.
10 * @author Sebastian Buchwald
17 pbqp_matrix_t *pbqp_matrix_alloc(pbqp_t *pbqp, unsigned rows, unsigned cols);
19 /* Copy the given matrix. */
20 pbqp_matrix_t *pbqp_matrix_copy(pbqp_t *pbqp, pbqp_matrix_t *m);
22 pbqp_matrix_t *pbqp_matrix_copy_and_transpose(pbqp_t *pbqp, pbqp_matrix_t *m);
24 void pbqp_matrix_transpose(pbqp_t *pbqp, pbqp_matrix_t *mat);
27 void pbqp_matrix_add(pbqp_matrix_t *sum, pbqp_matrix_t *summand);
29 void pbqp_matrix_set(pbqp_matrix_t *mat, unsigned row, unsigned col, num value);
31 num pbqp_matrix_get_col_min(pbqp_matrix_t *matrix, unsigned col_index, vector_t *flags);
32 num pbqp_matrix_get_row_min(pbqp_matrix_t *matrix, unsigned row_index, vector_t *flags);
34 unsigned pbqp_matrix_get_col_min_index(pbqp_matrix_t *matrix, unsigned col_index, vector_t *flags);
35 unsigned pbqp_matrix_get_row_min_index(pbqp_matrix_t *matrix, unsigned row_index, vector_t *flags);
37 void pbqp_matrix_set_col_value(pbqp_matrix_t *mat, unsigned col, num value);
38 void pbqp_matrix_set_row_value(pbqp_matrix_t *mat, unsigned row, num value);
40 void pbqp_matrix_sub_col_value(pbqp_matrix_t *matrix, unsigned col_index,
41 vector_t *flags, num value);
42 void pbqp_matrix_sub_row_value(pbqp_matrix_t *matrix, unsigned row_index,
43 vector_t *flags, num value);
45 int pbqp_matrix_is_zero(pbqp_matrix_t *mat, vector_t *src_vec, vector_t *tgt_vec);
47 void pbqp_matrix_add_to_all_cols(pbqp_matrix_t *mat, vector_t *vec);
48 void pbqp_matrix_add_to_all_rows(pbqp_matrix_t *mat, vector_t *vec);
50 #endif /* KAPS_MATRIX_H */