Next: Syntax of Real Expressions, Previous: Syntax of Range Expressions, Up: Syntax Summary [Contents][Index]
Please note: that the Prolog arithmetic operators / and
// do not mean the same thing.
| LinIntExpr | ::= integer | |
| | var | ||
| | integer *var | ||
| | integer *integer | ||
| | -LinIntExpr | ||
| | LinIntExpr +LinIntExpr | ||
| | LinIntExpr -LinIntExpr | ||
| | ConstraintBody | { if true then 1 else 0 } | |
| IExpr | ::= LinIntExpr | |
| | -IExpr | ||
| | IExpr +IExpr | ||
| | IExpr -IExpr | ||
| | IExpr *IExpr | ||
| | IExpr ^IExpr | since release 4.9.0 | |
| | IExpr /\IExpr | since release 4.9.0 | |
| | IExpr \/IExpr | since release 4.9.0 | |
| | IExpr \IExpr | since release 4.9.0 | |
| | IExpr /IExpr | { truncated division } | |
| | IExpr //IExpr | { truncated division } since release 4.3 | |
| | IExpr divIExpr | { floored division } since release 4.3 | |
| | IExpr remIExpr | { truncated remainder } | |
| | IExpr modIExpr | { floored remainder } | |
| | min(IExpr,IExpr) | ||
| | max(IExpr,IExpr) | ||
| | abs(IExpr) | ||
| | sign(RExpr) | { -1, 0, or 1 } | |
| | integer(RExpr) | { requires integral RExpr } | |
| | round(RExpr) | { to nearest integer } | |
| | truncate(RExpr) | { truncate fractional part } | |
| | floor(RExpr) | ||
| | ceiling(RExpr) | ||
| | \(IExpr) | since release 4.9.0 | |
| | xor(IExpr,IExpr) | since release 4.9.0 | |
| | if_then_else(IExpr,IExpr,IExpr) | since release 4.8.0 | |
| IRelOp | ::= #=|#\=|#<|#=<|#>|#>= |