6#ifndef INVERSE_MATRIX_TEST_H
7#define INVERSE_MATRIX_TEST_H
10#include <LibRI/unittests/global/Tensor-test.h>
14 template<
typename Tdata>
17 Tensor<Tdata> t(shape);
18 for(
size_t i=0; i<t.data->size(); ++i)
23 template<
typename Tdata>
26 Tensor<Tdata> t(shape);
27 for(
size_t i0=0; i0<t.shape[0]; ++i0)
28 for(
size_t i1=0; i1<t.shape[1]; ++i1)
29 t(i0,i1) = i0==i1 ? i0+1 : (i0+i1)/10.0;
33 template<
typename Tdata>
38 const size_t n_all = 5;
39 const std::vector<size_t> n0 = {2,3};
40 const std::vector<size_t> n1 = {1,2,2};
42 Tensor<Tdata> m = init_Tensor<Tdata>({n_all,n_all});
44 std::vector<std::vector<Tensor<Tdata>>> ms(n0.size(), std::vector<Tensor<Tdata>>(n1.size()));
45 for(
size_t Im0=0; Im0<n0.size(); ++Im0)
46 for(
size_t Im1=0; Im1<n1.size(); ++Im1)
47 ms[Im0][Im1] = init_Tensor<Tdata>({n0[Im0], n1[Im1]});
50 std::cout<<inv.
output()<<std::endl;
53 std::cout<<inv.
output(n0, n1)<<std::endl;
56 std::cout<<inv.
output()<<std::endl;
59 std::cout<<inv.
output(n0, n1)<<std::endl;
121 template<
typename Tdata>
124 Tensor<Tdata> t = init_Tensor2<Tdata>({5,5});
129 Tensor<Tdata> tI = inv.output();
131 std::cout<<t<<std::endl;
132 std::cout<<tI<<std::endl;
133 std::cout<<t*tI<<std::endl;
134 std::cout<<tI*t<<std::endl;
Definition Inverse_Matrix.h:13
void input(const RI::Tensor< Tdata > &m)
Definition Inverse_Matrix.hpp:63
RI::Tensor< Tdata > output() const
Definition Inverse_Matrix.hpp:117
Definition Inverse_Matrix-test.h:13
Tensor< Tdata > init_Tensor2(const std::vector< size_t > &shape)
Definition Inverse_Matrix-test.h:24
void test_inverse()
Definition Inverse_Matrix-test.h:122
Tensor< Tdata > init_Tensor(const std::vector< size_t > &shape)
Definition Inverse_Matrix-test.h:15
void test_input_output()
Definition Inverse_Matrix-test.h:34