shithub: sl

ref: fda7b9cf12d964a4a482fc252ef26dc29e7eaed1
dir: /src/operators.h/

View raw version
#pragma once

s32int conv_to_s32(sl_v v, void *data, sl_numtype tag);
u32int conv_to_u32(sl_v v, void *data, sl_numtype tag);
s64int conv_to_s64(sl_v v, void *data, sl_numtype tag);
u64int conv_to_u64(sl_v v, void *data, sl_numtype tag);
mpint *conv_to_bignum(sl_v v, void *data, sl_numtype tag);
double conv_to_double(sl_v v, void *data, sl_numtype tag);

#define conv_to_p32 conv_to_u32
#define conv_to_p64 conv_to_u64

#if defined(BITS64)
#define conv_to_ptr conv_to_p64
#else
#define conv_to_ptr conv_to_p32
#endif

bool cmp_same_lt(void *a, void *b, sl_numtype tag);
bool cmp_same_eq(void *a, void *b, sl_numtype tag);
bool cmp_lt(void *a, sl_numtype atag, void *b, sl_numtype btag);
bool cmp_eq(void *a, sl_numtype atag, void *b, sl_numtype btag, bool equalnans);