- ria:(?ExprX #< ?ExprY)
- ExprX is less than ExprY with intergrality constraints.
- ria:(?ExprX #= ?ExprY)
- ExprX is equal to ExprY with intergrality constraints.
- ria:(?ExprX #=< ?ExprY)
- ExprX is less than or equal to ExprY with intergrality constraints.
- ria:(?ExprX #> ?ExprY)
- ExprX is greater than ExprY with intergrality constraints.
- ria:(?ExprX #>= ?ExprY)
- ExprX is greater or equal to ExprY with intergrality constraints.
- ?ExprX *= ?ExprY
- Obsolete: use ria:(ExprX =:= ExprY) instead.
- ?ExprX *=< ?ExprY
- Obsolete: use ria:(ExprX =< ExprY) instead.
- ?ExprX *>= ?ExprY
- Obsolete: use ria:(ExprX >= ExprY) instead.
- ?Vars :: ++Lo..Hi
- Constrain Vars to the interval between Lo and Hi.
- ? < ?
- No description available
- ria:(?ExprX =:= ?ExprY)
- ExprX is equal to ExprY.
- ria:(?ExprX =< ?ExprY)
- ExprX is less than or equal to ExprY.
- ? > ?
- No description available
- ria:(?ExprX >= ?ExprY)
- ExprX is greater than or equal to ExprY.
- delta(?Var, -Width)
- Returns the width of the range of Var.
- get_threshold(-Threshold)
- Read the current propagation threshold.
- -Var giis +Expr
- Performs ground interval arithmetic.
- -Var iis +SimpleExpr
- Internal constraint used to rewrite other constraints.
- locate(+Vars, ++Precision)
- Locate solution intervals for Vars by splitting and search.
- locate(+Vars, ++Precision, ++lin/log)
- Locate solution intervals for Vars by splitting and search.
- locate(+LocateVars, +SquashVars, ++Precision, ++lin/log)
- Locate solution intervals for Vars by interleaving search with squashing.
- median(?Var, -Median)
- Returns the median of the range of the ranged variable Var.
- piecewise_linear(?X, ++Points, ?Y)
- Relates X and Y according to a piecewise linear function.
- ria_stat(?Parameter)
- Obtain/start/stop ria statistics counters.
- set_threshold(++Threshold)
- Set the propagation threshold.
- squash(+Vars, ++Precision, ++lin/log)
- Refines the interval of Vars by the squashing algorithm.
- tr_op(?, -)
- Internal predicate to transform dealyed goals into readable form.
- reexport range
- except :: / 2
- reexport ria_
- except piecewise_linear_2 / 4, fx / 6, struct(_)
The Ria library solves constraint problems over the reals. It is not limited to linear constraints. So it can be used to solve general problems like:
[eclipse 2]: ria:( ln(X) >= sin(X) ). X = X{0.36787944117144233 .. Infinity} yes.The Ria library has two different algorithms built in. The default one is arc-consistency and is quite cheap, the other provides a stronger consistency but is slower.
Both algorithms work on the same data representation. That is real numbers in a closed range between (and including) two floats. The library will reduce this range if possible. It never gets as far as reducing a variable to a single float.
The following arithmetic expression can be used inside the constraints: