shithub: femtolisp

ref: e4cc50bddd8707dc8feffc623eda092a86e03d8e
dir: /operators.h/

View raw version
#pragma once

mpint * conv_to_mpint(void *data, numerictype_t tag);
double conv_to_double(void *data, numerictype_t tag);
void conv_from_double(void *dest, double d, numerictype_t tag);

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

int64_t conv_to_int64(void *data, numerictype_t tag);
uint64_t conv_to_uint64(void *data, numerictype_t tag);
int32_t conv_to_int32(void *data, numerictype_t tag);
uint32_t conv_to_uint32(void *data, numerictype_t tag);
Rune conv_to_Rune(void *data, numerictype_t tag);

#if defined(ULONG64)
#define conv_to_long conv_to_int64
#define conv_to_ulong conv_to_uint64
#else
#define conv_to_long conv_to_int32
#define conv_to_ulong conv_to_uint32
#endif