Prolog: -float
C: float *x;
*x = ...
Pascal: var x: real
x := ...
FORTRAN: real x
x = ...
A pointer to a single-precision float is passed to the function. It is assumed that the function will overwrite this float with its result. When the foreign function returns, the float is converted to a Prolog float and unified with the corresponding argument of the Prolog call. The argument can be of any type; if it cannot be unified with the returned float, the call fails. If the foreign function does not overwrite the float, the result is undefined.
Prolog: -single
C: float *x;
*x = ...
Pascal: var x: real
x := ...
FORTRAN: real x
x = ...
A pointer to a single-precision float is passed to the function. It is assumed that the function will overwrite this float with its result. When the foreign function returns, the float is converted to a Prolog float and unified with the corresponding argument of the Prolog call. The argument can be of any type; if it cannot be unified with the returned float, the call fails. If the foreign function does not overwrite the float, the result is undefined.
Prolog: -double
C: double *x;
*x = ...
Pascal: var x: real
x := ...
A pointer to a double-precision float is passed to the function. It is assumed that the function will overwrite this float with its result. When the foreign function returns, the float is converted to a Prolog float and unified with the corresponding argument of the Prolog call. The argument can be of any type; if it cannot be unified with the returned float, the call fails. If the foreign function does not overwrite the float, the result is undefined.