• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright Louis Dionne 2013-2017
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
4 
5 #include <boost/hana/assert.hpp>
6 
7 #include "matrix/det.hpp"
8 namespace hana = boost::hana;
9 using namespace cppcon;
10 
11 
main()12 int main() {
13     // det
14     {
15         BOOST_HANA_CONSTEXPR_CHECK(det(matrix(row(1))) == 1);
16         BOOST_HANA_CONSTEXPR_CHECK(det(matrix(row(2))) == 2);
17 
18         BOOST_HANA_CONSTEXPR_CHECK(det(matrix(row(1, 2), row(3, 4))) == -2);
19 
20         BOOST_HANA_CONSTEXPR_CHECK(
21             det(matrix(
22                 row(1, 5, 6),
23                 row(3, 2, 4),
24                 row(7, 8, 9)
25             ))
26             == 51
27         );
28 
29         BOOST_HANA_CONSTEXPR_CHECK(
30             det(matrix(
31                 row(1, 5, 6, -3),
32                 row(3, 2, 4, -5),
33                 row(7, 8, 9, -1),
34                 row(8, 2, 1, 10)
35             )) == 214
36         );
37 
38         BOOST_HANA_CONSTEXPR_CHECK(
39             det(matrix(
40                 row(1,  5,  6, -3, 92),
41                 row(3,  2,  4, -5, 13),
42                 row(7,  8,  9, -1, 0),
43                 row(8,  2,  1, 10, 41),
44                 row(3, 12, 92, -7, -4)
45             )) == -3115014
46         );
47     }
48 }
49