diff options
Diffstat (limited to 'matrix/init.lua')
-rw-r--r-- | matrix/init.lua | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/matrix/init.lua b/matrix/init.lua deleted file mode 100644 index 1a8925f..0000000 --- a/matrix/init.lua +++ /dev/null @@ -1,77 +0,0 @@ -function nerv.Matrix:__tostring__() - local ncol = self:ncol() - local nrow = self:nrow() - local strt = {} - local fmt - if self.fmt then - fmt = self.fmt - else - fmt = "%.8f " - end - if nrow == 1 then - for col = 0, ncol - 1 do - table.insert(strt, string.format(fmt, self[col])) - end - table.insert(strt, "\n") - else - for row = 0, nrow - 1 do - local rp = self[row] - for col = 0, ncol - 1 do - table.insert(strt, string.format(fmt, rp[col])) - end - table.insert(strt, "\n") - end - end - table.insert(strt, string.format( - "[%s %d x %d]", self.__typename, nrow, ncol)) - return table.concat(strt) -end - --- gen: a function takes take indices of the matrix and return the generated --- all entrys in the matrix will be assigned by calling gen(i, j) -function nerv.Matrix:generate(gen) - if (self:nrow() == 1) then - for j = 0, self:ncol() - 1 do - self[j] = gen(j) - end - else - for i = 0, self:nrow() - 1 do - local row = self[i] - for j = 0, self:ncol() - 1 do - row[j] = gen(i, j) - end - end - end -end - -nerv.MMatrixInt.fmt = "%d " - -function nerv.CuMatrix:__add__(b) - c = self:create() - c:add(self, b, 1.0, 1.0) - return c -end - -function nerv.CuMatrix:__sub__(b) - c = self:create() - c:add(self, b, 1.0, -1.0) - return c -end - -function nerv.CuMatrix:__mul__(b) - c = nerv.get_type(self.__typename)(self:nrow(), b:ncol()) - c:mul(self, b, 1.0, 0.0, 'N', 'N') - return c -end - -function nerv.CuMatrixFloat.new_from_host(mat) - local res = nerv.CuMatrixFloat(mat:nrow(), mat:ncol()) - res:copy_fromh(mat) - return res -end - -function nerv.CuMatrixFloat:new_to_host() - local res = nerv.MMatrixFloat(self:nrow(), self:ncol()) - self:copy_toh(res) - return res -end |