get_row, get_rowex

Get all (get_row) or only the non-zero (get_rowex) row elements from the matrix.

unsigned char get_row(lprec *lp, int row_nr, REAL *row);
int get_rowex(lprec *lp, int row_nr, REAL *row, int *colno);

Return Value

get_row returns TRUE (1) if the operation was successful. A return value of FALSE (0) indicates an error.
get_rowex returns the number of non-zero elements returned in row and colno. If an error occurs, then -1 is returned.
An error occurs when row_nr is not between 0 and the number of rows in the lp.
Note that row entry mode must be off, else these functions also fails. See set_add_rowmode

Parameters

lp

Pointer to previously created lp model. See return value of make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI

row_nr

Row number of the matrix. Must be between 0 and number of rows in the lp. Row 0 is objective function.

row

Array in which the values are returned. For get_row, the array must be dimensioned with at least 1+get_Ncolumns elements in the lp. For get_rowex, the array must be dimentioned with at least the number of non-zero elements in the row. If that is unknown, then use the number of columns in the lp. The return value of the function indicates how many non-zero elements there are.

colno

Array in which the column numbers are returned. The array must be dimentioned with at least the number of non-zero elements in the row. If that is unknown, then use the number of columns in the lp. The return value of the function indicates how many non-zero elements there are.

Remarks

get_row retrieves all values for the given row.
Element 0 of the row array is not filled. Element 1 will contain the value for column 1, Element 2 the value for column 2, ...
get_rowex retrieves only the non-zero values for a given row.
Returned values in row and colno start from element 0.

Example

#include <stdio.h>
#include <stdlib.h>
#include "lp_lib.h"

int main(void)
{
  lprec *lp;
  REAL row[1+2]; /* must be 1 greater than number of columns ! */

  /* Create a new LP model */
  lp = make_lp(1, 2);
  if(lp == NULL) {
    fprintf(stderr, "Unable to create new LP model\n");
    return(1);
  }

  get_row(lp, 1, row);

  delete_lp(lp);
  return(0);
}

lp_solve API reference

See Also make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI, set_row, set_rowex, get_mat, get_column, get_columnex, set_column, set_columnex, set_mat, set_rh, set_rh_vec, str_set_rh_vec, add_constraint, add_constraintex, str_add_constraint, add_column, add_columnex, str_add_column