Initializing help system before first use

# ColumnArray2Builder

Build a 2-dimensional array of columns. More...

## Public Member Functions
| ColumnArray2Builder (C1 dim1, C2 dim2, xpress::XPRSProblem *prob)
| Create a builder that will create a 2-dimensional array of columns with the specified dimensions.
auto | toArray () -> std::vector< std::vector< int > >
| Create columns as specified by this builder.
template<typename I , typename Func_makeResult , typename Action_addResult , is-invocable(Func_makeResult, I) , is-invocable(Action_addResult, void, I, C1, C2, int) >
auto | toArray (Func_makeResult makeResult, Action_addResult addResult) -> I
| Create columns as specified by this builder.
auto | withLB (double newLb) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a constant lower bound for all columns.
template<typename Func_newLb , is-invocable(Func_newLb, double, C1, C2) >
auto | withLB (Func_newLb newLb) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a lower bound that depends on the index.
auto | withLimit (double newLimit) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a constant limit for all columns.
template<typename Func_newLimit , is-invocable(Func_newLimit, double, C1, C2) >
auto | withLimit (Func_newLimit newLimit) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a limit that depends on the index.
template<typename Func_newName , is-invocable(Func_newName, std::optional< std::string >, C1, C2) >
auto | withName (Func_newName newName) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a name that depends on the index.
auto | withName (std::optional< std::string > newName) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a constant name for all columns.
auto | withType (ColumnType newType) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set the type for all columns.
template<typename Func_newType , is-invocable(Func_newType, xpress::ColumnType, C1, C2) >
auto | withType (Func_newType newType) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a type that depends on the index.
auto | withUB (double newUb) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a constant upper bound for all columns.
template<typename Func_newUb , is-invocable(Func_newUb, double, C1, C2) >
auto | withUB (Func_newUb newUb) -> ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral > &
| Set a upper bound that depends on the index.

## Detailed Description

template<typename C1, typename C2, is-integral(C1), is-integral(C2)>
class xpress::VariableBuilder::ColumnArray2Builder< C1, C2,, >

Build a 2-dimensional array of columns.

Since
  44.00

## Constructor & Destructor Documentation

## ColumnArray2Builder()

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::ColumnArray2Builder | ( | C1 | dim1,
|  | C2 | dim2,
|  | xpress::XPRSProblem * | prob )
| inline

Create a builder that will create a 2-dimensional array of columns with the specified dimensions.

Parameters

  dim1 | Dimension 1.
  dim2 | Dimension 2.
  prob | The problem for which to create columns.

Since
  44.00

## Member Function Documentation

## toArray() [1/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::toArray | ( |  | ) | -> std::vector< std::vector<int> >
| inline

Create columns as specified by this builder.

Examples using `toArray`:

- BinBurglar.cpp
- BoolVars.cpp
- Boxes02.cpp
- Capbgt2l.cpp
- CapitalBudgeting.cpp
- Catenary.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- ELS.cpp
- ELSCut.cpp
- ELSManagedCuts.cpp
- FacilityLocationArray.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioInit.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQC.cpp
- FolioQP.cpp
- GeneralConstraints.cpp
- Glidert.cpp
- MultipleKnapsack_Arrays.cpp
- MultipleKnapsack_Collections.cpp
- PolygonObjects.cpp
- Pplan.cpp
- Pplan2.cpp
- ProductionPlanning_Index.cpp
- PurchasePWL.cpp
- PurchaseSOS2.cpp
- RecursiveFinancialPlanning.cpp
- Sangraalind.cpp
- SpecialOrderedSets.cpp
- SpecialOrderedSetsQuadratic.cpp
- TravelingSalesPerson.cpp
- Wagon.cpp

Since
  44.00

## toArray() [2/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >
template<typename I , typename Func_makeResult , typename Action_addResult , is-invocable(Func_makeResult, I) , is-invocable(Action_addResult, void, I, C1, C2, int) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::toArray | ( | Func_makeResult | makeResult,
|  | Action_addResult | addResult ) -> I
| inline

Create columns as specified by this builder.

Examples using `toArray`:

- BinBurglar.cpp
- BoolVars.cpp
- Boxes02.cpp
- Capbgt2l.cpp
- CapitalBudgeting.cpp
- Catenary.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- ELS.cpp
- ELSCut.cpp
- ELSManagedCuts.cpp
- FacilityLocationArray.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioInit.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQC.cpp
- FolioQP.cpp
- GeneralConstraints.cpp
- Glidert.cpp
- MultipleKnapsack_Arrays.cpp
- MultipleKnapsack_Collections.cpp
- PolygonObjects.cpp
- Pplan.cpp
- Pplan2.cpp
- ProductionPlanning_Index.cpp
- PurchasePWL.cpp
- PurchaseSOS2.cpp
- RecursiveFinancialPlanning.cpp
- Sangraalind.cpp
- SpecialOrderedSets.cpp
- SpecialOrderedSetsQuadratic.cpp
- TravelingSalesPerson.cpp
- Wagon.cpp

