1 //=================================================================================================
2 /*!
3 //  \file src/mathtest/adaptors/uniuppermatrix/SubmatrixTest.cpp
4 //  \brief Source file for the UniUpperMatrix submatrix test
5 //
6 //  Copyright (C) 2012-2020 Klaus Iglberger - All Rights Reserved
7 //
8 //  This file is part of the Blaze library. You can redistribute it and/or modify it under
9 //  the terms of the New (Revised) BSD License. Redistribution and use in source and binary
10 //  forms, with or without modification, are permitted provided that the following conditions
11 //  are met:
12 //
13 //  1. Redistributions of source code must retain the above copyright notice, this list of
14 //     conditions and the following disclaimer.
15 //  2. Redistributions in binary form must reproduce the above copyright notice, this list
16 //     of conditions and the following disclaimer in the documentation and/or other materials
17 //     provided with the distribution.
18 //  3. Neither the names of the Blaze development group nor the names of its contributors
19 //     may be used to endorse or promote products derived from this software without specific
20 //     prior written permission.
21 //
22 //  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
23 //  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 //  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
25 //  SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 //  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
27 //  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28 //  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 //  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 //  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
31 //  DAMAGE.
32 */
33 //=================================================================================================
34 
35 
36 //*************************************************************************************************
37 // Includes
38 //*************************************************************************************************
39 
40 #include <cstdlib>
41 #include <iostream>
42 #include <blazetest/mathtest/adaptors/uniuppermatrix/SubmatrixTest.h>
43 
44 #ifdef BLAZE_USE_HPX_THREADS
45 #  include <hpx/hpx_main.hpp>
46 #endif
47 
48 
49 namespace blazetest {
50 
51 namespace mathtest {
52 
53 namespace adaptors {
54 
55 namespace uniuppermatrix {
56 
57 //=================================================================================================
58 //
59 //  CONSTRUCTORS
60 //
61 //=================================================================================================
62 
63 //*************************************************************************************************
64 /*!\brief Constructor for the UniUpperMatrix submatrix test.
65 //
66 // \exception std::runtime_error Operation error detected.
67 */
SubmatrixTest()68 SubmatrixTest::SubmatrixTest()
69 {
70    testAssignment<DUT>();
71    testAddAssign<DUT>();
72    testSubAssign<DUT>();
73    testSchurAssign<DUT>();
74 
75    testAssignment<DOUT>();
76    testAddAssign<DOUT>();
77    testSubAssign<DOUT>();
78    testSchurAssign<DOUT>();
79 
80    testAssignment<SUT>();
81    testAddAssign<SUT>();
82    testSubAssign<SUT>();
83    testSchurAssign<SUT>();
84 
85    testAssignment<SOUT>();
86    testAddAssign<SOUT>();
87    testSubAssign<SOUT>();
88    testSchurAssign<SOUT>();
89 }
90 //*************************************************************************************************
91 
92 } // namespace uniuppermatrix
93 
94 } // namespace adaptors
95 
96 } // namespace mathtest
97 
98 } // namespace blazetest
99 
100 
101 
102 
103 //=================================================================================================
104 //
105 //  MAIN FUNCTION
106 //
107 //=================================================================================================
108 
109 //*************************************************************************************************
main()110 int main()
111 {
112    std::cout << "   Running UniUpperMatrix submatrix test..." << std::endl;
113 
114    try
115    {
116       RUN_UNIUPPERMATRIX_SUBMATRIX_TEST;
117    }
118    catch( std::exception& ex ) {
119       std::cerr << "\n\n ERROR DETECTED during UniUpperMatrix submatrix test:\n"
120                 << ex.what() << "\n";
121       return EXIT_FAILURE;
122    }
123 
124    return EXIT_SUCCESS;
125 }
126 //*************************************************************************************************
127