
locate(+Vars, ++Precision, ++LinLog)

   Locate solution intervals for Vars by splitting and search.

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

Type
   library(ic)

Description

   Locate solution intervals for the given variables with the required
   precision.  This works well if the problem has a finite number of
   solutions.  locate/2,3 work by nondeterministically splitting the
   intervals of the variables until they are narrower than Precision (in
   either absolute or relative terms).

   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.

   locate/3 is defined in terms of locate/4 as follows:
    
    locate(Vars, Precision, LinLog) :- locate(Vars, [], Precision, LinLog).
    


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