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