Release notes¶
0.5¶
Added exact 3D power-cone support, including exact
cp.powerandcp.pnormatoms and directcp.PowCone3Dconstraints.Added exponential-cone support for exact exponential-family atoms and scalar, vector, and matrix
cp.ExpConeconstraints.Extended
blvpy.ConeLayoutinspection with thepower_3dandp3dexponent tuples, theexponentialandexpcounts, and theirpower_3d_slices,p3d_slices,exponential_slices, andexp_slicesrow selectors.Made SCS and Clarabel direct runtime dependencies for nonlinear cone diagnostics.
Added advanced clean-equipment rebate and carbon-tax abatement examples, demonstrating 3D power-cone and exponential-cone lower models, respectively.
0.4¶
Added
blvpy.BilevelProblem.polish(), a non-mutating fixed-upper lower re-solve that returns an immutable candidate with residual-based feasibility and an upper-objective comparison.Added examples for the new Polishing feature.
Reorganized the examples into a published gallery and a repository-only advanced collection with shared notebook assets.
0.3¶
Added
cp.Maximizesupport at both bilevel levels. Lower maximization objectives are normalized to an equivalent minimization before conic canonicalization, whileLowerProblem.objectiveand solve-time upper objective values remain in their original modeled sense.Made complete and partial best-of run selection choose the lowest upper objective for minimization and the highest for maximization. Defined
GapDiagnostics.source_gapas the returned lower objective minus the reference optimum for minimization, and the reference optimum minus the returned lower objective for maximization.Add examples.
0.2¶
Renamed the structural compatibility predicate to
BilevelProblem.is_dblp()and standardized DBLP terminology throughout the public API and documentation.Added the Stackelberg port-security application notebook and a shared publication-oriented plotting style for the example gallery.
0.1¶
First public release of BLVPY.