aboutsummaryrefslogtreecommitdiff
path: root/nerv/lib/matrix/generic/elem_type.h
diff options
context:
space:
mode:
authorTianxingHe <htx_2006@hotmail.com>2016-01-19 20:13:49 -0800
committerTianxingHe <htx_2006@hotmail.com>2016-01-19 20:13:49 -0800
commitdcad8a3f80fc55ca93984d981f9b829d2e4ea728 (patch)
tree61b9bc1d043883bb5d85dcb86cfb621396d75c41 /nerv/lib/matrix/generic/elem_type.h
parent7449dd19c4d1669b483693f61add9d574e46f0b2 (diff)
parent37dec2610c92d03813c4e91ed58791ab60da6646 (diff)
Merge pull request #21 from cloudygoose/txh18/rnnlm
Txh18/rnnlm new changes to lm side
Diffstat (limited to 'nerv/lib/matrix/generic/elem_type.h')
-rw-r--r--nerv/lib/matrix/generic/elem_type.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/nerv/lib/matrix/generic/elem_type.h b/nerv/lib/matrix/generic/elem_type.h
index bffe940..07f6355 100644
--- a/nerv/lib/matrix/generic/elem_type.h
+++ b/nerv/lib/matrix/generic/elem_type.h
@@ -1,22 +1,29 @@
+#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) ((self)->data.f)
+#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) ((self)->data.d)
+#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) ((self)->data.i)
+#define MATRIX_ELEM_PTR(self) MATRIX_ELEM_PTR_I(self)
+#define MATRIX_ELEM_PTR_BASE(self) ((self)->data.i)
#endif