Purpose 
 
 
 
  Used to change the type of a specified set of columns in the matrix. 
 
 
 
  Topic areas 
 
 
 
 
  Synopsis 
 
 
 
 
  int XPRS_CC XPRSchgcoltype(XPRSprob prob, int ncols, const int colind[], const char coltype[]);  
 
 
 
  Arguments 
 
 
 
 
  
   
   | 
      prob  
     | 
      The current problem. 
     | 
 
   
   | 
      ncols  
     | 
      Number of columns to change. 
     | 
 
   
   | 
      colind  
     | 
      Integer array of length 
     ncols containing the indices of the columns. 
     | 
 
   
   | 
      coltype  
     | 
      Character array of length 
     ncols giving the new column types: 
      
      
       
       | 
          C  
         | 
          indicates a continuous column; 
         |   
       | 
          B  
         | 
          indicates a binary column; 
         |   
       | 
          I  
         | 
          indicates an integer column. 
         |   
       | 
          S  
         | 
          indicates a semi–continuous column. The semi–continuous lower bound will be set to 
         1.0. 
         |   
       | 
          R  
         | 
          indicates a semi–integer column. The semi–integer lower bound will be set to 
         1.0. 
         |   
       | 
          P  
         | 
          indicates a partial integer column. The partial integer limit will be set to 
         1.0. 
         |  | 
 
  
 
  Example 
 
 
 
  The following changes columns 
 3 and 
 5 of the matrix to be integer and binary respectively: 
 
 
 
 
 colind[0] = 3; colind[1] = 5;
coltype[0] = 'I'; coltype[1] = 'B';
XPRSchgcoltype(prob,2,colind,coltype);
 
  
 
  Further information 
 
 
 
  1. The column types can only be changed before the tree search is started. 
 
 
 
  2. Calling 
 XPRSchgcoltype to change any variable into a binary variable causes the bounds previously defined for the variable to be deleted and replaced by bounds of 0 and 1. 
 
 
 
  3. Calling 
 XPRSchgcoltype to change a continuous variable into an integer variable cause its lower bound to be rounded up to the nearest integer value and its upper bound to be rounded down to the nearest integer value. 
 
 
 
  4. After changing the type of a column to semi-continuous, semi-integer or partial integer, call 
 
XPRSchgglblimit to set the limit value. 
  
  5. This function cannot be called while the current problem is being solved or when it is in an interrupted state. Use 
 
XPRSpostsolve to restore the problem to a non-solving state. 
  
  6. For performance reasons, avoid turning MIP entities into continuous columns by calling 
 XPRSchgcoltype many times in the presence of SOS constraints. If an application has this requirement, it is recommended to first collect all such columns beforehand and then change their type in a single call to this function. 
 
 
 
  Related topics 
 
 
 
                 
                
                    © 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the
                    property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not
                    convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except
                    solely for internal evaluation purposes to determine whether to purchase a license to the software
                    described in this documentation, or as otherwise set forth in a written software license agreement
                    between you and FICO (or a FICO affiliate). Use of this documentation and the software described in
                    it must conform strictly to the foregoing permitted uses, and no other use is permitted.