det.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. #include <boost/hana/assert.hpp>
  5. #include "matrix/det.hpp"
  6. namespace hana = boost::hana;
  7. using namespace cppcon;
  8. int main() {
  9. // det
  10. {
  11. BOOST_HANA_CONSTEXPR_CHECK(det(matrix(row(1))) == 1);
  12. BOOST_HANA_CONSTEXPR_CHECK(det(matrix(row(2))) == 2);
  13. BOOST_HANA_CONSTEXPR_CHECK(det(matrix(row(1, 2), row(3, 4))) == -2);
  14. BOOST_HANA_CONSTEXPR_CHECK(
  15. det(matrix(
  16. row(1, 5, 6),
  17. row(3, 2, 4),
  18. row(7, 8, 9)
  19. ))
  20. == 51
  21. );
  22. BOOST_HANA_CONSTEXPR_CHECK(
  23. det(matrix(
  24. row(1, 5, 6, -3),
  25. row(3, 2, 4, -5),
  26. row(7, 8, 9, -1),
  27. row(8, 2, 1, 10)
  28. )) == 214
  29. );
  30. BOOST_HANA_CONSTEXPR_CHECK(
  31. det(matrix(
  32. row(1, 5, 6, -3, 92),
  33. row(3, 2, 4, -5, 13),
  34. row(7, 8, 9, -1, 0),
  35. row(8, 2, 1, 10, 41),
  36. row(3, 12, 92, -7, -4)
  37. )) == -3115014
  38. );
  39. }
  40. }