eg_dmatrix.h File Reference


Detailed Description

This file provide the user interface and function definitions for Dense Matrices.

Definition in file eg_dmatrix.h.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <math.h>
#include <float.h>
#include "eg_macros.h"
#include "eg_mem.h"
#include "eg_lpnum.h"
#include "eg_numutil.h"

Include dependency graph for eg_dmatrix.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  EGdMatrix_t
 structure to hold a dense matrix, we choose a row representation of the matrix, and we allow row and column permutations. All actual values in the matrix are stored in EGdMatrix_t::matval, and the rows in EGdMatrix_t::matrow. More...

Defines

#define EGdMatrixAddColMultiple(dmatrix, dest, ori, num)
 Given a number 'num' and a two rows 'ori', 'dest', set columns 'dest' to 'dest' + 'ori' * 'num'. Note that the number MUST_NOT be stored in column 'dest', and note that columns 'ori' and 'dest' should be different. This is needed because of the way GNU_MP interface works.
#define EGdMatrixAddRowMultiple(dmatrix, dest, ori, num)
 Given a number 'num' and a two rows 'ori', 'dest', set rows 'dest' to 'dest' + 'ori' * 'num'. Note that the number MUST_NOT be stored in row 'dest', and note that rows 'ori' and 'dest' should be different. This is needed because of the way GNU_MP interface works.
#define EGdMatrixClear(dmatrix)
 Clear a dense matrix structure, i.e. free all internally allocated data of the structure. Note that no further use of the structure can be made unless it is re-initialized and set to a suitable size.
#define EGdMatrixDisplay(dmatrix, nat_order, out_file)
 Display a given EGdMatrix_t structure contents.
#define EGdMatrixInit(dmatrix)   memset(dmatrix,0,sizeof(EGdMatrix_t))
 Initialize (as a dense matrix of dimension 0x0) an EGdMatrix_t structure.
#define EGdMatrixMultiplyCol(dmatrix, col_ind, multiple)
 Given a number and a column, multiply the complete column by the given number. Note that the number MUST_NOT be stored in the column being multiplied, this is because of the way GNU_MP interface works.
#define EGdMatrixMultiplyRow(dmatrix, row_ind, multiple)
 Given a number and a row, multiply the complete row by the given number. Note that the number MUST_NOT be stored in the row being multiplied, this is because of the way GNU_MP interface works.
#define EGdMatrixSetDimension(dmatrix, new_nrows, new_ncols)
 Set new dimensions for a dense matrix structure.
#define EGdMatrixSubColMultiple(dmatrix, dest, ori, num)
 Given a number 'num' and a two rows 'ori', 'dest', set columns 'dest' to 'dest' - 'ori' * 'num'. Note that the number MUST_NOT be stored in column 'dest', and note that columns 'ori' and 'dest' should be different. This is needed because of the way GNU_MP interface works.
#define EGdMatrixSubRowMultiple(dmatrix, dest, ori, num)
 Given a number 'num' and a two rows 'ori', 'dest', set rows 'dest' to 'dest' - 'ori' * 'num'. Note that the number MUST_NOT be stored in row 'dest', and note that rows 'ori' and 'dest' should be different. This is needed because of the way GNU_MP interface works.

Typedefs

typedef EGdMatrix_t EGdMatrix_t
 structure to hold a dense matrix, we choose a row representation of the matrix, and we allow row and column permutations. All actual values in the matrix are stored in EGdMatrix_t::matval, and the rows in EGdMatrix_t::matrow.

Functions

int EGdMatrixGaussianElimination (EGdMatrix_t *const dmatrix, const unsigned do_col_perm, const unsigned do_row_perm, unsigned *const rank, EGlpNum_t zero_tol, int *const status)
 This function performs gaussian elimination to the given matrix, depending on the given options it may do row/columns permutations allong the way to improve numerical stabillity.


Generated on Mon Jan 30 08:50:43 2006 for EGlib by  doxygen 1.4.5