# /home/coin/svn-release/Alps-1.4.8/CoinUtils/src/CoinPresolveMatrix.hpp File Reference

`#include "CoinPragma.hpp"`
`#include "CoinPackedMatrix.hpp"`
`#include "CoinMessage.hpp"`
`#include "CoinTime.hpp"`
`#include <cmath>`
`#include <cassert>`
`#include <cfloat>`
`#include <cstdlib>`
Include dependency graph for CoinPresolveMatrix.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | CoinPresolveAction
| Abstract base class of all presolve routines. More...
class | CoinPrePostsolveMatrix
| Collects all the information about the problem that is needed in both presolve and postsolve. More...
class | presolvehlink
| Links to aid in packed matrix modification. More...
class | CoinPresolveMatrix
| Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolve. More...
class | CoinPostsolveMatrix
| Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsolve. More...
## Defines
#define | deleteAction(array, type) delete [] array
#define | PRESOLVEASSERT(x) {}
#define | PRESOLVE_STMT(s) {}
#define | PRESOLVE_DETAIL_PRINT(s) {}
#define | PRESOLVE_INF COIN_DBL_MAX
| The usual finite infinity.
#define | PRESOLVE_SMALL_INF 1.0e20
| And a small infinity.
#define | PRESOLVEFINITE(n) (-PRESOLVE_INF < (n) && (n) < PRESOLVE_INF)
| Check for infinity using finite infinity.
#define | NO_LINK -66666666
## Functions
void | DIE (const char *)
double * | presolve_dupmajor (const double *elems, const int *indices, int length, CoinBigIndex offset, int tgt=-1)
| Duplicate a major-dimension vector; optionally omit the entry with minor index `tgt`.
void | coin_init_random_vec (double *work, int n)
| Initialize a vector with random numbers.
## Variables
const double | ZTOLDP = 1e-12
| Zero tolerance.
const double | ZTOLDP2 = 1e-10
| Alternate zero tolerance.

## Detailed Description

Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostsolveMatrix. Also declarations for CoinPresolveAction and a number of non-member utility functions.

Definition in file CoinPresolveMatrix.hpp.

## Define Documentation

#define deleteAction | ( | array,
|  | type |  | ) | delete [] array

Definition at line 38 of file CoinPresolveMatrix.hpp.

#define PRESOLVEASSERT | ( | x |  | ) | {}

Definition at line 69 of file CoinPresolveMatrix.hpp.

#define PRESOLVE_STMT | ( | s |  | ) | {}

Definition at line 70 of file CoinPresolveMatrix.hpp.

#define PRESOLVE_DETAIL_PRINT | ( | s |  | ) | {}

Definition at line 80 of file CoinPresolveMatrix.hpp.

#define PRESOLVE_INF COIN_DBL_MAX

The usual finite infinity.

Definition at line 97 of file CoinPresolveMatrix.hpp.

#define PRESOLVE_SMALL_INF 1.0e20

And a small infinity.

Definition at line 99 of file CoinPresolveMatrix.hpp.

#define PRESOLVEFINITE | ( | n |  | ) | (-PRESOLVE_INF < (n) && (n) < PRESOLVE_INF)

Check for infinity using finite infinity.

Definition at line 101 of file CoinPresolveMatrix.hpp.

#define NO_LINK -66666666

Definition at line 743 of file CoinPresolveMatrix.hpp.

## Function Documentation

void DIE | ( | const char * |  | ) | `[inline]`

Definition at line 72 of file CoinPresolveMatrix.hpp.

## Variable Documentation

const double ZTOLDP = 1e-12

Zero tolerance.

OSL had a fixed zero tolerance; we still use that here.

Definition at line 89 of file CoinPresolveMatrix.hpp.

const double ZTOLDP2 = 1e-10

Alternate zero tolerance.

Use a different one if we are doing doubletons, etc.

Definition at line 94 of file CoinPresolveMatrix.hpp.