get_scalemode
Specifies which scaling algorithm is used.
short get_scalemode(lprec *lp);
Return Value
get_scalemode returns which scaling algorithm is used. Can by any of the
following values:
MMSCALING (0) |
numerical range-based scaling |
GEOSCALING (1) |
geometric mean scaling |
CURTISREIDSCALE (4) |
Curtis-Reid scaling |
Additionally, the value can be OR-ed with any combination of one of the
following values:
POWERSCALE (2) |
also do Lagrange scaling |
LAGRANGESCALE (8) |
also do Lagrange scaling |
INTEGERSCALE (16) |
also do Integer scaling |
Parameters
lp
Pointer to previously created lp model. See return value of
make_lp, copy_lp, read_lp,
read_lp_file, read_LP, read_mps, read_MPS
Remarks
The get_scalemode function returns which scaling algorithm is
used. This can influence numerical stability considerably. It is advisable to
always use some sort of scaling.
The default is MMSCALING (0). However, scaling is only applied when
auto_scale is explicitly called. set_scalemode must be called
before auto_scale is called if another scalemode
is required.
MMSCALING, GEOSCALING, CURTISREIDSCALE are the possible scaling algorithms.
POWERSCALE, LAGRANGESCALE, INTEGERSCALE are possible additional scaling
parameters.
POWERSCALE results in creating a scalar of power 2. May improve stability.
LAGRANGESCALE results also in scaling Lagrange columns. Default they are not
scaled.
INTEGERSCALE results also in scaling Integer columns. Default they are not
scaled.
Example
#include <stdio.h>
#include <stdlib.h>
#include "lpkit.h"
int main(void)
{
lprec *lp;
short scalemode;
/* Create a new LP model */
lp = make_lp(0, 0);
if(lp == NULL) {
fprintf(stderr, "Unable to create new LP model\n");
return(1);
}
scalemode = get_scalemode(lp); /* Will return 0 */
delete_lp(lp);
return(0);
}
lp_solve API reference
See Also make_lp, copy_lp,
read_lp, read_lp_file, read_LP, read_mps,
read_MPS, set_scalemode,
auto_scale
|