# mpfr functions with miscellaneous calling conventions - avram - a virtual machine code interpreter
avram - a virtual machine code interpreter

#### D.14.7 `mpfr` functions with miscellaneous calling conventions

Some functions listed below don't conform to any of the previously mentioned calling conventions.

`eq`
  This is a ternary operator taking a triple `(`prec`,(`x`,`y`))`, where prec is a natural number and x and y are `mpfr` numbers. It returns a result of `(nil,nil)` (i.e., true) if the numbers agree up to the specified precision measured in bits, and returns `nil` otherwise.1
`urandomb`
  This function takes a natural number specifying a precision and returns a uniformly distributed pseudo-random number of that precision between 0 and 1.
`prec`
  This function takes an `mpfr` number and returns a natural number as a result, which is the precision of the argument in bits.
`sin_cos`
  This function takes an `mpfr` number z as an argument and returns a pair of `mpfr` numbers `(`x`,`y`)` as a result, where x is the sine of z and y is the cosine. The precisions of the results are the same as the precision of the argument.

#### Footnotes

[1] a potentially useful tool for algorithms concerned with numerical approximations despite its inexplicable malignment in the `mpfr` documentation