lambda-lanczos 2.0.0
Loading...
Searching...
No Matches
lambda_lanczos_util.hpp File Reference
#include <vector>
#include <complex>
#include <limits>
#include <cmath>
#include <numeric>
#include <cassert>
#include <sstream>
#include <map>
#include <functional>

Go to the source code of this file.

Classes

class  lambda_lanczos::util::TupleViewIterator< I, container_type >
 Iterator for a container of tuples to iterate over the I-th tuple elements. More...
 
class  lambda_lanczos::util::MapValueIterable< map_type >
 
struct  lambda_lanczos::util::realTypeMap< T >
 Template class to map specific types. See real_t<T> for usage. More...
 
struct  lambda_lanczos::util::realTypeMap< std::complex< T > >
 
struct  lambda_lanczos::util::TypedConjugate< T >
 Complex conjugate template. More...
 
struct  lambda_lanczos::util::TypedConjugate< std::complex< T > >
 

Namespaces

namespace  lambda_lanczos
 
namespace  lambda_lanczos::util
 

Typedefs

template<typename map_type >
using lambda_lanczos::util::MapValueIterator = TupleViewIterator< 1, map_type >
 Iterator for a map to iterate over its values. More...
 
template<typename T >
using lambda_lanczos::util::real_t = typename realTypeMap< T >::type
 Type mapper from T to real type of T. More...
 

Functions

template<typename T >
lambda_lanczos::util::typed_conj (const T &val)
 Complex conjugate with type. This function returns the argument itself for real type, and returns its complex conjugate for complex type. More...
 
template<typename T >
lambda_lanczos::util::inner_prod (const std::vector< T > &v1, const std::vector< T > &v2)
 Returns "mathematical" inner product of v1 and v2. More...
 
template<typename T >
real_t< T > lambda_lanczos::util::norm (const std::vector< T > &vec)
 Returns Euclidean norm of given vector. More...
 
template<typename T1 , typename T2 >
void lambda_lanczos::util::scalar_mul (T1 a, std::vector< T2 > &vec)
 Multiplies each element of vec by a. More...
 
template<typename T >
void lambda_lanczos::util::normalize (std::vector< T > &vec)
 Normalizes given vector. More...
 
template<typename T >
real_t< T > lambda_lanczos::util::l1_norm (const std::vector< T > &vec)
 Returns 1-norm of given vector. More...
 
template<typename ForwardIterator , typename T >
void lambda_lanczos::util::schmidt_orth (std::vector< T > &uorth, ForwardIterator first, ForwardIterator last)
 Orthogonalizes vector uorth with respect to orthonormal vectors defined by given iterators. More...
 
template<typename T >
void lambda_lanczos::util::initAsIdentity (std::vector< std::vector< T > > &a, size_t n)
 Initializes the given matrix a to an n by n identity matrix. More...
 
template<typename T >
void lambda_lanczos::util::sort_eigenpairs (std::vector< real_t< T > > &eigenvalues, std::vector< std::vector< T > > &eigenvectors, bool sort_eigenvector, const std::function< bool(real_t< T >, real_t< T >)> predicate=std::less< real_t< T > >())
 Sorts eigenvalues and eigenvectors with respect to given predicate. More...
 
template<typename T >
constexpr int lambda_lanczos::util::sig_decimal_digit ()
 Returns the significant decimal digits of type T. More...
 
template<typename T >
constexpr T lambda_lanczos::util::minimum_effective_decimal ()
 
template<typename T >
lambda_lanczos::util::sgn (T val)
 Return the sign of given value. More...
 
template<typename T >
std::string lambda_lanczos::util::vectorToString (const std::vector< T > &vec, std::string delimiter=" ")
 Returns string representation of given vector. More...