The ovm_float_t
type is the OrchIDS incarnation of the data type double
of 64-bit floating point values.
It is defined this way in src/lang.h:
typedef struct ovm_float_s ovm_float_t; struct ovm_float_s { gc_header_t gc; double val; };
This is a type of garbage-collectable data. To allocate a new object of type ovm_float_t
, use the function:
ovm_var_t *ovm_float_new(gc_t *gc_ctx, double val);
This creates a new ovm_float_t
object with value val
. Its return type is the universal type ovm_var_t
instead of ovm_double_t
, for practical reasons. Calling res
the result, one always has TYPE(res)==T_FLOAT
.
The result is created white, and much be gc_touch()
ed before storing it into a garbage-collectable object.
The returned ovm_float_t
object res
is modifiable. One can read from or write from it by using the FLOAT()
macro (e.g., double x=FLOAT(res); FLOAT(res) = 3.5;
).