twoPhaseSimplexnow takes aVarDomainMapas its first argument- Specify each variable's domain using smart constructors:
nonNegative,unbounded,lowerBoundOnly,upperBoundOnly, orboundedRange - Variables not in the
VarDomainMapare assumed to beunbounded - To keep the same behaviour as before (all vars non-negative), use
nonNegativefor all variables
- Specify each variable's domain using smart constructors:
twoPhaseSimplexnow takes a list ofObjectiveFunctions instead of a single one- Optimise multiple variables against one constraint set in a single call
- Pass an empty list to run Phase 1 only (feasibility check)
twoPhaseSimplexnow returnsSimplexResultinstead ofMaybe ResultSimplexResultcontainsMaybe FeasibleSystemand[ObjectiveResult]- Each
ObjectiveResultpairs anObjectiveFunctionwith itsOptimisationOutcome OptimisationOutcomeis eitherOptimal { varValMap }orUnbounded
optimizeFeasibleSystemnow returnsOptimisationOutcomeinstead ofMaybe Result- Restructured
VarDomaintype to support upper bounds- Replaced
NonNegative,LowerBound SimplexNum, andUnboundedconstructors with a singleBounded { lowerBound :: Maybe SimplexNum, upperBound :: Maybe SimplexNum }record - Added smart constructors:
unbounded,nonNegative,lowerBoundOnly,upperBoundOnly, andboundedRange
- Replaced
- Added
VarDomainMapnewtype for mapping variables to their domains - Added
VarTransformtype withAddLowerBound,AddUpperBound,Shift, andSplitconstructors - Removed
Result,SimplexMeta,SystemWithSlackVarRow,Equationtypes - Removed
extractObjectiveValueandfoldDictValueutility functions - Renamed
prettyShowVarConstMaptoprettyShowVarLitMapSum - Widened dependency version bounds (supports GHC 9.2–9.12)
- Removed
package.yaml;simplex-method.cabalis now maintained directly - Use HSpec for tests
- Add Nix flake
- Add Makefile with cabal and stack support
- Add CI for cabal (GHC 9.2–9.12), stack (LTS 22.44), and Nix
- Explicit import lists on all modules
- Bump Stackage LTS to 22.44
- Setup CI
- Use fourmolu formatter
- Add better types
- Use lens
- Use RecordDot syntax
- Add logging
- Improve Docs
- More Tests
- Bump Stackage LTS
- Rename Linear.Simplex.Simplex -> Linear.Simplex.TwoPhase.Simplex
- Initial release