Versions in this module Expand all Collapse all v0 v0.0.6 Jul 31, 2026 v0.0.5 Jul 20, 2026 Changes in this version + const BadRequiredStrength + const DUMMY + const EPS + const ERROR + const EXTERNAL + const FailedToFindLeavingRow + const INVALID + const InternalSolverError + const MEDIUM + const OPTIONAL + const REQUIRED + const SLACK + const STRONG + const SyntaxError + const UnboundedObjective + const WEAK + func NearZero(value float64) bool + type AST struct + func ParseExpr(a ...interface{}) (*AST, error) + func (a AST) NewConstraint(vars []*Variable, options ...ConstraintOption) (*Constraint, error) + func (a AST) String() string + func (a AST) TechString() string + type Constrainer interface + EqualsConstant func(float64) *Constraint + EqualsExpression func(Expression) *Constraint + EqualsTerm func(Term) *Constraint + EqualsVariable func(*Variable) *Constraint + GreaterThanOrEqualsConstant func(float64) *Constraint + GreaterThanOrEqualsExpression func(Expression) *Constraint + GreaterThanOrEqualsTerm func(Term) *Constraint + GreaterThanOrEqualsVariable func(*Variable) *Constraint + LessThanOrEqualsConstant func(float64) *Constraint + LessThanOrEqualsExpression func(Expression) *Constraint + LessThanOrEqualsTerm func(Term) *Constraint + LessThanOrEqualsVariable func(*Variable) *Constraint + type Constraint struct + Expression Expression + Operator Operator + Strength Strength + func NewConstraint(expr Expression, op Operator, options ...ConstraintOption) *Constraint + func ParseConstraint(x string, vars []*Variable, options ...ConstraintOption) (*Constraint, error) + func (c *Constraint) ApplyOptions(options ...ConstraintOption) + func (c *Constraint) String() string + type ConstraintOption func(*Constraint) + func WithStrength(strength Strength) ConstraintOption + type DuplicateConstraint struct + func (e DuplicateConstraint) Error() string + type DuplicateEditVariable struct + func (e DuplicateEditVariable) Error() string + type DuplicateStayVariable struct + func (e DuplicateStayVariable) Error() string + type Error string + func EvaluationError(a ...interface{}) Error + func (e Error) Error() string + type Expression struct + Constant float64 + Terms []Term + func (e Expression) AddConstant(constant float64) Expression + func (e Expression) AddExpression(other Expression) Expression + func (e Expression) AddTerm(term Term) Expression + func (e Expression) AddVariable(variable *Variable) Expression + func (e Expression) Divide(denominator float64) Expression + func (e Expression) EqualsConstant(constant float64) *Constraint + func (e Expression) EqualsExpression(expression Expression) *Constraint + func (e Expression) EqualsTerm(term Term) *Constraint + func (e Expression) EqualsVariable(variable *Variable) *Constraint + func (e Expression) GetValue() float64 + func (e Expression) GreaterThanOrEqualsConstant(constant float64) *Constraint + func (e Expression) GreaterThanOrEqualsExpression(expression Expression) *Constraint + func (e Expression) GreaterThanOrEqualsTerm(term Term) *Constraint + func (e Expression) GreaterThanOrEqualsVariable(variable *Variable) *Constraint + func (e Expression) IsConstant() bool + func (e Expression) LessThanOrEqualsConstant(constant float64) *Constraint + func (e Expression) LessThanOrEqualsExpression(expression Expression) *Constraint + func (e Expression) LessThanOrEqualsTerm(term Term) *Constraint + func (e Expression) LessThanOrEqualsVariable(variable *Variable) *Constraint + func (e Expression) Multiply(coefficient float64) Expression + func (e Expression) Negate() Expression + func (e Expression) String() string + type Operator int + const EQ + const GE + const LE + func (o Operator) String() string + type Solver struct + func NewSolver() *Solver + func (s *Solver) AddConstraint(constraint *Constraint, options ...ConstraintOption) error + func (s *Solver) AddEditVariable(variable *Variable, options ...ConstraintOption) error + func (s *Solver) AddStay(variable *Variable, options ...ConstraintOption) error + func (s *Solver) HasConstraint(constraint *Constraint) bool + func (s *Solver) HasEditVariable(variable *Variable) bool + func (s *Solver) HasStay(variable *Variable) bool + func (s *Solver) RemoveConstraint(constraint *Constraint) error + func (s *Solver) RemoveEditVariable(variable *Variable) error + func (s *Solver) RemoveStay(variable *Variable) error + func (s *Solver) Reset() + func (s *Solver) SuggestValue(variable *Variable, value float64) error + func (s *Solver) UpdateStays() + func (s *Solver) UpdateVariables() + func (s Solver) String() string + type Strength float64 + func Medium(weight ...float64) Strength + func Strong(weight ...float64) Strength + func Weak(weight ...float64) Strength + func (s Strength) Base() Strength + func (s Strength) String() string + func (s Strength) WithWeight(weight float64) Strength + type Term struct + Coefficient float64 + Variable *Variable + func (t Term) AddConstant(constant float64) Expression + func (t Term) AddExpression(expression Expression) Expression + func (t Term) AddTerm(term Term) Expression + func (t Term) AddVariable(variable *Variable) Expression + func (t Term) Divide(denominator float64) Term + func (t Term) EqualsConstant(constant float64) *Constraint + func (t Term) EqualsExpression(expression Expression) *Constraint + func (t Term) EqualsTerm(term Term) *Constraint + func (t Term) EqualsVariable(variable *Variable) *Constraint + func (t Term) GetValue() float64 + func (t Term) GreaterThanOrEqualsConstant(constant float64) *Constraint + func (t Term) GreaterThanOrEqualsExpression(expression Expression) *Constraint + func (t Term) GreaterThanOrEqualsTerm(term Term) *Constraint + func (t Term) GreaterThanOrEqualsVariable(variable *Variable) *Constraint + func (t Term) LessThanOrEqualsConstant(constant float64) *Constraint + func (t Term) LessThanOrEqualsExpression(expression Expression) *Constraint + func (t Term) LessThanOrEqualsTerm(term Term) *Constraint + func (t Term) LessThanOrEqualsVariable(variable *Variable) *Constraint + func (t Term) Multiply(coefficient float64) Term + func (t Term) Negate() Term + func (t Term) String() string + type UnknownConstraint struct + func (e UnknownConstraint) Error() string + type UnknownEditVariable struct + func (e UnknownEditVariable) Error() string + type UnknownStayVariable struct + func (e UnknownStayVariable) Error() string + type UnknownVariableName struct + Name string + func (e UnknownVariableName) Error() string + type UnsatisfiableConstraint struct + func (e UnsatisfiableConstraint) Error() string + type Variable struct + Name string + Value float64 + func NewVariable(name string) *Variable + func Var(n string, v ...float64) *Variable + func Vars(names ...string) []*Variable + func (v *Variable) AddConstant(constant float64) Expression + func (v *Variable) AddExpression(expression Expression) Expression + func (v *Variable) AddTerm(term Term) Expression + func (v *Variable) AddVariable(variable *Variable) Expression + func (v *Variable) Divide(denominator float64) Term + func (v *Variable) EqualsConstant(constant float64) *Constraint + func (v *Variable) EqualsExpression(expression Expression) *Constraint + func (v *Variable) EqualsTerm(term Term) *Constraint + func (v *Variable) EqualsVariable(variable *Variable) *Constraint + func (v *Variable) GreaterThanOrEqualsConstant(constant float64) *Constraint + func (v *Variable) GreaterThanOrEqualsExpression(expression Expression) *Constraint + func (v *Variable) GreaterThanOrEqualsTerm(term Term) *Constraint + func (v *Variable) GreaterThanOrEqualsVariable(variable *Variable) *Constraint + func (v *Variable) LessThanOrEqualsConstant(constant float64) *Constraint + func (v *Variable) LessThanOrEqualsExpression(expression Expression) *Constraint + func (v *Variable) LessThanOrEqualsTerm(term Term) *Constraint + func (v *Variable) LessThanOrEqualsVariable(variable *Variable) *Constraint + func (v *Variable) Multiply(coefficient float64) Term + func (v *Variable) Negate() Term + func (v *Variable) String() string