Character & Real Control Variables


EKKCGET - Request Current Values of Character Control Variables

This subroutine requests current values of character control variables. Character control variables provide you with access to the names of items in an MPS file. The values of the character control variables affect the processing of EKKBASI and EKKMPS. Refer to "Passing Your Model Using Mathematical Programming System (MPS) Format" for information about MPS format.

Note:

Since the PL/I ILC does not directly support the passing of character strings to C routines, use of EKKCGET in PL/I programs is not recommended. A PL/I program may work correctly if the correct PL/I data types are used. Note that the compiler may generate a warning message. 

Syntax

FORTRAN 

CALL EKKCGET(rtcod,dspace,carray,num

C 

ekkcget (&rtcod, dspace, carray, num); 

On Entry
dspace
is the user-provided work area.


Specified as: a one-dimensional real array of doublewords.

num
is the number of control variables to be retrieved.


Specified as: a fullword integer; 0 num (the length of iarray).

On Return
rtcod
is the return code for the subroutine, where:

If rtcod = 0, the subroutine completed successfully. Only informational messages were issued.
See "Return Codes" for an explanation of return codes.

If rtcod is non-zero, it value is the return code associated with the first occurrence of the highest severity message.

Returned as: a fullword integer.

dspace
is the user-provided work area.


Returned as: a one-dimensional real array of doublewords.

carray
is an array of character control variables, where carray(n) is the nth character control variable.


Returned as: a one-dimensional array of character strings of length 80. Refer to Table 18 for a list of character control variables.

Notes

  1. The number of control variables returned is the minimum of the number requested, num, and the number available.
  2. Inumchar has no effect on the values of the character control variables. For example, if the MPS problem name is TESTPROB and the value of Inumchar is less than 8, the first 8 characters of Cname will be TESTPROB.
  3. The names in carray returned after a call to EKKCGET do not contain the null C string terminator. Therefore, if EKKCGET is called from a C program, care should be exercised when using the names in carray in conjunction with other C string functions. For more information, see "Sample C Program EXSELNAM".

Examples

Refer to the following sample programs for examples of using EKKCGET:


 


[ EKKCGET | Table of Character Control Variables | EKKRGET | EKKRSET ]
[ Table of Real Control Variables | Index to Modules | Bottom of Page ]

EKKCSET - Set Character Control Variables

This subroutine sets the values of one or more character control variables. Character control variables provide you with access to the names of items in an MPS file. The values of the character control variables affect the processing of EKKBASI and EKKMPS. Refer to "Passing Your Model Using Mathematical Programming System (MPS) Format" for information about the MPS format. EKKCGET must be called before calling EKKCSET.

See "Controlling OSL" for information about how control variables work and how to set them.

Note:

Since the PL/I ILC does not directly support the passing of character strings to C routines, use of EKKCSET in PL/I programs is not recommended. A PL/I program may work correctly if the correct PL/I data types are used. Note that the compiler may generate a warning message. 

Syntax

FORTRAN 

CALL EKKCSET(rtcod,dspace,carray,num

C 

ekkcset(&rtcod,dspace,carray,num); 

On Entry
dspace
is the user-provided work area.


Specified as: a one-dimensional real array of doublewords.

carray
is an array of character control variables, where carray(n) is the nth character control variable.


Specified as: a one-dimensional array of character strings of length 80.

num
is the number of control variables to be set.


Specified as: a fullword integer; 0 num (the length of iarray).

On Return
rtcod
is the return code for the subroutine, where:

If rtcod = 0, the subroutine completed successfully. Only informational messages were issued.
See "Return Codes" for an explanation of return codes.

If rtcod is non-zero, it value is the return code associated with the first occurrence of the highest severity message.

Returned as: a fullword integer.

dspace
is the user-provided work area.


Returned as: a one-dimensional real array of doublewords.

Notes

  1. Refer to Appendix C. "Control Variables" for a complete description of the control variables.
  2. The number of control variables set is the minimum of the number requested, num, and the number available.
  3. EKKMPS or EKKBASI will set the model name, objective row name, RHS, range, bound, or basis to the first one found. To select a specific name, objective, RHS, range, bound, or basis, EKKCSET must be called before calling EKKMPS or EKKBASI. To select a specific name, objective, RHS, range, bound, or basis to be written out, EKKCSET must be called before calling EKKBCDO or EKKBASO.
  4. If your MPS file has delta vectors in it for the costs (objective function coefficients), RHS, range, or bounds that you wish to use later with EKKSPAR, you must set the control variables Cchangeobj, Cchangerhs, Cchangerange, or Cchangebounds respectively to the name of the corresponding delta vector in the MPS file before calling EKKMPS.
  5. If the names in carray contain the null C string terminator, EKKCSET will treat it as regular character data. In other words, EKKCSET does not expect the names in carray to be null-terminated. Therefore, if EKKCSET is called from a C program, care should be exercised when creating carray to be used by this routine. For more information, see "Sample C Program EXSELNAM".

Examples

Refer to the following sample programs for examples of using EKKCSET:


[ EKKCGET | EKKCSET | EKKRGET | EKKRSET ]
[ Table of Real Control Variables | Index to Modules | Bottom of Page ]

Table 18. Character Control Variables

sequence
number

Variable Name 

Description 

 Cname 

The problem name in the MPS file. 

 Cobjective 

The objective function row name in the MPS file. 

 Crhs 

The RHS name in the MPS file. 

 Crange 

The range name in the MPS file. 

 Cbound 

The bound name in the MPS file. 

 Cbasis 

The basis name in the MPS file. 

 Cchangeobj 

The name of the cost (objective) change row in the MPS file to be used by EKKSPAR. 

 Cchangerhs 

The name of the RHS change in the MPS file to be used by EKKSPAR. 

 Cchangerange 

The name of the range change in the MPS file to be used by EKKSPAR. 

10 

 Cchangebounds 

The name of the bounds change in the MPS file to be used by EKKSPAR. 

11 

 Cssolution 

The name of the spreadsheet range(s) containing the adjustable cells. 

12 

 Csconstrts 

The name of the spreadsheet range(s) containing the constraint cells. 

13 

 Csobjective 

The name of the spreadsheet range containing the objective cell. 

14 

 Csekksos1 

The name of the spreadsheet range(s) containing SOS sets of type 1. 

15 

 Csekksos2 

The name of the spreadsheet range(s) containing SOS sets of type 2. 

16 

 Csekksos3 

The name of the spreadsheet range(s) containing SOS sets of type 3. 

17 

 Csekksos4 

The name of the spreadsheet range(s) containing SOS sets of type 4 (general integer variables). 

Note: If you input your data using EKKLMDL, the content of all the character control variables for which you do not explicitly supply new values will be blank. 


[ EKKCGET | EKKCSET | Table of Character Control Variables | EKKRSET ]
[ Table of Real Control Variables | Index to Modules | Bottom of Page ]

EKKRGET - Request Current Values of Real Control Variables

This subroutine requests current values of real (doubleword) control variables.

Syntax

FORTRAN 

CALL EKKRGET(rtcod,dspace,rarray,num

C 

ekkrget(&rtcod,dspace,rarray,num); 

On Entry
dspace
is the user-provided work area.


Specified as: a one-dimensional real array of doublewords.

num
is the number of the control variables to be retrieved.


Specified as: a fullword integer; 0 num (the length of iarray).

On Return
rtcod
is the return code for the subroutine, where:

If rtcod = 0, the subroutine completed successfully. Only informational messages were issued.
See "Return Codes" for an explanation of return codes.

If rtcod is non-zero, it value is the return code associated with the first occurrence of the highest severity message.

Returned as: a fullword integer.

dspace
is the user-provided work area.


Returned as: a one-dimensional real array of doublewords.

rarray
is an array of doubleword control variables, where rarray(n) is the nth real control variable.


Returned as: a one-dimensional real array of doublewords. Refer to Table 19 for a list of real control variables.

Note

The number of control variables returned is the minimum of the number requested, num, and the number available.

Examples

Refer to the following sample programs for examples of using EKKRGET:


[ EKKCGET | EKKCSET | Table of Character Control Variables | EKKRGET ]
[ Table of Real Control Variables | Index to Modules | Bottom of Page ]

EKKRSET - Set Real Control Variables

This subroutine sets real (doubleword) control variables. EKKRGET must be called before calling EKKRSET.

See "Controlling OSL" for information about how control variables work and how to set them.

Syntax

FORTRAN 

CALL EKKRSET(rtcod,dspace,rarray,num

C 

ekkrset(&rtcod,dspace,rarray,num); 

On Entry
dspace
is the user-provided work area.


Specified as: a one-dimensional real array of doublewords.

rarray
is an array of doubleword control variables, where rarray(n) is the nth real control variable.


Specified as: a one-dimensional real array of doublewords.

num
is the number of the control variables to be set.


Specified as: a fullword integer; 0 num (the length of iarray).

On Return
rtcod
is the return code for the subroutine, where:

If rtcod = 0, the subroutine completed successfully. Only informational messages were issued.
See "Return Codes" for an explanation of return codes.

If rtcod is non-zero, it value is the return code associated with the first occurrence of the highest severity message.

Returned as: a fullword integer.

dspace
is the user-provided work area.


Returned as: a one-dimensional real array of doublewords.

Notes

  1. Refer to Appendix C. "Control Variables" for a complete description of the control variables.
  2. All valid control variable set requests are carried out even if an earlier one is rejected as invalid.

Examples

Refer to the following sample programs for examples of using EKKRSET:


[ Top of Page | EKKCGET | EKKCSET | Table of Character Control Variables ]
[ EKKRGET | EKKRSET | Index to Modules | Bottom of Page ]

Table 19. Real Control Variables
 

 

sequence
number

Variable Name 

Lower
Limit 

Upper
Limit 

Default
Value 

Explanation 

Rtolpinf 

10 -12 

10 -1 

10 -8 

The allowed amount of primal infeasibility. 

Rtoldinf 

10 -12 

10 -1 

10 -7 

The allowed amount of dual infeasibility. 

Rmaxmin 

-1.0 

1.0 

1.0 

The weight of the linear objective. 

Rmufactor 

10 -6 

0.99999 

0.1 

The reduction factor for m in the primal barrier algorithm. 

Rmulimit 

10 -16 

1.0 

10 -8 

The lower limit for m in the primal barrier algorithm.

Rrgfactor 

10 -6 

0.99999 

0.1 

The reduced gradient target reduction factor. 

Rrglimit 

0.0 

1.0 

0.0 

The reduced gradient limit for the primal barrier algorithm. 

Rfixvar1 

0.0 

10 -3 

10 -7 

The tolerance for fixing variables in the barrier method when infeasible. 

Rfixvar2 

0.0 

10 -3 

10 -8 

The tolerance for fixing variables in the barrier method when feasible. 

10 

Rcholabstol 

10 -30 

10 -6 

10 -15 

The absolute pivot tolerance for Cholesky factorization. 

11 

Rcholtinytol 

10 -30 

10 -6 

10 -18 

The cut-off tolerance for Cholesky factorization. 

12 

Rmulinfac 

0.0 

1.0 

0.0 

The multiple of m to add to the linear objective. 

13 

Rprojtol 

0.0 

1.0 

10 -6 

The projection error tolerance. 

14 

Rpweight 

10 -12 

10 10 

0.1 

The multiplier of the feasible objective that is used when the current solution is primal infeasible. 

15 

Rchangeweight 

10 -12 

1.0 

0.5 

The rate of change for Rpweight or Rdweight

16 

Rbbcutoff 

-10 20 

maxreal** 

10 31 

The cutoff for the branch and bound. 

17 

Rdweight 

0.0 

1.0 

0.1 

The proportion of the feasible objective that is used when the current solution is dual infeasible. 

18* 

Robjvalue 

-maxreal 

maxreal 

n/a 

The value of the objective function. 

19* 

Rsumpinf 

-maxreal 

maxreal 

n/a 

The sum of the primal infeasibilities. 

20* 

Rsumdinf 

-maxreal 

maxreal 

n/a 

The sum of the dual infeasibilities. 

21 

Rtolmps 

-maxreal 

maxreal 

10 -12 

The zero tolerance for MPS and spreadsheet data. 

22 

Rdegscale 

0.0 

maxreal 

1.0 

The scale factor for all degradation. 

23* 

Rbestsol 

-maxreal 

maxreal 

10 31 

The best feasible integer solution found so far. 

24 

Riweight 

0.0 

maxreal 

1.0 

The weight for each integer infeasibility. 

25 

Rimprove 

-maxreal 

maxreal 

10 -5 

The amount by which a new solution must be better. 

26 

Rtarget 

-maxreal 

maxreal 

5% worse than the continuous solution 

This is a target value of the objective for a valid solution. 

27 

Rtolint 

10 -12 

10 -1 

10 -6 

The integer tolerance. 

28* 

Rbestposs 

-maxreal 

maxreal 

The continuous solution 

The best possible solution. 

29* 

Rbestest 

-maxreal 

maxreal 

0.0 

The best estimated solution. 

30 

Rstepmult 

0.01 

0.99999 

0.99 

The step-length multiplier for the primal barrier algorithm. 

31 

Rmuinit 

10 -20 

10 6 

0.1 

The initial value of m for the primal barrier algorithm. 

32 

Rdensethr 

-maxreal 

maxreal 

0.7 

The density threshold for Cholesky processing. 

33 

Robjweight 

0.0 

10 8 

0.1 

The weight given to the true objective in primal composite phase 1. 

34 

Rlambdaval 

0.0 

maxreal 

0.0 

The value of the EKKQPAR parameter &lambda.. 

35 

Rdccutoff 

-maxreal 

maxreal 

-10 31 

The value of the EKKQSLV decomposition cutoff. 

36* 

Rdobjval 

-maxreal 

maxreal 

n/a 

The value of the dual objective for EKKBSLV. 

37 

Rslambda 

-maxreal 

maxreal 

0.0 

The value of the EKKSPAR parameter &lambda.. 

38 

Rslambdalim 

-maxreal 

maxreal 

1.0 

The limiting value for the EKKSPAR parameter &lambda.. 

39 

Rslambdadelta 

-maxreal 

maxreal 

0.1 

The incrementing value for the EKKSPAR parameter &lambda.. 

40 

Rthreshold 

0.0 

maxreal 

0.0 

The supernode processing threshold. 

41 

Rpdgaptol 

10 -12 

10 -1 

10 -7 

The barrier method primal-dual gap tolerance. 

42 

Rpdstepmult 

0.01 

0.999999 

0.99995 

The primal-dual barrier method step-length multiplier. 

43 

Rpertdiag 

0.0 

10 -6 

10 -12 

The diagonal perturbation for Cholesky factorization. 

44 

Rnetsamp 

0.0 

1.0 

0.05 

The sample size for the EKKNSLV pricing algorithm. 

45 

Rprintcpu 

0.0 

maxreal 

0.0 

Switch to print CPU time used by library subroutines. 

*Not settable. 
**maxreal is the maximum real value allowed on your platform. 
Note: See
Appendix C. Control Variables for a list of all the control variables. 


[ Top of Page | EKKCGET | EKKCSET | Table of Character Control Variables |
  EKKRGET | EKKRSET | Table of Real Control Variables | Index to Modules ]