- Documentation
- Reference manual
- Built-in Predicates
- Arithmetic
- General purpose arithmetic
- Arithmetic Functions
- -/1
- +/1
- +/2
- -/2
- */2
- //2
- mod/2
- rem/2
- ///2
- div/2
- rdiv/2
- gcd/2
- lcm/2
- abs/1
- sign/1
- copysign/2
- nexttoward/2
- roundtoward/2
- max/2
- min/2
- ./2
- random/1
- random_float/0
- round/1
- integer/1
- float/1
- rational/1
- rationalize/1
- numerator/1
- denominator/1
- float_fractional_part/1
- float_integer_part/1
- truncate/1
- floor/1
- ceiling/1
- ceil/1
- >>/2
- <</2
- \//2
- /\/2
- xor/2
- \/1
- sqrt/1
- sin/1
- cos/1
- tan/1
- asin/1
- acos/1
- atan/1
- atan2/2
- atan/2
- sinh/1
- cosh/1
- tanh/1
- asinh/1
- acosh/1
- atanh/1
- log/1
- log10/1
- exp/1
- **/2
- ^/2
- powm/3
- lgamma/1
- erf/1
- erfc/1
- pi/0
- e/0
- epsilon/0
- inf/0
- nan/0
- cputime/0
- eval/1
- msb/1
- lsb/1
- popcount/1
- getbit/2
- Arithmetic Functions
- General purpose arithmetic
- Arithmetic
- Built-in Predicates
- Packages
- Reference manual
Availability:Arithmetic function (see is/2)
/dev/random
.116On
Windows the state is initialised from CryptGenRandom().
Otherwise it is set from the system clock. If unbounded arithmetic is
not supported, random numbers are shared between threads and the seed is
initialised from the clock when SWI-Prolog was started. The predicate set_random/1
can be used to control the random number generator.
Warning! Although properly seeded (if supported on the OS),
the Mersenne Twister algorithm does not produce
cryptographically secure random numbers. To generate cryptographically
secure random numbers, use crypto_n_random_bytes/2
from library library(crypto)
provided by the ssl
package.