7 #ifndef ALPS_NUMERIC_OUTER_PRODUCT_HPP 8 #define ALPS_NUMERIC_OUTER_PRODUCT_HPP 16 #include <type_traits> 18 namespace alps {
namespace numeric {
30 inline std::complex<T>
outer_product(std::complex<T>
const& a, std::complex<T>
const& b)
32 return std::conj(a)*b;
41 throw std::logic_error(
"Outer product beween vectors is not implemented. " 42 "Please use the new ALEA library if you need vector-vector covariance!");
47 #endif // ALPS_NUMERIC_OUTER_PRODUCT_HPP
std::enable_if<!is_sequence< T >::value, typename covariance_type< T >::type >::type outer_product(T a, T b)
std::conditional< is_sequence< T >::value, detail::matrix_covariance_type< typename average_type< typename element_type< T >::type >::type >, typename average_type< T >::type >::type type