#include #include #include using namespace matrix; static const size_t n_large = 50; template class SquareMatrix; template class SquareMatrix; int main() { float data[9] = {0, 2, 3, 4, 5, 6, 7, 8, 10 }; float data_check[9] = { -0.4f, -0.8f, 0.6f, -0.4f, 4.2f, -2.4f, 0.6f, -2.8f, 1.6f }; SquareMatrix A(data); SquareMatrix A_I = inv(A); SquareMatrix A_I_check(data_check); A_I.print(); A_I_check.print(); assert((A_I - A_I_check).abs().max() < 1e-5); // stess test SquareMatrix A_large; A_large.setIdentity(); SquareMatrix A_large_I; A_large_I.setZero(); for (size_t i = 0; i < n_large; i++) { A_large_I = inv(A_large); assert(A_large == A_large_I); } SquareMatrix zero_test = zeros(); inv(zero_test); return 0; } /* vim: set et fenc=utf-8 ff=unix sts=0 sw=4 ts=4 : */