iterative-solver 0.0
 
Loading...
Searching...
No Matches
molpro::linalg Namespace Reference

Namespaces

namespace  array
 
namespace  iterativesolver
 
namespace  itsolv
 4-parameter interpolation of a 1-dimensional function given two points for which function values and first derivatives are known.
 

Classes

struct  is_complex
 
struct  is_complex< std::complex< T > >
 
struct  real_type
 The real type underlying a (possibly complex) scalar type. More...
 
struct  real_type< std::complex< T > >
 

Typedefs

template<typename T >
using real_type_t = typename real_type< T >::type
 The real type underlying T, i.e. T itself for a real type and U for std::complex<U>.
 

Functions

const std::shared_ptr< const molpro::Options > options ()
 Get the Options object associated with iterative-solver.
 
void set_options (const molpro::Options &options)
 Set the options for iterative-solver.
 
template<typename T >
T conjugate (const T &x)
 Complex conjugate, staying within the scalar type; the identity for a real type.
 
template<typename T >
real_type_t< T > real_part (const T &x)
 The real part of a scalar; the value itself for a real type.
 
template<typename T >
real_type_t< T > imaginary_part (const T &x)
 The imaginary part of a scalar; zero for a real type.
 
template<typename value_type >
real_type_t< value_type > precision_scaled (double tolerance_for_double)
 Rescale a tolerance that was calibrated for IEEE double precision to the working precision.
 

Typedef Documentation

◆ real_type_t

template<typename T >
using molpro::linalg::real_type_t = typedef typename real_type<T>::type

The real type underlying T, i.e. T itself for a real type and U for std::complex<U>.

Quantities that are real by construction – eigenvalues of a hermitian matrix, singular values, norms and the thresholds they are compared against – are expressed in this type rather than in the scalar type of the problem.

Function Documentation

◆ conjugate()

template<typename T >
T molpro::linalg::conjugate ( const T &  x)

Complex conjugate, staying within the scalar type; the identity for a real type.

◆ imaginary_part()

template<typename T >
real_type_t< T > molpro::linalg::imaginary_part ( const T &  x)

The imaginary part of a scalar; zero for a real type.

◆ options()

const std::shared_ptr< const molpro::Options > molpro::linalg::options ( )

Get the Options object associated with iterative-solver.

Returns
The current option set. If none has been assigned, in the Molpro context the "ITERATIVE-SOLVER" option set is used, otherwise empty.

◆ precision_scaled()

template<typename value_type >
real_type_t< value_type > molpro::linalg::precision_scaled ( double  tolerance_for_double)

Rescale a tolerance that was calibrated for IEEE double precision to the working precision.

A tolerance of the form "this quantity vanishes to within rounding error" is a fixed multiple of the machine epsilon of the arithmetic used. The constants in this library were chosen for double precision; this function preserves their safety margin, measured in machine epsilons, at any other precision, and returns the constant unchanged when the working precision is double.

◆ real_part()

template<typename T >
real_type_t< T > molpro::linalg::real_part ( const T &  x)

The real part of a scalar; the value itself for a real type.

◆ set_options()

void molpro::linalg::set_options ( const molpro::Options &  options)

Set the options for iterative-solver.

Parameters
options