DiFfRG
Loading...
Searching...
No Matches
DiFfRG::internal::QuadratureStorage Class Reference

A class that stores Quadrature points and weights for a given type and order Its main purpose is to avoid recomputing the quadrature points and weights for each integrator and provide a search algorithm to find previously computed quadratures. More...

#include <quadrature_provider.hh>

Public Member Functions

template<typename NT = double>
Quadrature< NT > & get_quadrature (const size_t order, const QuadratureType type)
 
void set_verbosity (int v)
 

Private Types

template<typename NT = double>
using StorageType = std::map<QuadratureType, std::map<size_t, Quadrature<NT>>>
 
template<typename NT = double>
using SubStorageType = std::map<size_t, Quadrature<NT>>
 
template<typename NT = double>
using TypeIterator = typename StorageType<NT>::iterator
 
template<typename NT = double>
using OrderIterator = typename StorageType<NT>::mapped_type::iterator
 

Private Member Functions

Quadrature< double > & get_quadrature_d (const size_t order, const QuadratureType type)
 
Quadrature< float > & get_quadrature_f (const size_t order, const QuadratureType type)
 
TypeIterator< double > find_type_d (const QuadratureType type)
 
TypeIterator< float > find_type_f (const QuadratureType type)
 
OrderIterator< double > find_order_d (const size_t order, TypeIterator< double > type_it)
 
OrderIterator< float > find_order_f (const size_t order, TypeIterator< float > type_it)
 

Private Attributes

StorageType< double > quadratures_d
 
StorageType< float > quadratures_f
 
int verbosity = 0
 
std::mutex m_mutex
 

Detailed Description

A class that stores Quadrature points and weights for a given type and order Its main purpose is to avoid recomputing the quadrature points and weights for each integrator and provide a search algorithm to find previously computed quadratures.

Member Typedef Documentation

◆ OrderIterator

template<typename NT = double>
using DiFfRG::internal::QuadratureStorage::OrderIterator = typename StorageType<NT>::mapped_type::iterator
private

◆ StorageType

template<typename NT = double>
using DiFfRG::internal::QuadratureStorage::StorageType = std::map<QuadratureType, std::map<size_t, Quadrature<NT>>>
private

◆ SubStorageType

template<typename NT = double>
using DiFfRG::internal::QuadratureStorage::SubStorageType = std::map<size_t, Quadrature<NT>>
private

◆ TypeIterator

template<typename NT = double>
using DiFfRG::internal::QuadratureStorage::TypeIterator = typename StorageType<NT>::iterator
private

Member Function Documentation

◆ find_order_d()

OrderIterator< double > DiFfRG::internal::QuadratureStorage::find_order_d ( const size_t order,
TypeIterator< double > type_it )
private

◆ find_order_f()

OrderIterator< float > DiFfRG::internal::QuadratureStorage::find_order_f ( const size_t order,
TypeIterator< float > type_it )
private

◆ find_type_d()

TypeIterator< double > DiFfRG::internal::QuadratureStorage::find_type_d ( const QuadratureType type)
private

◆ find_type_f()

TypeIterator< float > DiFfRG::internal::QuadratureStorage::find_type_f ( const QuadratureType type)
private

◆ get_quadrature()

template<typename NT = double>
Quadrature< NT > & DiFfRG::internal::QuadratureStorage::get_quadrature ( const size_t order,
const QuadratureType type )
inline

◆ get_quadrature_d()

Quadrature< double > & DiFfRG::internal::QuadratureStorage::get_quadrature_d ( const size_t order,
const QuadratureType type )
private

◆ get_quadrature_f()

Quadrature< float > & DiFfRG::internal::QuadratureStorage::get_quadrature_f ( const size_t order,
const QuadratureType type )
private

◆ set_verbosity()

void DiFfRG::internal::QuadratureStorage::set_verbosity ( int v)

Member Data Documentation

◆ m_mutex

std::mutex DiFfRG::internal::QuadratureStorage::m_mutex
private

◆ quadratures_d

StorageType<double> DiFfRG::internal::QuadratureStorage::quadratures_d
private

◆ quadratures_f

StorageType<float> DiFfRG::internal::QuadratureStorage::quadratures_f
private

◆ verbosity

int DiFfRG::internal::QuadratureStorage::verbosity = 0
private

The documentation for this class was generated from the following file: