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