pbqp_matrix_t *pbqp_matrix_alloc(pbqp_t *pbqp, unsigned rows, unsigned cols)
{
- assert(cols> 0);
- assert(rows> 0);
-
unsigned length = rows * cols;
-
pbqp_matrix_t *mat = (pbqp_matrix_t*)obstack_alloc(&pbqp->obstack, sizeof(*mat) + sizeof(*mat->entries) * length);
- assert(mat);
+
+ assert(cols > 0);
+ assert(rows > 0);
mat->cols = cols;
mat->rows = rows;
unsigned rows = m->rows;
unsigned len = rows * cols;
pbqp_matrix_t *copy = (pbqp_matrix_t*)obstack_alloc(&pbqp->obstack, sizeof(*copy) + sizeof(*copy->entries) * len);
- assert(copy);
for (i = 0; i < rows; ++i) {
for (j = 0; j < cols; ++j) {
void pbqp_matrix_transpose(pbqp_t *pbqp, pbqp_matrix_t *mat)
{
unsigned len;
+ pbqp_matrix_t *tmp;
- assert(mat);
len = mat->rows * mat->cols;
- pbqp_matrix_t *tmp = pbqp_matrix_copy_and_transpose(pbqp, mat);
+ tmp = pbqp_matrix_copy_and_transpose(pbqp, mat);
memcpy(mat, tmp, sizeof(*mat) + sizeof(*mat->entries) * len);
int i;
int len;
- assert(sum);
- assert(summand);
assert(sum->cols == summand->cols);
assert(sum->rows == summand->rows);
unsigned row_index;
unsigned row_len;
- assert(mat);
assert(col < mat->cols);
row_len = mat->rows;
unsigned col_index;
unsigned col_len;
- assert(mat);
assert(row < mat->rows);
col_len = mat->cols;
void pbqp_matrix_set(pbqp_matrix_t *mat, unsigned row, unsigned col, num value)
{
- assert(mat);
assert(col < mat->cols);
assert(row < mat->rows);
unsigned row_index;
num min = INF_COSTS;
- assert(matrix);
- assert(flags);
- assert(matrix->rows == flags->len);
-
unsigned col_len = matrix->cols;
unsigned row_len = matrix->rows;
+ assert(matrix->rows == flags->len);
+
for (row_index = 0; row_index < row_len; ++row_index) {
+ num elem;
+
/* Ignore virtual deleted columns. */
if (flags->entries[row_index].data == INF_COSTS) continue;
- num elem = matrix->entries[row_index * col_len + col_index];
+ elem = matrix->entries[row_index * col_len + col_index];
if (elem < min) {
min = elem;
unsigned min_index = 0;
num min = INF_COSTS;
- assert(matrix);
- assert(flags);
- assert(matrix->rows == flags->len);
-
unsigned col_len = matrix->cols;
unsigned row_len = matrix->rows;
+ assert(matrix->rows == flags->len);
+
for (row_index = 0; row_index < row_len; ++row_index) {
+ num elem;
+
/* Ignore virtual deleted columns. */
if (flags->entries[row_index].data == INF_COSTS) continue;
- num elem = matrix->entries[row_index * col_len + col_index];
+ elem = matrix->entries[row_index * col_len + col_index];
if (elem < min) {
min = elem;
unsigned row_index;
unsigned row_len;
- assert(matrix);
- assert(flags);
assert(matrix->rows == flags->len);
col_len = matrix->cols;
unsigned col_index;
num min = INF_COSTS;
- assert(matrix);
- assert(flags);
- assert(matrix->cols == flags->len);
-
unsigned len = flags->len;
+ assert(matrix->cols == len);
+
for (col_index = 0; col_index < len; ++col_index) {
+ num elem;
+
/* Ignore virtual deleted columns. */
if (flags->entries[col_index].data == INF_COSTS) continue;
- num elem = matrix->entries[row_index * len + col_index];
+ elem = matrix->entries[row_index * len + col_index];
if (elem < min) {
min = elem;
unsigned min_index = 0;
num min = INF_COSTS;
- assert(matrix);
- assert(flags);
- assert(matrix->cols == flags->len);
-
unsigned len = flags->len;
+ assert(matrix->cols == len);
+
for (col_index = 0; col_index < len; ++col_index) {
+ num elem;
+
/* Ignore virtual deleted columns. */
if (flags->entries[col_index].data == INF_COSTS) continue;
- num elem = matrix->entries[row_index * len + col_index];
+ elem = matrix->entries[row_index * len + col_index];
if (elem < min) {
min = elem;
unsigned col_index;
unsigned col_len;
- assert(matrix);
- assert(flags);
assert(matrix->cols == flags->len);
col_len = matrix->cols;
unsigned row_index;
unsigned row_len;
- assert(mat);
- assert(src_vec);
- assert(tgt_vec);
assert(mat->cols = tgt_vec->len);
assert(mat->rows = src_vec->len);
unsigned row_index;
unsigned row_len;
- assert(mat);
- assert(vec);
assert(mat->rows == vec->len);
col_len = mat->cols;
unsigned row_index;
unsigned row_len;
- assert(mat);
- assert(vec);
assert(mat->cols == vec->len);
col_len = mat->cols;