57 lines
802 B
C++
57 lines
802 B
C++
#include <num/num.h>
|
|
|
|
using namespace libnum;
|
|
|
|
extern "C" {
|
|
|
|
// num8_of_num16: %=0
|
|
num8 num8_of_num16(num16 x)
|
|
{
|
|
return num8(x);
|
|
}
|
|
|
|
// num8_of_num32: %=1 && [shlr8]
|
|
num8 num8_of_num32(num32 x)
|
|
{
|
|
return num8(x);
|
|
}
|
|
|
|
// num8_of_num64: %<=2 && %=[shlr*||shad]
|
|
num8 num8_of_num64(num64 x)
|
|
{
|
|
return num8(x);
|
|
}
|
|
|
|
/* This requires sign extensions because we care about high bits */
|
|
// num8_mul: %<=5
|
|
num8 num8_mul(num8 x, num8 y)
|
|
{
|
|
return x * y;
|
|
}
|
|
|
|
// num8_eq: [or] && ![bt* || bf*]
|
|
bool num8_eq(num8 x, int i)
|
|
{
|
|
return x == i;
|
|
}
|
|
|
|
// num8_le: ![bt* || bf*] && %<=4
|
|
bool num8_le(num8 x, int i)
|
|
{
|
|
return x <= i;
|
|
}
|
|
|
|
// num8_gt: ![bt* || bf*] && %<=4
|
|
bool num8_gt(num8 x, int i)
|
|
{
|
|
return x > i;
|
|
}
|
|
|
|
// num8_floor: %=0
|
|
num8 num8_floor(num8 x)
|
|
{
|
|
return x.floor();
|
|
}
|
|
|
|
} /* extern "C" */
|