ALPSCore reference
util.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1998-2018 ALPS Collaboration. See COPYRIGHT.TXT
3  * All rights reserved. Use is subject to license terms. See LICENSE.TXT
4  * For use in publications, see ACKNOWLEDGE.TXT
5  */
6 
10 #pragma once
11 
12 #include <alps/alea/core.hpp>
13 
14 #include <vector>
15 #include <Eigen/Dense>
16 
17 
18 // -------- INTEROPERABILITY WITH EIGEN --------
19 
20 namespace alps { namespace alea {
21 
23 template <typename T>
24 struct make_complex { typedef std::complex<T> type; };
25 
27 template <typename T>
28 struct make_complex< std::complex<T> > { typedef std::complex<T> type; };
29 
31 template <typename T>
32 struct make_real { typedef T type; };
33 
35 template <typename T>
36 struct make_real< std::complex<T> > { typedef T type; };
37 
38 template <typename T>
39 struct eigen
40 {
41  typedef typename Eigen::Matrix<T, Eigen::Dynamic, 1> col;
42  typedef typename Eigen::Map<col, Eigen::Unaligned> col_map;
43  typedef typename Eigen::Map<const col, Eigen::Unaligned> const_col_map;
44 
45  typedef typename Eigen::Matrix<T, 1, Eigen::Dynamic> row;
46  typedef typename Eigen::Map<row, Eigen::Unaligned> row_map;
47  typedef typename Eigen::Map<const row, Eigen::Unaligned> const_row_map;
48 
49  typedef typename Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> matrix;
50  typedef typename Eigen::Map<matrix, Eigen::Unaligned> matrix_map;
51  typedef typename Eigen::Map<const matrix, Eigen::Unaligned> const_matrix_map;
52 };
53 
55 enum verbosity {
59 };
60 
62 std::ostream &operator<<(std::ostream &stream, verbosity verb);
63 
64 }}
STL namespace.
Eigen::Map< const matrix, Eigen::Unaligned > const_matrix_map
Definition: util.hpp:51
Eigen::Map< const row, Eigen::Unaligned > const_row_map
Definition: util.hpp:47
Eigen::Map< row, Eigen::Unaligned > row_map
Definition: util.hpp:46
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > matrix
Definition: util.hpp:49
Eigen::Map< col, Eigen::Unaligned > col_map
Definition: util.hpp:42
Eigen::Map< matrix, Eigen::Unaligned > matrix_map
Definition: util.hpp:50
std::ostream & operator<<(std::ostream &, const autocorr_result< T > &)
Definition: autocorr.cpp:293
Eigen::Map< const col, Eigen::Unaligned > const_col_map
Definition: util.hpp:43
std::complex< T > type
Definition: util.hpp:24
Eigen::Matrix< T, 1, Eigen::Dynamic > row
Definition: util.hpp:45
Eigen::Matrix< T, Eigen::Dynamic, 1 > col
Definition: util.hpp:41