abs
| abs | 
  Purpose
 
 This constraint states that a variable y equals the absolute value of another variable x
 
  Synopsis
 
abs(x) = y with x,y:cpvar
 abs(x) op I with x:cpvar and I:integer and op one of =, ≥, ≤, <>
 x = abs(y) with x,y:cpvar
 I op abs(x) with I:integer and x:cpvar and op one of =, ≥, ≤, <>
 
  Arguments
 
| 
     x 
     | 
     absolute value variable (of type
     cpvar,
     cpfloatvar,
     cplinexp,
     cpnlinexp)
     | 
| 
     y 
     | 
     value variable (of the same type as
     x)
     | 
| 
     I 
     | 
     integer value
     | 
  Return value
 
 An absolute value constraint over the arguments
  Example
 
 The following example shows how to use the absolute value constraint
 
model "Distance constraints"
 uses "kalis"
 setparam("KALIS_DEFAULT_LB", -50); setparam("KALIS_DEFAULT_UB", 50)
 declarations
  x, y, z: cpvar
  Dist: cpctr
 end-declarations
 setname(x,"x")
 setname(y,"y")
 setname(z,"z")
 abs(x) = y
 writeln("Absolute value of x: ", x,y,z)
 y >= 20
 writeln("Bounding y by 20: ", x,y,z)
! abs(y-z) <= 3
! Equivalent version of this constraint:
 distance(y,z) <= 3
 writeln("Max distance betw. y and z: ", x,y,z)
 Dist:= distance(x,z) = 5
 if(cp_post(Dist)) then
  writeln("Distance between x and z: ", x,y,z)
 else
  writeln("Problem is infeasible")
 end-if
 cp_show_prob
end-model
 
  Related topics
 
 
