Module CLP.R

Library for constraint programming with arithmetic constraints over reals.

Author: Michael Hanus

Version: December 2020

Summary of exported operations:

minimumFor :: (a -> Bool) -> (a -> Float) -> a   
Computes the minimum with respect to a given constraint.
minimize :: Data a => (a -> Bool) -> (a -> Float) -> a -> Bool   
Minimization constraint.
maximumFor :: (a -> Bool) -> (a -> Float) -> a   
Computes the maximum with respect to a given constraint.
maximize :: Data a => (a -> Bool) -> (a -> Float) -> a -> Bool   
Maximization constraint.

Exported datatypes:


CFloat

Abstract type to represent floats used in constraints.

Constructors:


Exported operations:

minimumFor :: (a -> Bool) -> (a -> Float) -> a   

Computes the minimum with respect to a given constraint. (minimumFor g f) evaluates to x if (g x) is satisfied and (f x) is minimal. The evaluation fails if such a minimal value does not exist. The evaluation suspends if it contains unbound non-local variables.

Further infos:
  • externally defined

minimize :: Data a => (a -> Bool) -> (a -> Float) -> a -> Bool   

Minimization constraint. (minimize g f x) is satisfied if (g x) is satisfied and (f x) is minimal. The evaluation suspends if it contains unbound non-local variables.

maximumFor :: (a -> Bool) -> (a -> Float) -> a   

Computes the maximum with respect to a given constraint. (maximumFor g f) evaluates to x if (g x) is satisfied and (f x) is maximal. The evaluation fails if such a maximal value does not exist. The evaluation suspends if it contains unbound non-local variables.

Further infos:
  • externally defined

maximize :: Data a => (a -> Bool) -> (a -> Float) -> a -> Bool   

Maximization constraint. (maximize g f x) is satisfied if (g x) is satisfied and (f x) is maximal. The evaluation suspends if it contains unbound non-local variables.