Cyclone Scheme  0.20

◆ return_inexact_double_or_cplx_op_no_cps

#define return_inexact_double_or_cplx_op_no_cps (   data,
  ptr,
  OP,
  CPLX_OP,
 
)
Value:
double unboxed; \
Cyc_check_num(data, z); \
if (obj_is_int(z)) { \
unboxed = OP(obj_obj2int(z)); \
} else if (type_of(z) == integer_tag) { \
unboxed = OP(((integer_type *)z)->value); \
} else if (type_of(z) == bignum_tag) { \
unboxed = OP(mp_get_double(&bignum_value(z))); \
} else if (type_of(z) == complex_num_tag) { \
double complex unboxed = CPLX_OP(complex_num_value(z)); \
assign_complex_num(ptr, unboxed); \
return ptr; \
} else { \
unboxed = OP(((double_type *)z)->value); \
} \
assign_double(ptr, unboxed); \
return ptr;
Definition: types.h:70
Definition: types.h:61
Double-precision floating point type, also known as a flonum.
Definition: types.h:876
#define obj_obj2int(x)
Definition: types.h:612
#define obj_is_int(x)
Definition: types.h:606
#define type_of(obj)
Definition: types.h:91
Deprecated - boxed integers.
Definition: types.h:807
#define bignum_value(x)
Definition: types.h:911
#define complex_num_value(x)
Definition: types.h:914
Definition: types.h:62