Initializing help system before first use

# problem.storeCuts

Purpose
Stores cuts into the cut pool, but does not apply them to the current node. These cuts must be explicitly loaded into the matrix using problem.loadCuts before they become active.
Topic areas
Cuts, Optimizer
Synopsis
`cutind = problem.storeCuts(nodups, cuttype, rowtype, rhs, start, colind, cutcoef)`
Arguments

nodups: int |
0 | do not exclude duplicates from the cut pool;
1 | duplicates are to be excluded from the cut pool;
2 | duplicates are to be excluded from the cut pool, ignoring cut type.
cuttype: list[int] | Integer array containing the cut types. The cut types can be any integer and are used to identify the cuts.
rowtype: list[str] | Character array containing the row types:
L | indicates a ≤ row;
E | indicates an = row;
G | indicates a ≥ row.
rhs: list[float] | Double array containing the right hand side elements for the cuts.
start: list[int] | Integer array containing offsets into the colind and dmtval arrays indicating the start of each cut. This array has an entry for each cut, plus one more entry indicating where an additional cut would start, if it were present.
colind: list[int] | Integer array containing the column indices in the cuts.
cutcoef: list[float] | Double array containing the matrix values for the cuts.

Related controls
Double

MATRIXTOL | Tolerance on matrix elements.

Return value

cutind: list[poolcut] | Array containing the cut objects.

Further information
1. problem.storeCuts can be used to eliminate duplicate cuts. If the nodups parameter is set to 1, the cut pool will be checked for duplicate cuts with a cut type identical to the cuts being added. If a duplicate cut is found the new cut will only be added if its right hand side value makes the cut stronger. If the cut in the pool is weaker than the added cut it will be removed unless it has been applied to an active node of the tree. If nodups is set to 2 the same test is carried out on all cuts, ignoring the cut type.
2. problem.storeCuts returns a list of the cuts added to the cut pool in the cutind array. If the cut is not added to the cut pool because a stronger cut exits a None will be returned. The cutind array can be passed directly to problem.loadCuts to load the most recently stored cuts into the matrix.
3. The columns and elements of the cuts must be stored contiguously in the colind and dmtval arrays passed to problem.storeCuts. The starting point of each cut must be stored in the start array. To determine the length of the final cut the start array must have one more element than the number of cuts, containing the point where an extra cut would start, if it were present.
Related topics
problem.loadCuts the Optimizer Reference Manual.
Parent Topic Xpress problem object methods

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