#include "blis.h" #define EASY_CAST_FUNC_NAME_(ch_src, ch_dst) cast_ ## ch_src ## _to_ ## ch_dst #define EASY_CAST_FUNC_NAME(ch_src, ch_dst) EASY_CAST_FUNC_NAME_(ch_src, ch_dst) #define CAST_MATRIX_FUNC_NAME_(ch_src, ch_dst) cast_ ## ch_src ## _to_ ## ch_dst ## m #define CAST_MATRIX_FUNC_NAME(ch_src, ch_dst) CAST_MATRIX_FUNC_NAME_(ch_src, ch_dst) #define CAST_MATRIX_FUNC_PROTO(ch_src, ch_dst, src_t, dst_t) \ void CAST_MATRIX_FUNC_NAME(ch_src, ch_dst) (src_t *, dst_t *, int) #define EASY_CAST_FUNC_PROTO(ch_src, ch_dst, src_t, dst_t) \ dst_t EASY_CAST_FUNC_NAME(ch_src, ch_dst) (src_t) #define EASY_CAST_FUNC(ch_src, ch_dst, src_t, dst_t) \ dst_t EASY_CAST_FUNC_NAME(ch_src, ch_dst) \ (src_t val) { \ return (dst_t) val; \ } #define CASTING_MATRIX_FUNC(ch_src, ch_dst, src_t, dst_t, cast_func) \ void CAST_MATRIX_FUNC_NAME(ch_src, ch_dst) \ (src_t *m1, dst_t *m2, int num_elems) { \ for(int i=0;i