X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=matrix.h;h=162f761d46bc3601bb8b41c4b9bb8e57d4de7192;hb=e9938d205980134e5917b8a0fc2f039134faf317;hp=a9d26a05832820e2554a5c03a4a4c3ae543b084c;hpb=b1ca465591d6c8e6bf323b3d80b6b75ae2ee593e;p=libfirm diff --git a/matrix.h b/matrix.h index a9d26a058..162f761d4 100644 --- a/matrix.h +++ b/matrix.h @@ -1,3 +1,29 @@ +/* + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + +/** + * @file + * @brief PBQP matrix. + * @date 02.10.2008 + * @author Sebastian Buchwald + * @version $Id$ + */ #ifndef KAPS_MATRIX_H #define KAPS_MATRIX_H @@ -10,6 +36,8 @@ pbqp_matrix *pbqp_matrix_copy(pbqp *pbqp, pbqp_matrix *m); pbqp_matrix *pbqp_matrix_copy_and_transpose(pbqp *pbqp, pbqp_matrix *m); +void pbqp_matrix_transpose(pbqp *pbqp, pbqp_matrix *mat); + /* sum += summand */ void pbqp_matrix_add(pbqp_matrix *sum, pbqp_matrix *summand); @@ -18,6 +46,12 @@ void pbqp_matrix_set(pbqp_matrix *mat, unsigned row, unsigned col, num value); num pbqp_matrix_get_col_min(pbqp_matrix *matrix, unsigned col_index, vector *flags); num pbqp_matrix_get_row_min(pbqp_matrix *matrix, unsigned row_index, vector *flags); +unsigned pbqp_matrix_get_col_min_index(pbqp_matrix *matrix, unsigned col_index, vector *flags); +unsigned pbqp_matrix_get_row_min_index(pbqp_matrix *matrix, unsigned row_index, vector *flags); + +void pbqp_matrix_set_col_value(pbqp_matrix *mat, unsigned col, num value); +void pbqp_matrix_set_row_value(pbqp_matrix *mat, unsigned row, num value); + void pbqp_matrix_sub_col_value(pbqp_matrix *matrix, unsigned col_index, vector *flags, num value); void pbqp_matrix_sub_row_value(pbqp_matrix *matrix, unsigned row_index, @@ -25,4 +59,7 @@ void pbqp_matrix_sub_row_value(pbqp_matrix *matrix, unsigned row_index, int pbqp_matrix_is_zero(pbqp_matrix *mat, vector *src_vec, vector *tgt_vec); +void pbqp_matrix_add_to_all_cols(pbqp_matrix *mat, vector *vec); +void pbqp_matrix_add_to_all_rows(pbqp_matrix *mat, vector *vec); + #endif /* KAPS_MATRIX_H */