1#include <isl/mat.h> 2 3struct isl_mat { 4 int ref; 5 6 struct isl_ctx *ctx; 7 8#define ISL_MAT_BORROWED (1 << 0) 9 unsigned flags; 10 11 unsigned n_row; 12 unsigned n_col; 13 14 isl_int **row; 15 16 /* actual size of the rows in memory; n_col <= max_col */ 17 unsigned max_col; 18 19 struct isl_blk block; 20}; 21 22__isl_give isl_mat *isl_mat_sub_alloc(__isl_keep isl_mat *mat, 23 unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col); 24__isl_give isl_mat *isl_mat_sub_alloc6(isl_ctx *ctx, isl_int **row, 25 unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col); 26void isl_mat_sub_copy(struct isl_ctx *ctx, isl_int **dst, isl_int **src, 27 unsigned n_row, unsigned dst_col, unsigned src_col, unsigned n_col); 28void isl_mat_sub_neg(struct isl_ctx *ctx, isl_int **dst, isl_int **src, 29 unsigned n_row, unsigned dst_col, unsigned src_col, unsigned n_col); 30__isl_give isl_mat *isl_mat_diag(isl_ctx *ctx, unsigned n_row, isl_int d); 31