Do your math ahead of time and embed the result in the binary. Floating-point code is from compiler_builtins and libm via the const_soft_float crate. Uses const generics to check shape of inputs, and is no_std.
Please file an issue or make a test PR if your use case is not supported.
constSTART:CMatrix<2,2> = CMatrix::new([[4.0,1.0],[2.0,3.0]]);constADD:CMatrix<2,2> = CMatrix::new([[0.0,6.0],[0.0,3.0]]);constEXPECTED:[[f64;2];2] = [[0.6, -0.7],[-0.2,0.4]];constRESULT:[[f64;2];2] = START.add(ADD).pinv(f64::EPSILON).finish();for i in0..2{for j in0..2{assert!(float_equal(RESULT[i][j],EXPECTED[i][j],1e-5));}}