Next: , Previous: , Up: Syntax Summary   [Contents][Index]


10.9.16.3 Syntax of Integer Expressions

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 div IExpr{ floored division }   since release 4.3
| IExpr rem IExpr{ truncated remainder }
| IExpr mod IExpr{ 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::= #= | #\= | #< | #=< | #> | #>=


Send feedback on this subject.