hermitian_matrix.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // Copyright (c) 2000-2002
  3. // Joerg Walter, Mathias Koch
  4. //
  5. // Distributed under the Boost Software License, Version 1.0. (See
  6. // accompanying file LICENSE_1_0.txt or copy at
  7. // http://www.boost.org/LICENSE_1_0.txt)
  8. //
  9. // The authors gratefully acknowledge the support of
  10. // GeNeSys mbH & Co. KG in producing this work.
  11. //
  12. #include <boost/numeric/ublas/hermitian.hpp>
  13. #include <boost/numeric/ublas/io.hpp>
  14. int main () {
  15. using namespace boost::numeric::ublas;
  16. hermitian_matrix<std::complex<double>, lower> ml (3, 3);
  17. for (unsigned i = 0; i < ml.size1 (); ++ i) {
  18. for (unsigned j = 0; j < i; ++ j)
  19. ml (i, j) = std::complex<double> (3 * i + j, 3 * i + j);
  20. ml (i, i) = std::complex<double> (4 * i, 0);
  21. }
  22. std::cout << ml << std::endl;
  23. hermitian_matrix<std::complex<double>, upper> mu (3, 3);
  24. for (unsigned i = 0; i < mu.size1 (); ++ i) {
  25. mu (i, i) = std::complex<double> (4 * i, 0);
  26. for (unsigned j = i + 1; j < mu.size2 (); ++ j)
  27. mu (i, j) = std::complex<double> (3 * i + j, 3 * i + j);
  28. }
  29. std::cout << mu << std::endl;
  30. }