Package de.labathome.trustconstr
Class SparsityForcedConstraint
java.lang.Object
de.labathome.trustconstr.SparsityForcedConstraint
- All Implemented Interfaces:
Constraint,Jacobian
Decorator that wraps a
Constraint + Jacobian source and
forces the jacEq / jacIneq return values to a specific
sparsity. Used by MinimizeTrustConstr.minimizeTrustConstr(java.util.function.ToDoubleBiFunction<de.labathome.trustconstr.matrix.Matrix, java.lang.Object>, de.labathome.trustconstr.matrix.Matrix, java.lang.Object, java.util.function.BiFunction<de.labathome.trustconstr.matrix.Matrix, java.lang.Object, de.labathome.trustconstr.matrix.Matrix>, java.util.function.BiFunction<de.labathome.trustconstr.matrix.Matrix, java.lang.Object, de.labathome.trustconstr.matrix.Matrix>, de.labathome.trustconstr.interfaces.HessianProduct, de.labathome.trustconstr.records.Bounds, java.lang.Object, double, double, double, java.util.Optional<java.lang.Boolean>, de.labathome.trustconstr.interfaces.IterationCallback, int, int, de.labathome.trustconstr.matrix.Matrix, double, double, double, double, de.labathome.trustconstr.enums.ProjectionMethod, boolean) to
honor the user-supplied sparseJacobian preference (mirrors
scipy's sparse_jacobian=True/False argument): when explicitly
set, callers can override the auto-detected representation.
constrEq / constrIneq pass through unchanged
(constraint values are 1-D and sparsity is rarely meaningful for them).
lagrangianContribution, nEq(), nIneq(),
keepFeasible-related delegates, and validateKeepFeasibleAtStart
pass through to the source as well.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconstrIneq(Matrix x) boolean[]Pass-through to the source's enforce-feasibility flags.lagrangianContribution(Matrix x, double[] vEq, double[] vIneq) Pass-through to the source's Lagrangian-Hessian contribution.intnEq()intnIneq()source()voidPass-through to the source's keep-feasible-at-start validation.
-
Constructor Details
-
SparsityForcedConstraint
- Parameters:
source- wrapped constraint (must implement bothConstraintandJacobian)wantSparse-trueforces sparse Jacobian output;falseforces dense
-
-
Method Details
-
nEq
public int nEq()- Returns:
- number of equality rows in the wrapped source
-
nIneq
public int nIneq()- Returns:
- number of canonical inequality rows in the wrapped source
-
constrEq
- Specified by:
constrEqin interfaceConstraint- Parameters:
x- current iterate (n × 1)- Returns:
- equality-constraint residual (
nEq × 1)
-
constrIneq
- Specified by:
constrIneqin interfaceConstraint- Parameters:
x- current iterate (n × 1)- Returns:
- inequality-constraint residual (
nIneq × 1); feasible iff every entry is≤ 0
-
jacEq
-
jacIneq
-
lagrangianContribution
Pass-through to the source's Lagrangian-Hessian contribution.- Parameters:
x- iteratevEq- equality multipliersvIneq- inequality multipliers- Returns:
- summed constraint Hessian, or
nullif the source has none
-
enforceFeasibilityIneq
public boolean[] enforceFeasibilityIneq()Pass-through to the source's enforce-feasibility flags.- Returns:
- per-canonical-row strict-feasibility flags
-
validateKeepFeasibleAtStart
Pass-through to the source's keep-feasible-at-start validation.- Parameters:
x0- starting iterate (n x 1)
-
source
- Returns:
- the wrapped source for type-introspection by the orchestrator
-