
locate(+LocateVars, +SquashVars, ++Precision, ++LinLog)

   Locate solution intervals for LocateVars, interleaving search with squashing.

Arguments
   LocateVars          Collection (a la collection_to_list/2) of variables
   SquashVars          Collection of variables
   Precision           Minimum required precision (float)
   LinLog              Domain splitting method (lin or log)

Type
   library(ic)

Description

   A variant of locate/2,3 with interleaved squashing.  The squash algorithm
   is applied once to the SquashVars initially, and then again after each
   splitting step (i.e. each time one of the LocateVars has been split
   nondeterministically during the search).  A variable may occur in both
   LocateVars and SquashVars.

   The LinLog parameter guides the way domains are split.  If it is set to
   lin then the split is linear (i.e. the arithmetic mean of the bounds is
   used).  If it is set to log, the split is logarithmic (i.e. the geometric
   mean of the bounds is used).  Note that if log is used, there will be
   roughly the same number of representable floating point numbers on either
   side of the split, due to the logarithmic distribution of these numbers.


See Also
   locate / 2, locate / 3, squash / 3, eclipse_6 : collection_to_list / 2, lists : collection_to_list / 2
