summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/mmatrix_example.lua4
-rw-r--r--matrix/generic/matrix.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/examples/mmatrix_example.lua b/examples/mmatrix_example.lua
index 679fde3..8ddfe84 100644
--- a/examples/mmatrix_example.lua
+++ b/examples/mmatrix_example.lua
@@ -10,6 +10,10 @@ for i = 0, m - 1 do
dm[i][j] = t
end
end
+print("test fm:get_dataref_value:", fm:get_dataref_value())
+print("forced a garbade collect")
+collectgarbage("collect")
+print("test fm:get_dataref_value:", fm:get_dataref_value())
print(fm)
-- print(fm:softmax())
print(dm)
diff --git a/matrix/generic/matrix.c b/matrix/generic/matrix.c
index 417c534..c3838d2 100644
--- a/matrix/generic/matrix.c
+++ b/matrix/generic/matrix.c
@@ -122,12 +122,18 @@ static int nerv_matrix_(nrow)(lua_State *L) {
return 1;
}
+static int nerv_matrix_(get_dataref_value)(lua_State *L) {
+ Matrix *self = luaT_checkudata(L, 1, nerv_matrix_(tname));
+ lua_pushinteger(L, *(self->data_ref));
+ return 1;
+}
static const luaL_Reg nerv_matrix_(methods)[] = {
{"get_elem", nerv_matrix_(get_elem)},
{"set_elem", nerv_matrix_(set_elem)},
{"ncol", nerv_matrix_(ncol)},
{"nrow", nerv_matrix_(nrow)},
+ {"get_dataref_value", nerv_matrix_(get_dataref_value)},
{"__index__", nerv_matrix_(index)},
{"__newindex__", nerv_matrix_(newindex)},
{NULL, NULL}