PIPS-IPM++ Solver and Tools
a parallel interior-point method for doubly bordered block diagonal linear programs
DistributedInputTree::DistributedInputNode Class Reference

#include <DistributedInputTree.h>

Public Member Functions

 DistributedInputNode (int id_, int n_, int my_, int myl_, int mz_, int mzl_)
 Constructor for a DistributedInputNode with fixed problem dimensions. This constructor is typically used when all problem dimensions are known upfront.
 DistributedInputNode (void *user_data, int id, FNNZ n, FNNZ my, FNNZ myl, FNNZ mz, FNNZ mzl, FMAT fQ, FNNZ fnnzQ, FVEC fc, FMAT fA, FNNZ fnnzA, FMAT fB, FNNZ fnnzB, FMAT fBl, FNNZ fnnzBl, FVEC fb, FVEC fbl, FMAT fC, FNNZ fnnzC, FMAT fD, FNNZ fnnzD, FMAT fDl, FNNZ fnnzDl, FVEC fclow, FVEC ficlow, FVEC fcupp, FVEC ficupp, FVEC fdllow, FVEC fidllow, FVEC fdlupp, FVEC fidlupp, FVEC fxlow, FVEC fixlow, FVEC fxupp, FVEC fixupp, FVEC fixtyp, FSCALAR objconst=nullptr, bool deleteUserData=false)
 Full callback constructor for a DistributedInputNode, including linking constraints. This is the primary constructor used when problem data is provided via callback functions.
 ~DistributedInputNode ()
 Destructor for DistributedInputNode. If deleteUserData was set to true, user_data will be free()d.

Protected Attributes

int id {-1}
 The unique identifier for this node.
int n {-1}
 Number of primal variables (x) if fixed, otherwise determined by nCall.
int my {-1}
 Number of equality constraints (Ax=b) if fixed, otherwise determined by myCall.
int myl {-1}
 Number of linking equality constraints if fixed, otherwise determined by mylCall.
int mz {-1}
 Number of inequality constraints (Cl*x <= cupp) if fixed, otherwise determined by mzCall.
int mzl {-1}
 Number of linking inequality constraints if fixed, otherwise determined by mzlCall.
int nnzQ {-1}
 Number of non-zeros in the Hessian matrix (Q) if fixed, otherwise determined by fnnzQ.
int nnzA {-1}
 Number of non-zeros in the equality constraint matrix (A) if fixed, otherwise determined by fnnzA.
int nnzB {-1}
 Number of non-zeros in the linking matrix (B) if fixed, otherwise determined by fnnzB.
int nnzBl {-1}
 Number of non-zeros in the equality linking matrix (Bl) if fixed, otherwise determined by fnnzBl.
int nnzC {-1}
 Number of non-zeros in the inequality constraint matrix (C) if fixed, otherwise determined by fnnzC.
int nnzD {-1}
 Number of non-zeros in the linking matrix (D) if fixed, otherwise determined by fnnzD.
int nnzDl {-1}
 Number of non-zeros in the inequality linking matrix (Dl) if fixed, otherwise determined by fnnzDl.
FNNZ nCall {}
 Callback for the number of primal variables (x).
FNNZ myCall {}
 Callback for the number of equality constraints.
FNNZ mzCall {}
 Callback for the number of inequality constraints.
FNNZ mylCall {}
 Callback for the number of linking equality constraints.
FNNZ mzlCall {}
 Callback for the number of linking inequality constraints.
FNNZ fnnzQ {}
 Callback for the number of non-zeros in Q matrix.
FNNZ fnnzA {}
 Callback for the number of non-zeros in A matrix.
FNNZ fnnzB {}
 Callback for the number of non-zeros in B matrix.
FNNZ fnnzBl {}
 Callback for the number of non-zeros in Bl matrix.
FNNZ fnnzC {}
 Callback for the number of non-zeros in C matrix.
FNNZ fnnzD {}
 Callback for the number of non-zeros in D matrix.
FNNZ fnnzDl {}
 Callback for the number of non-zeros in Dl matrix.
FMAT fQ {}
 Callback for the Q matrix data.
FMAT fA {}
 Callback for the A matrix data.
FMAT fB {}
 Callback for the B matrix data.
FMAT fBl {}
 Callback for the Bl matrix data.
FMAT fC {}
 Callback for the C matrix data.
FMAT fD {}
 Callback for the D matrix data.
FMAT fDl {}
 Callback for the Dl matrix data.
FVEC fc {}
 Callback for the objective function coefficients (c).
FVEC fb {}
 Callback for the right-hand-side of equality constraints (b).
FVEC fbl {}
 Callback for the right-hand-side of linking equality constraints (bl).
FVEC fclow {}
 Callback for the lower bounds of inequality constraints.
FVEC fcupp {}
 Callback for the upper bounds of inequality constraints.
FVEC ficlow {}
 Callback for the indicator of lower bounds of inequality constraints.
FVEC ficupp {}
 Callback for the indicator of upper bounds of inequality constraints.
FVEC fdllow {}
 Callback for the lower bounds of linking inequality constraints.
FVEC fdlupp {}
 Callback for the upper bounds of linking inequality constraints.
FVEC fidllow {}
 Callback for the indicator of lower bounds of linking inequality constraints.
FVEC fidlupp {}
 Callback for the indicator of upper bounds of linking inequality constraints.
