1 #define START 0
2
3 #include "TMV.h"
4 #include "TMV_Band.h"
5 #include "TMV_Test.h"
6 #include "TMV_Test_2.h"
7 #include "TMV_TestBandArith.h"
8
9 #define NOELEMMULT
10
11 #include "TMV_TestMatrixArith.h"
12
13 template <class T>
TestBandMatrixArith_C1()14 void TestBandMatrixArith_C1()
15 {
16 std::vector<tmv::BandMatrixView<T> > b;
17 std::vector<tmv::BandMatrixView<std::complex<T> > > cb;
18 MakeBandList(b,cb);
19
20 const int N = b[0].rowsize();
21
22 tmv::Matrix<T> a1(N,N);
23 for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) a1(i,j) = T(3+i-5*j);
24 tmv::Matrix<std::complex<T> > ca1(N,N);
25 for (int i=0; i<N; ++i) for (int j=0; j<N; ++j)
26 ca1(i,j) = std::complex<T>(3+i-5*j,4-8*i-j);
27
28 tmv::DiagMatrix<T> d1(a1);
29 tmv::DiagMatrix<std::complex<T> > cd1(ca1);
30 tmv::DiagMatrixView<T> d1v = d1.view();
31 tmv::DiagMatrixView<std::complex<T> > cd1v = cd1.view();
32 tmv::DiagMatrix<T> d1x = d1v;
33 tmv::DiagMatrix<std::complex<T> > cd1x = cd1v;
34
35 for(size_t i=START;i<b.size();i++) {
36 if (showstartdone) {
37 std::cerr<<"Start loop "<<i<<std::endl;
38 std::cerr<<"bi = "<<b[i]<<std::endl;
39 }
40 tmv::BandMatrixView<T> bi = b[i];
41 tmv::BandMatrixView<std::complex<T> > cbi = cb[i];
42
43 TestMatrixArith4(bi,cbi,d1v,cd1v,"Band/Diag");
44 TestMatrixArith5(bi,cbi,d1v,cd1v,"Band/Diag");
45 TestMatrixArith6x(bi,cbi,d1v,cd1v,"Band/Diag");
46 }
47 }
48
49 #ifdef TEST_DOUBLE
50 template void TestBandMatrixArith_C1<double>();
51 #endif
52 #ifdef TEST_FLOAT
53 template void TestBandMatrixArith_C1<float>();
54 #endif
55 #ifdef TEST_LONGDOUBLE
56 template void TestBandMatrixArith_C1<long double>();
57 #endif
58 #ifdef TEST_INT
59 template void TestBandMatrixArith_C1<int>();
60 #endif
61