TFGrids Class Reference

LibRPA: TFGrids Class Reference
LibRPA

Object to handle time/frequency grids for quadrature. More...

#include <timefreq.h>

Collaboration diagram for TFGrids:

Public Types

enum  GRID_TYPES {
  GaussLegendre , GaussChebyshevI , GaussChebyshevII , Minimax ,
  EvenSpaced , EvenSpaced_TF , COUNT
}
 

Public Member Functions

TFGrids::GRID_TYPES get_grid_type () const
 
 TFGrids (unsigned N)
 
 TFGrids (const TFGrids &tfg)
 
void reset (unsigned N)
 
void show ()
 
size_t get_n_grids () const
 get the number of grid points
 
size_t size () const
 alias to get_n_grids
 
const vector< double > get_freq_nodes () const
 
const vector< double > get_freq_weights () const
 
const vector< double > get_time_nodes () const
 
const vector< double > get_time_weights () const
 
const matrixget_costrans_t2f () const
 
const matrixget_sintrans_t2f () const
 
const matrixget_costrans_f2t () const
 
const matrixget_sintrans_f2t () const
 
int get_time_index (const double &time) const
 
int get_freq_index (const double &freq) const
 
const pair< int, int > get_tf_index (const pair< double, double > &tf) const
 
double find_freq_weight (const double &freq) const
 obtain the integral weight from the frequency value
 
void generate_evenspaced (double emin, double interval)
 Generate the even-spaced frequency grid.
 
void generate_evenspaced_tf (double emin, double eintv, double tmin, double tintv)
 Generate the even-spaced time-frequency grid. More...
 
void generate_minimax (double emin, double emax)
 Generate the minimax time-frequency grid.
 
void generate_GaussChebyshevI ()
 Generate Gauss-Chebyshev quadrature of first kind on [0, infty)
 
void generate_GaussChebyshevII ()
 Generate Gauss-Chebyshev quadrature of second kind on [0, infty)
 
void generate_GaussLegendre ()
 
bool has_time_grids () const
 

Static Public Member Functions

static GRID_TYPES get_grid_type (const string &grid_str)
 

Static Public Attributes

static const string GRID_TYPES_NOTES [GRID_TYPES::COUNT]
 
static const bool SUPPORT_TIME_GRIDS [GRID_TYPES::COUNT]
 

Detailed Description

Object to handle time/frequency grids for quadrature.

Not necessay have a time grids, unless the space-time minimax grid is used.

Note
Only pure imaginary grid method is implemented.
The time grids are always generated when available, since they are cheap

Member Function Documentation

◆ generate_evenspaced_tf()

void TFGrids::generate_evenspaced_tf ( double  emin,
double  eintv,
double  tmin,
double  tintv 
)

Generate the even-spaced time-frequency grid.

Note
Currently only for debug use
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ GRID_TYPES_NOTES

const string TFGrids::GRID_TYPES_NOTES
static
Initial value:
=
{
"Gauss-Legendre grids",
"Gauss-Chebyshev grids of the first kind",
"Gauss-Chebyshev grids of the second kind",
"Minimax time-frequency grids",
"Even-spaced frequency grids",
"Even-spaced time-frequency grids (debug use)",
}

◆ SUPPORT_TIME_GRIDS

const bool TFGrids::SUPPORT_TIME_GRIDS
static
Initial value:
=
{ false, false, false, true, false, true }

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