# to create an x-bit point with numpy, use np.intx
# to create an unsigned x-bit point with numpy, use np.uintx
# examples:
import numpy as np
a = np.int16(10000) # 10000 stored as a 16-bit number (can store numbers from -32768 to 32767)
b = np.uint(10000) # 10000 stored as an unsigned 16-bit number (can store numbers from 0 to 65535)
#define half_ctype_add(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) + npy_half_to_float(b))
#define half_ctype_subtract(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) - npy_half_to_float(b))
#define half_ctype_multiply(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) * npy_half_to_float(b))
#define half_ctype_divide(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) / npy_half_to_float(b))
# to create an x-bit point with numpy, use np.intx
# to create an unsigned x-bit point with numpy, use np.uintx
# examples:
import numpy as np
a = np.int16(10000) # 10000 stored as a 16-bit number (can store numbers from -32768 to 32767)
b = np.uint(10000) # 10000 stored as an unsigned 16-bit number (can store numbers from 0 to 65535)
#define half_ctype_add(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) + npy_half_to_float(b))
#define half_ctype_subtract(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) - npy_half_to_float(b))
#define half_ctype_multiply(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) * npy_half_to_float(b))
#define half_ctype_divide(a, b, outp) *(outp) =
npy_float_to_half(npy_half_to_float(a) / npy_half_to_float(b))