flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
linalg2.hpp File Reference
#include <cstdint>
#include <limits>
#include <cctype>
#include <cmath>
#include <complex>
#include <algorithm>
#include <Eigen/Core>
#include <Eigen/SVD>
#include <Eigen/Eigenvalues>
#include <unsupported/Eigen/MatrixFunctions>
Include dependency graph for linalg2.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  flexiblesusy::FlipSignOp< Real >
 

Namespaces

namespace  flexiblesusy
 

Macros

#define MAX_(i, j)   (((i) > (j)) ? (i) : (j))
 
#define MIN_(i, j)   (((i) < (j)) ? (i) : (j))
 

Functions

template<typename T >
double flexiblesusy::calculate_dirac_singlet_mass (T value, std::complex< double > &phase)
 
template<typename T >
double flexiblesusy::calculate_majorana_singlet_mass (T value, std::complex< double > &phase)
 
template<typename T >
double flexiblesusy::calculate_singlet_mass (T value) noexcept
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w)
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > &z)
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > &z, Real &w_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > &z, Real &w_errbd, Eigen::Array< Real, N, 1 > &z_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Real &w_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian_errbd (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > *z=0, Real *w_errbd=0, Eigen::Array< Real, N, 1 > *z_errbd=0)
 
template<class Real , class Scalar , int N>
void flexiblesusy::diagonalize_hermitian_internal (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > *z)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd, Eigen::Array< Real, N, 1 > &u_errbd)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s, Real &s_errbd)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd, Eigen::Array< Real, N, 1 > &u_errbd)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s, Real &s_errbd)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric_errbd (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > *u=0, Real *s_errbd=0, Eigen::Array< Real, N, 1 > *u_errbd=0)
 
template<class Real , int N>
void flexiblesusy::diagonalize_symmetric_errbd (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > *u=0, Real *s_errbd=0, Eigen::Array< Real, N, 1 > *u_errbd=0)
 
template<int M, int N, class Real >
void flexiblesusy::disna (const char &JOB, const Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &D, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &SEP, int &INFO)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > &z)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > &z, Real &w_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > &z, Real &w_errbd, Eigen::Array< Real, N, 1 > &z_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_hermitian (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Real &w_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_hermitian_errbd (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > *z=0, Real *w_errbd=0, Eigen::Array< Real, N, 1 > *z_errbd=0)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd, Eigen::Array< Real, N, 1 > &u_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Real &s_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::fs_diagonalize_symmetric_errbd (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > *u=0, Real *s_errbd=0, Eigen::Array< Real, N, 1 > *u_errbd=0)
 
template<class Real , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Real, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< std::complex< Real >, M, M > &u, Eigen::Matrix< std::complex< Real >, N, N > &v)
 
template<class Real , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Real, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< std::complex< Real >, M, M > &u, Eigen::Matrix< std::complex< Real >, N, N > &v, Real &s_errbd)
 
template<class Real , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Real, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< std::complex< Real >, M, M > &u, Eigen::Matrix< std::complex< Real >, N, N > &v, Real &s_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &u_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &v_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &v)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &v, Real &s_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &v, Real &s_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &u_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &v_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::fs_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Real &s_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::fs_svd_errbd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u=0, Eigen::Matrix< Scalar, N, N > *v=0, Real *s_errbd=0, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > *u_errbd=0, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > *v_errbd=0)
 
template<class Real , class Scalar , int N>
void flexiblesusy::hermitian_eigen (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &w, Eigen::Matrix< Scalar, N, N > *z)
 
template<class Real , class Scalar , int N>
void flexiblesusy::reorder_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s)
 
template<class Real , class Scalar , int N>
void flexiblesusy::reorder_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u)
 
template<class Real , class Scalar , int N>
void flexiblesusy::reorder_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::reorder_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > &u, Real &s_errbd, Eigen::Array< Real, N, 1 > &u_errbd)
 
template<class Real , class Scalar , int N>
void flexiblesusy::reorder_diagonalize_symmetric (const Eigen::Matrix< Scalar, N, N > &m, Eigen::Array< Real, N, 1 > &s, Real &s_errbd)
 
template<class Real , int N>
void flexiblesusy::reorder_diagonalize_symmetric_errbd (const Eigen::Matrix< Real, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > *u=0, Real *s_errbd=0, Eigen::Array< Real, N, 1 > *u_errbd=0)
 
template<class Real , int N>
void flexiblesusy::reorder_diagonalize_symmetric_errbd (const Eigen::Matrix< std::complex< Real >, N, N > &m, Eigen::Array< Real, N, 1 > &s, Eigen::Matrix< std::complex< Real >, N, N > *u=0, Real *s_errbd=0, Eigen::Array< Real, N, 1 > *u_errbd=0)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::reorder_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::reorder_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &vh)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::reorder_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &vh, Real &s_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::reorder_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &vh, Real &s_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &u_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &v_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::reorder_svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Real &s_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::reorder_svd_errbd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u=0, Eigen::Matrix< Scalar, N, N > *vh=0, Real *s_errbd=0, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > *u_errbd=0, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > *v_errbd=0)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &vh)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &vh, Real &s_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > &u, Eigen::Matrix< Scalar, N, N > &vh, Real &s_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &u_errbd, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &v_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Real &s_errbd)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd_eigen (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u, Eigen::Matrix< Scalar, N, N > *vh)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd_errbd (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u=0, Eigen::Matrix< Scalar, N, N > *vh=0, Real *s_errbd=0, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > *u_errbd=0, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > *v_errbd=0)
 
template<class Real , class Scalar , int M, int N>
void flexiblesusy::svd_internal (const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u, Eigen::Matrix< Scalar, N, N > *vh)
 

Macro Definition Documentation

◆ MAX_

#define MAX_ (   i,
 
)    (((i) > (j)) ? (i) : (j))

Definition at line 35 of file linalg2.hpp.

◆ MIN_

#define MIN_ (   i,
 
)    (((i) < (j)) ? (i) : (j))

Definition at line 36 of file linalg2.hpp.