32 lines
580 B
Lua
32 lines
580 B
Lua
local globalize = require "strict"
|
|
|
|
local nn = require "nn"
|
|
local expm = require "expm"
|
|
|
|
local sqrt = math.sqrt
|
|
|
|
local dims = 8
|
|
local n = dims * dims
|
|
local M = {}
|
|
local coeff = dims * dims * sqrt(dims)
|
|
for i = 1, n do M[i] = i / coeff end
|
|
M.shape = {dims, dims}
|
|
|
|
M = nn.dot(M, nn.transpose(M))
|
|
|
|
print(nn.pp(M, "%9.6f"))
|
|
|
|
local exp_M = expm(M)
|
|
|
|
print(nn.pp(exp_M, "%9.6f"))
|
|
|
|
local binser = require "binser"
|
|
|
|
--local dat = binser.s(exp_M)
|
|
binser.writeFile("expm.bin", exp_M)
|
|
local res, len = binser.readFile("expm.bin")
|
|
assert(len == 1)
|
|
exp_M = res[1]
|
|
|
|
print(nn.pp(exp_M, "%9.6f"))
|