int main(int argc, char * argv[]){ Triangle t1(3,3,3,1,1); Square s1(6,2,2); Circle c1(7,3,3); Sphere sp1(10,4,4,4); Cube cu1(10,5,5,5); Tetrahedron te1(5,6,7,8,9,10,6,6,6); Cube cu2(5,7,7,7); Square s2(16,8,8); Circle c2(1,9,9); Circle c3(55,10,10); Square s3(3,11,11); Tetrahedron te2(3,3,3,3,3,3,12,12,12); Shape * arr = new Shape[12]; arr[0] = t1; arr[1] = s1; arr[2] = c1; arr[3] = sp1; arr[4] = cu1; arr[5] = te1; arr[6] = cu2; arr[7] = s2; arr[8] = c2; arr[9] = c3; arr[10] = s3; arr[11] = te2; for(int i = 0; i < 11; ++i){ cout << endl; if(arr[i].getT() == 2){ cout << "2-D Shape Found" << endl; cout << "Points are: (" << arr[i].getX() << ", " << arr[i].getY() << ")" << endl; cout << "Area is: " << arr[i].getArea() << endl; } else{ cout << "3-D Shape" << endl; cout << "At Pt: (" << arr[i].getX() << ", " << arr[i].getY() << ", " << arr[i].getZ() <<")" << endl; cout << "Surface Area is: " << arr[i].getSurface() << endl; cout << "Volume is: " << arr[i].getVolume() << endl; } } delete[] arr; return 0; }
void TestBandMatrixArith_D1() { std::vector<tmv::BandMatrixView<T> > b; std::vector<tmv::BandMatrixView<std::complex<T> > > cb; MakeBandList(b,cb); const int N = b[0].rowsize(); tmv::Matrix<T> a1(N,N); for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) a1(i,j) = T(3+i-5*j); tmv::Matrix<std::complex<T> > ca1(N,N); for (int i=0; i<N; ++i) for (int j=0; j<N; ++j) ca1(i,j) = std::complex<T>(3+i-5*j,4-8*i-j); tmv::UpperTriMatrix<T,tmv::NonUnitDiag|tmv::RowMajor> u1(a1); tmv::UpperTriMatrix<std::complex<T>,tmv::NonUnitDiag|tmv::RowMajor> cu1(ca1); tmv::UpperTriMatrixView<T> u1v = u1.view(); tmv::UpperTriMatrixView<std::complex<T> > cu1v = cu1.view(); tmv::UpperTriMatrix<T,tmv::NonUnitDiag> u1x = u1v; tmv::UpperTriMatrix<std::complex<T>,tmv::NonUnitDiag> cu1x = cu1v; #if (XTEST & 2) tmv::UpperTriMatrix<T,tmv::UnitDiag|tmv::RowMajor> u2(a1); tmv::UpperTriMatrix<T,tmv::NonUnitDiag|tmv::ColMajor> u3(a1); tmv::UpperTriMatrix<T,tmv::UnitDiag|tmv::ColMajor> u4(a1); tmv::LowerTriMatrix<T,tmv::NonUnitDiag|tmv::RowMajor> l1(a1); tmv::LowerTriMatrix<T,tmv::UnitDiag|tmv::RowMajor> l2(a1); tmv::LowerTriMatrix<T,tmv::NonUnitDiag|tmv::ColMajor> l3(a1); tmv::LowerTriMatrix<T,tmv::UnitDiag|tmv::ColMajor> l4(a1); tmv::UpperTriMatrix<std::complex<T>,tmv::UnitDiag|tmv::RowMajor> cu2(ca1); tmv::UpperTriMatrix<std::complex<T>,tmv::NonUnitDiag|tmv::ColMajor> cu3(ca1); tmv::UpperTriMatrix<std::complex<T>,tmv::UnitDiag|tmv::ColMajor> cu4(ca1); tmv::LowerTriMatrix<std::complex<T>,tmv::NonUnitDiag|tmv::RowMajor> cl1(ca1); tmv::LowerTriMatrix<std::complex<T>,tmv::UnitDiag|tmv::RowMajor> cl2(ca1); tmv::LowerTriMatrix<std::complex<T>,tmv::NonUnitDiag|tmv::ColMajor> cl3(ca1); tmv::LowerTriMatrix<std::complex<T>,tmv::UnitDiag|tmv::ColMajor> cl4(ca1); tmv::UpperTriMatrixView<T> u2v = u2.view(); tmv::UpperTriMatrixView<T> u3v = u3.view(); tmv::UpperTriMatrixView<T> u4v = u4.view(); tmv::LowerTriMatrixView<T> l1v = l1.view(); tmv::LowerTriMatrixView<T> l2v = l2.view(); tmv::LowerTriMatrixView<T> l3v = l3.view(); tmv::LowerTriMatrixView<T> l4v = l4.view(); tmv::UpperTriMatrixView<std::complex<T> > cu2v = cu2.view(); tmv::UpperTriMatrixView<std::complex<T> > cu3v = cu3.view(); tmv::UpperTriMatrixView<std::complex<T> > cu4v = cu4.view(); tmv::LowerTriMatrixView<std::complex<T> > cl1v = cl1.view(); tmv::LowerTriMatrixView<std::complex<T> > cl2v = cl2.view(); tmv::LowerTriMatrixView<std::complex<T> > cl3v = cl3.view(); tmv::LowerTriMatrixView<std::complex<T> > cl4v = cl4.view(); #endif for(size_t i=START;i<b.size();i++) { if (showstartdone) { std::cerr<<"Start loop "<<i<<std::endl; std::cerr<<"bi = "<<b[i]<<std::endl; } tmv::BandMatrixView<T> bi = b[i]; tmv::BandMatrixView<std::complex<T> > cbi = cb[i]; TestMatrixArith4(bi,cbi,u1v,cu1v,"Band/UpperTri"); TestMatrixArith5(bi,cbi,u1v,cu1v,"Band/UpperTri"); TestMatrixArith6x(bi,cbi,u1v,cu1v,"Band/UpperTri"); #if (XTEST & 2) TestMatrixArith4(bi,cbi,l1v,cl1v,"Band/LowerTri"); TestMatrixArith5(bi,cbi,l1v,cl1v,"Band/LowerTri"); TestMatrixArith6x(bi,cbi,l1v,cl1v,"Band/LowerTri"); TestMatrixArith4(bi,cbi,u2v,cu2v,"Band/UpperTri"); TestMatrixArith5(bi,cbi,u2v,cu2v,"Band/UpperTri"); TestMatrixArith6x(bi,cbi,u2v,cu2v,"Band/UpperTri"); TestMatrixArith4(bi,cbi,l2v,cl2v,"Band/LowerTri"); TestMatrixArith5(bi,cbi,l2v,cl2v,"Band/LowerTri"); TestMatrixArith6x(bi,cbi,l2v,cl2v,"Band/LowerTri"); TestMatrixArith4(bi,cbi,u3v,cu3v,"Band/UpperTri"); TestMatrixArith5(bi,cbi,u3v,cu3v,"Band/UpperTri"); TestMatrixArith6x(bi,cbi,u3v,cu3v,"Band/UpperTri"); TestMatrixArith4(bi,cbi,l3v,cl3v,"Band/LowerTri"); TestMatrixArith5(bi,cbi,l3v,cl3v,"Band/LowerTri"); TestMatrixArith6x(bi,cbi,l3v,cl3v,"Band/LowerTri"); TestMatrixArith4(bi,cbi,u4v,cu4v,"Band/UpperTri"); TestMatrixArith5(bi,cbi,u4v,cu4v,"Band/UpperTri"); TestMatrixArith6x(bi,cbi,u4v,cu4v,"Band/UpperTri"); TestMatrixArith4(bi,cbi,l4v,cl4v,"Band/LowerTri"); TestMatrixArith5(bi,cbi,l4v,cl4v,"Band/LowerTri"); TestMatrixArith6x(bi,cbi,l4v,cl4v,"Band/LowerTri"); #endif } }