Parameters

  makeResult | A function to create the (empty) return value.
  addResult | A function to add a value to the result.

Template Parameters

  I | Type of return value.
  Func_makeResult | `auto () -> I`: Maps `()` to `I`.
  Action_addResult | `auto (I,C1,C2,int) -> void`: Maps `(I,C1,C2,int)` to `void`.

Returns
  The array of columns.

Since
  44.00

## withLB() [1/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withLB | ( | double | newLb | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a constant lower bound for all columns.

Examples using `withLB`:

- Catenary.cpp
- CuttingStock.cpp
- FolioMipIIS.cpp
- Glidert.cpp
- RecursiveFinancialPlanning.cpp

Parameters

  newLb | The lower bound for all columns created by this builder.

Returns
  Always returns this instance.

Since
  44.00

## withLB() [2/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >
template<typename Func_newLb , is-invocable(Func_newLb, double, C1, C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withLB | ( | Func_newLb | newLb | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a lower bound that depends on the index.

Examples using `withLB`:

- Catenary.cpp
- CuttingStock.cpp
- FolioMipIIS.cpp
- Glidert.cpp
- RecursiveFinancialPlanning.cpp

Parameters

  newLb | The lower bound for all columns created by this builder.

Template Parameters

  Func_newLb | `auto (C1,C2) -> double`: Maps `(C1,C2)` to `double`.

Returns
  Always returns this instance.

Since
  44.00

## withLimit() [1/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withLimit | ( | double | newLimit | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a constant limit for all columns.

A limit specifies the bounds for semi-continuous/integer columns and the limit for partial integer columns. It does not apply to columns of other types.

Examples using `withLimit`:

- ContractAllocation.cpp
- FolioMip2.cpp

Parameters

  newLimit | The limit for all columns created by this builder.

Returns
  Always returns this instance.

Since
  44.00

## withLimit() [2/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >
template<typename Func_newLimit , is-invocable(Func_newLimit, double, C1, C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withLimit | ( | Func_newLimit | newLimit | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a limit that depends on the index.

A limit specifies the bounds for semi-continuous/integer columns and the limit for partial integer columns. It does not apply to columns of other types.

Examples using `withLimit`:

- ContractAllocation.cpp
- FolioMip2.cpp

Parameters

  newLimit | The limit for all columns created by this builder.

Template Parameters

  Func_newLimit | `auto (C1,C2) -> double`: Maps `(C1,C2)` to `double`.

Returns
  Always returns this instance.

Since
  44.00

## withName() [1/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >
template<typename Func_newName , is-invocable(Func_newName, std::optional< std::string >, C1, C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withName | ( | Func_newName | newName | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a name that depends on the index.

Examples using `withName`:

- BinBurglar.cpp
- BoolVars.cpp
- Boxes02.cpp
- Capbgt2l.cpp
- CapitalBudgeting.cpp
- Catenary.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- ELS.cpp
- ELSCut.cpp
- ELSManagedCuts.cpp
- FacilityLocationArray.cpp
- FacilityLocationCollection.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioInit.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQC.cpp
- FolioQP.cpp
- Glidert.cpp
- MultipleKnapsack_Arrays.cpp
- MultipleKnapsack_Collections.cpp
- Pplan.cpp
- Pplan2.cpp
- ProductionPlanning_Index.cpp
- PurchasePWL.cpp
- PurchaseSOS2.cpp
- RecursiveFinancialPlanning.cpp
- Sangraalind.cpp
- SpecialOrderedSetsQuadratic.cpp
- TravelingSalesPerson.cpp
- Wagon.cpp

Parameters

  newName | The name for all columns created by this builder.

Template Parameters

  Func_newName | `auto (C1,C2) -> std::optional<std::string>`: Maps `(C1,C2)` to `std::optional<std::string>`.

Returns
  Always returns this instance.

Since
  44.00

## withName() [2/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withName | ( | std::optional< std::string > | newName | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a constant name for all columns.

Examples using `withName`:

- BinBurglar.cpp
- BoolVars.cpp
- Boxes02.cpp
- Capbgt2l.cpp
- CapitalBudgeting.cpp
- Catenary.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- ELS.cpp
- ELSCut.cpp
- ELSManagedCuts.cpp
- FacilityLocationArray.cpp
- FacilityLocationCollection.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioInit.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQC.cpp
- FolioQP.cpp
- Glidert.cpp
- MultipleKnapsack_Arrays.cpp
- MultipleKnapsack_Collections.cpp
- Pplan.cpp
- Pplan2.cpp
- ProductionPlanning_Index.cpp
- PurchasePWL.cpp
- PurchaseSOS2.cpp
- RecursiveFinancialPlanning.cpp
- Sangraalind.cpp
- SpecialOrderedSetsQuadratic.cpp
- TravelingSalesPerson.cpp
- Wagon.cpp

Parameters

  newName | The name for all columns created by this builder. This must be `std::nullopt` or a format string that will be invoked with the index as argument.

Returns
  Always returns this instance.

Since
  44.00

## withType() [1/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withType | ( | ColumnType | newType | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set the type for all columns.

Examples using `withType`:

- BinBurglar.cpp
- BoolVars.cpp
- Boxes02.cpp
- Capbgt2l.cpp
- CapitalBudgeting.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- ELS.cpp
- ELSCut.cpp
- ELSManagedCuts.cpp
- FacilityLocationArray.cpp
- FacilityLocationCollection.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQP.cpp
- MultipleKnapsack_Arrays.cpp
- MultipleKnapsack_Collections.cpp
- Pplan.cpp
- ProductionPlanning_Index.cpp
- Sangraalind.cpp
- TravelingSalesPerson.cpp
- Wagon.cpp

Parameters

  newType | The type for all columns created by this builder.

Returns
  Always returns this instance.

Since
  44.00

## withType() [2/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >
template<typename Func_newType , is-invocable(Func_newType, xpress::ColumnType, C1, C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withType | ( | Func_newType | newType | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a type that depends on the index.

Examples using `withType`:

- BinBurglar.cpp
- BoolVars.cpp
- Boxes02.cpp
- Capbgt2l.cpp
- CapitalBudgeting.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- ELS.cpp
- ELSCut.cpp
- ELSManagedCuts.cpp
- FacilityLocationArray.cpp
- FacilityLocationCollection.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQP.cpp
- MultipleKnapsack_Arrays.cpp
- MultipleKnapsack_Collections.cpp
- Pplan.cpp
- ProductionPlanning_Index.cpp
- Sangraalind.cpp
- TravelingSalesPerson.cpp
- Wagon.cpp

Parameters

  newType | The type for all columns created by this builder.

Template Parameters

  Func_newType | `auto (C1,C2) -> xpress::ColumnType`: Maps `(C1,C2)` to `xpress::ColumnType`.

Returns
  Always returns this instance.

Since
  44.00

## withUB() [1/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withUB | ( | double | newUb | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a constant upper bound for all columns.

Examples using `withUB`:

- Boxes02.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioInit.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQC.cpp
- FolioQP.cpp
- Glidert.cpp
- PurchasePWL.cpp
- PurchaseSOS2.cpp
- SpecialOrderedSetsQuadratic.cpp
- TravelingSalesPerson.cpp

Parameters

  newUb | The upper bound for all columns created by this builder.

Returns
  Always returns this instance.

Since
  44.00

## withUB() [2/2]

template<typename C1 , typename C2 , is-integral(C1) , is-integral(C2) >
template<typename Func_newUb , is-invocable(Func_newUb, double, C1, C2) >

auto xpress::VariableBuilder::ColumnArray2Builder< C1, C2, C1IsIntegral, C2IsIntegral >::withUB | ( | Func_newUb | newUb | ) | -> ColumnArray2Builder<C1,C2,C1IsIntegral,C2IsIntegral>&
| inline

Set a upper bound that depends on the index.

Examples using `withUB`:

- Boxes02.cpp
- ContractAllocation.cpp
- CuttingStock.cpp
- Folio.cpp
- FolioCB.cpp
- FolioHeuristic.cpp
- FolioIIS.cpp
- FolioInit.cpp
- FolioMip1.cpp
- FolioMip2.cpp
- FolioMipIIS.cpp
- FolioQC.cpp
- FolioQP.cpp
- Glidert.cpp
- PurchasePWL.cpp
- PurchaseSOS2.cpp
- SpecialOrderedSetsQuadratic.cpp
- TravelingSalesPerson.cpp

Parameters

  newUb | The upper bound for all columns created by this builder.

Template Parameters

  Func_newUb | `auto (C1,C2) -> double`: Maps `(C1,C2)` to `double`.

Returns
  Always returns this instance.

Since
  44.00

The documentation for this class was generated from the following file:

- xpress.hpp

Parent Topic VariableBuilder

© 2001-2026 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.