aboutsummaryrefslogblamecommitdiff
path: root/nerv/lib/matrix/generic/elem_type.h
blob: 07f63552d9a930a9d3fc3fc2ba58ba275a5f650b (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                                                       




                                    

                                                     





                                     

                                                     





                                   

                                                     

      
#define MATRIX_ELEM_PTR_F(self) ((float *)((char *)((self)->data.f) + (self)->offset))
#define MATRIX_ELEM_PTR_D(self) ((double *)((char *)((self)->data.d) + (self)->offset))
#define MATRIX_ELEM_PTR_I(self) ((long *)((char *)((self)->data.i) + (self)->offset))

#ifdef MATRIX_USE_FLOAT

#define MATRIX_ELEM float
#define MATRIX_ELEM_FMT "%f"
#define MATRIX_ELEM_WRITE_FMT "%.8f"
#define MATRIX_ELEM_PTR(self) MATRIX_ELEM_PTR_F(self)
#define MATRIX_ELEM_PTR_BASE(self) ((self)->data.f)

#elif defined(MATRIX_USE_DOUBLE)

#define MATRIX_ELEM double
#define MATRIX_ELEM_FMT "%lf"
#define MATRIX_ELEM_WRITE_FMT "%.8lf"
#define MATRIX_ELEM_PTR(self) MATRIX_ELEM_PTR_D(self)
#define MATRIX_ELEM_PTR_BASE(self) ((self)->data.d)

#elif defined(MATRIX_USE_INT)

#define MATRIX_ELEM long
#define MATRIX_ELEM_FMT "%ld"
#define MATRIX_ELEM_WRITE_FMT "%ld"
#define MATRIX_ELEM_PTR(self) MATRIX_ELEM_PTR_I(self)
#define MATRIX_ELEM_PTR_BASE(self) ((self)->data.i)

#endif