FVEC fxlow {}
 Callback for the lower bounds of primal variables (x).
FVEC fxupp {}
 Callback for the upper bounds of primal variables (x).
FVEC fixlow {}
 Callback for the indicator of lower bounds of primal variables.
FVEC fixupp {}
 Callback for the indicator of upper bounds of primal variables.
FVEC fixtyp {}
 Callback for the variable types (e.g., continuous, binary, integer).
FSCALAR objconst {}
 Callback for the objective function constant.
void * user_data {}
 User-defined data pointer, passed to all callbacks.
bool deleteUserData {false}
 If true, user_data will be free()d upon destruction.

Friends

class DistributedInputTree
class DistributedTreeCallbacks

Detailed Description

Inner class that contains the node related data.

Constructor & Destructor Documentation

◆ DistributedInputNode() [1/2]

DistributedInputTree::DistributedInputNode::DistributedInputNode ( int id_,
int n_,
int my_,
int myl_,
int mz_,
int mzl_ )

Constructor for a DistributedInputNode with fixed problem dimensions. This constructor is typically used when all problem dimensions are known upfront.

Parameters
id_The unique identifier for this node.
n_The number of primal variables (x) for this node.
my_The number of equality constraints (Ax=b) for this node.
myl_The number of linking equality constraints (Bl*x_parent + Dl*x_this = bl) between this node and its parent.
mz_The number of inequality constraints (Cl*x <= cupp) for this node.
mzl_The number of linking inequality constraints (Dl*x_parent + El*x_this <= dl) between this node and its parent.

◆ DistributedInputNode() [2/2]

DistributedInputTree::DistributedInputNode::DistributedInputNode ( void * user_data,
int id,
FNNZ n,
FNNZ my,
FNNZ myl,
FNNZ mz,
FNNZ mzl,
FMAT fQ,
FNNZ fnnzQ,
FVEC fc,
FMAT fA,
FNNZ fnnzA,
FMAT fB,
FNNZ fnnzB,
FMAT fBl,
FNNZ fnnzBl,
FVEC fb,
FVEC fbl,
FMAT fC,
FNNZ fnnzC,
FMAT fD,
FNNZ fnnzD,
FMAT fDl,
FNNZ fnnzDl,
FVEC fclow,
FVEC ficlow,
FVEC fcupp,
FVEC ficupp,
FVEC fdllow,
FVEC fidllow,
FVEC fdlupp,
FVEC fidlupp,
FVEC fxlow,
FVEC fixlow,
FVEC fxupp,
FVEC fixupp,
FVEC fixtyp,
FSCALAR objconst = nullptr,
bool deleteUserData = false )

Full callback constructor for a DistributedInputNode, including linking constraints. This is the primary constructor used when problem data is provided via callback functions.

Parameters
user_dataA pointer to user-defined data that will be passed to all callback functions.
idThe unique identifier for this node.
nCallback to get the number of primal variables (x) for this node.
myCallback to get the number of equality constraints (Ax=b) for this node.
mylCallback to get the number of linking equality constraints between this node and its parent.
mzCallback to get the number of inequality constraints (Cl*x <= cupp) for this node.
mzlCallback to get the number of linking inequality constraints between this node and its parent.
fQCallback to get the Hessian matrix (Q) data.
fnnzQCallback to get the number of non-zeros in Q.
fcCallback to get the objective function vector (c).
fACallback to get the equality constraint matrix (A) data.
fnnzACallback to get the number of non-zeros in A.
fBCallback to get the linking matrix (B) data from this node's variables to its children's constraints.
fnnzBCallback to get the number of non-zeros in B.
fBlCallback to get the equality linking matrix (Bl) data from parent to this node.
fnnzBlCallback to get the number of non-zeros in Bl.
fbCallback to get the right-hand-side vector (b) for equality constraints.
fblCallback to get the right-hand-side vector (bl) for linking equality constraints.
fCCallback to get the inequality constraint matrix (C) data.
fnnzCCallback to get the number of non-zeros in C.
fDCallback to get the linking matrix (D) data from this node's variables to its children's inequality constraints.
fnnzDCallback to get the number of non-zeros in D.
fDlCallback to get the inequality linking matrix (Dl) data from parent to this node.
fnnzDlCallback to get the number of non-zeros in Dl.
fclowCallback to get the lower bounds for inequality constraints (Cl*x >= clow).
ficlowCallback to get the indicators for lower bounds of inequality constraints.
fcuppCallback to get the upper bounds for inequality constraints (Cl*x <= cupp).
ficuppCallback to get the indicators for upper bounds of inequality constraints.
fdllowCallback to get the lower bounds for linking inequality constraints.
fidllowCallback to get the indicators for lower bounds of linking inequality constraints.
fdluppCallback to get the upper bounds for linking inequality constraints.
fidluppCallback to get the indicators for upper bounds of linking inequality constraints.
fxlowCallback to get the lower bounds for primal variables (x >= xlow).
fixlowCallback to get the indicators for lower bounds of primal variables.
fxuppCallback to get the upper bounds for primal variables (x <= xupp).
fixuppCallback to get the indicators for upper bounds of primal variables.
fixtypCallback to get the variable type (e.g., continuous, binary, integer).
objconstCallback to get the objective function constant. Defaults to nullptr.
deleteUserDataIf true, user_data will be free()d when this node is destructed. Defaults to false.