 0
 0 
cos(Z).
But it does not find Z :-(| Did you know ... | Search Documentation: | 
|  | Rational numbers or floats | 
SWI-Prolog uses rational number arithmetic if the Prolog flag
prefer_rationals 
is true and if this is defined for a function on the given 
operands. This results in perfectly precise answers. Unfortunately 
rational numbers can get really large and, if a precise answer is not 
needed, a big waste of memory and CPU time. In such cases one should use 
floating point arithmetic. The Prolog flag
max_rational_size 
provides a tripwire to detect cases where rational numbers get 
big and react on these events.
Floating point arithmetic can be forced by forcing a float into an argument at any point, i.e., the result of a function with at least one float is always float except for the float-to-integer rounding and truncating functions such as round/1, rational/1 or float_integer_part/1.
Float arithmetic is typically forced by using a floating point constant as initial value or operand. Alternatively, the float/1 function forces conversion of the argument.
 0
 0 
cos(Z).
But it does not find Z :-(