Access to Integer Control Variables


EKKIGET - Request Current Values of Integer Control Variables

This subroutine requests current values of the integer (fullword) control variables.

Syntax

C  ekkiget(&rtcod,dspace,iarray,num); 
FORTRAN  CALL EKKIGET(rtcod,dspace,iarray,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 not zero, its 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.
iarray
is an array of integer control variables, where the nth entry of iarray is the nth integer control variable.

Returned as: a one-dimensional integer array of fullwords.
Refer to Table 14 for a list of integer control variables.

Notes

  1. The number of control variables returned is the minimum of the number requested, num, and the number available.
  2. Some integer control variables are bit masks. A bit mask is a bit string that is used to specify one or more options by adding their values together. For example, for integer control variable 31, Imodelmask, if you want to specify the common block and the names of the rows and columns, you add their values together (1+4), and set Imodelmask to the sum, 5.
  3. In this book, the  symbol is used to indicate that a bit is set. For example, 1, 4   Imodelmask indicates that the 1 and 4 bits of the integer control variable Imodelmask are set. Imodelmask would then have a value of 5 as described above.

Examples

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


[ Top of Page | Integer Control Variables | Bottom of Page | Index to Modules ] 

EKKISET - Set Integer Control Variables

This subroutine sets the values of integer (fullword) control variables. EKKIGET must be called before calling EKKISET.

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

Syntax

FORTRAN  CALL EKKISET(rtcod,dspace,iarray,num
C  ekkiset(&rtcod,dspace,iarray,num); 
On Entry
dspace
is the user-provided work area.

Specified as: a one-dimensional real array of doublewords.
iarray
is an array of integer control variables, where the nth entry of iarray is the nth control variable.

Specified as: a one-dimensional integer array of fullwords.
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 not zero, its 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" and Table 15 in EKKIGET for a complete description of the integer control variables.
  2. All valid control variable set requests are carried out even if an earlier one is rejected as invalid.
  3. Some integer control variables are bit masks. A bit mask is a bit string that is used to specify one or more options by adding their values together. For example, for integer control variable 31, Imodelmask, if you want to specify the common block and the names of the rows and columns, you add their values together (1+4), and set Imodelmask to the sum, 5.
  4. In this book, the  symbol is used to indicate that a bit is set. For example, 1, 4,   Imodelmask indicates that the 1 and 4 bits of the integer control variable Imodelmask are set. Imodelmask would then have a value of 5 as described above.

  5. If you want to set any integer control variables that are related to sizes of arrays before calling EKKMPS, EKKLMDL, EKKNMDL, or EKKSMDL, you must call EKKDSCM before EKKIGET and EKKISET. These variables are Imaxrows, Imaxcols, Imaxints, Imaxsets, and Imaxintinfo.
  6. When you use EKKIGET before calling EKKMPS, EKKLMDL, or EKKSMDL, if Imaxrows and Imaxcols are positive, they have their usual meanings; if they are negative, they act as increments (that is, Imaxrows will be set to Inumrows + ( -Imaxrows)). This is useful if you want to have spare rows.
  7. This does not apply when you use EKKIGET before calling EKKNMDL.

Examples

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

Table 14. Integer Control Variables
 
iarray Index  Variable Name  Lower Limit  Upper Limit  Default Value  Explanation 
Ilogfreq  maxint**  999,999  The log frequency. 
Iprintunit  99  The unit number for printed output. 
Imaxfactor  999  100 + (Inumrows) / 100  The maximum number of iterations before a refactorization (invert) of the basis must be performed. 
4*  Iiternum  maxint  The current number of iterations OSL has performed in a solve subroutine. 
Imaxiter  maxint  9,999,999  The maximum number of iterations OSL will perform. 
Iloglevel  63  15  The simplex log detail bit mask. 
Ioneobj  One objective function (type-N row) flag for MPS files. 
8*  Iqparnumiter  maxint  The number of the current EKKQPAR parametric adjustment. 
Imaxrows  -maxint§  maxint§  The maximum number of rows allowed in the matrix. 
10  Imaxcols  -maxint§  maxint§  The maximum number of columns allowed in the matrix. 
11  Inumchar  31  The number of characters in row names, column names, and names of problems in MPS data sets. 
12  Istopmask  The stopping condition bit mask. 
13  Imaxiterb  maxint  100  The maximum number of iterations of the interior-point barrier algorithm. 
14  Iadjactype  Contols formation of the adjacency matrix A A T  
15  Iformntype  The formation of the normal matrix. 
16  Idensecol  10  maxint  99,999  The dense column threshold. 
17  Idevexmode  -3  The type of Devex pricing to be used. 
18  Inullcheck  -maxint  maxint  The null space checking switch. 
19  Idroprowct  30  The constraint dropping threshold. 
20  Iiterufreq  maxint  The frequency with which EKKITRU is called. 
21  Ipossbasis  maxint  65  The potential basis flag. 
22  Imaxprojns  10  The maximum null space projections. 
23*  Inumels  maxint  n/a  The number of elements in the last created matrix block. 
24  Inumblocks  maxint  The number of matrix blocks. 
25  Imsgpos  The position of the message number on the output line. 
26  Ipagelines  10  maxint  55  The number of lines on the output page. 
27  Inumrows  Imaxrows§  The number of rows in the matrix. 
28  Inumcols  Imaxcols§  The number of structural variables in the matrix. 
29*  Inumpinf  Inumrows  n/a  The current number of primal infeasibilities. 
30*  Inumdinf  Inumcols  n/a  The current number of dual infeasibilities. 
31  Imodelmask  8191  The bit mask that determines which parts of the matrix are written or read by EKKPTMD or EKKGTMD. 
32  Iprtinfomask  1023  31  The solution information bit mask for EKKPRTS. 
33  Isolmask  16  The print matrix bit mask for EKKPRTS. 
34  Iextrablk  maxint  1,000  The number of elements in each spare block. 
35  Iqparmaxiter  maxint  9,999,999  The maximum number of parametric adjustments that will be performed by EKKQPAR. 
36  Ilinelen  60  150  80  The length of the output line. 
37*  Inumnodes  maxint  The maximum node number created so far. 
38  Iintmask  63  The EKKMSLV log detail bit mask. 
39  Ifastits  -maxint  maxint  The fast iteration switch. 
40  Imaxnodes  maxint  9,999,999  The maximum number of nodes to evaluate. 
41  Imaxsols  maxint  9,999,999  The maximum number of feasible integer solutions to find. 
42*  Inumsols  Imaxsols  The number of integer solutions found so far. 
43*  Inumints  Imaxints  The number of individual integer variables. 
44*  Inumsets  maxint  The number of sets. 
45*  Inumunsat  maxint  The number of integer variables at fractional values. 
46  Ivector  IBM Vector Facility flag. 
47*  Iprobstat  -1  -1  The problem status. 
48  Imajorits  999  30  The maximum number of decomposition iterations. 
49  Iprintsens  1023  The sensitivity information printing bit mask. 
50  Imaxints  -maxint  maxint  The maximum number of integer variables. 
51  Imaxsets  -maxint  maxint  The maximum number of sets. 
52  Istrategy  The bit mask that selects various steps of the MIP algorithm. 
53  Imaxintinfo  -maxint  maxint  The maximum amount of integer information. 
54  Ithreshold  maxint  Number of integer variables that must be fixed for supernode processing to continue. 
55  Iheurpass  maxint  The number of heuristic passes to be made by EKKMPRE. 
56  Isupertol  maxint  Number of 0-1 variables  The number of branches allowed inside a supernode before supernode processing ends. 
57  Iroword  -1  The row ordering method indicator. 
58  Iordunit  -1  99  -1  The row ordering read and write logical unit. 
59  Imiplength  maxint  The amount of extra information that is saved and restored by the user exit subroutine EKKNODU. 
60*  Iiterbnum  maxint  The current number of iterations EKKBSLV has performed. 
61  Ipricetype  The type of pricing for EKKNSLV. 
63*  Iprobstat2  -1  -1  A secondary problem status variable. 
64*  Ismdltypemask  The bit mask that indicates the type of model read in by EKKSMDL. 
69*  Inumelq  maxint  The number of elements or columns in the quadratic matrix. 
70  Iordthrsh  maxint  The ordering threshold. 
71  Ilpdcflag  maxint  The number of blocks into which ekklpdc will attempt to decompose the constraint matrix. 
*Not settable. 
**maxint is the maximum integer allowed on your platform. 
§Bounded by the size of dspace or file size. 
Note: See Appendix C. "Control Variables" for a list, and explanation, of all the control variables. 


[ Top of Page | EKKIGET | EKKISET | Integer Control Variables | Index to Modules ]