World Builder  1.1.0-pre
A geodynamic initial conditions generator
WorldBuilder::Utilities::interpolation Class Reference

#include <utilities.h>

Public Member Functions

void set_points (const std::vector< double > &y)
 
double operator() (const double x) const
 
double operator() (const double x, const size_t idx, const double h) const
 
double value_inside (const size_t idx, const double h) const
 
double value_outside (const size_t idx, const double h) const
 

Public Attributes

size_t mx_size_min
 
std::vector< std::array< double, 4 > > m
 

Detailed Description

Class for linear and monotone spline interpolation

Definition at line 188 of file utilities.h.

Member Function Documentation

◆ operator()() [1/2]

double WorldBuilder::Utilities::interpolation::operator() ( const double  x) const
inline

Evaluate at point x.

Definition at line 203 of file utilities.h.

◆ operator()() [2/2]

double WorldBuilder::Utilities::interpolation::operator() ( const double  x,
const size_t  idx,
const double  h 
) const
inline

Definition at line 218 of file utilities.h.

◆ set_points()

void WorldBuilder::Utilities::interpolation::set_points ( const std::vector< double > &  y)

Initialize the spline. This function assumes that all y points are spaced 1 in the x direction.

Parameters
yValues in the interpolation points.

This monotone spline algorithm is based on the javascript version at https://en.wikipedia.org/wiki/Monotone_cubic_interpolation. The parameters from this algorithm prevent overshooting in the interpolation spline.

Definition at line 1040 of file utilities.cc.

Here is the caller graph for this function:

◆ value_inside()

double WorldBuilder::Utilities::interpolation::value_inside ( const size_t  idx,
const double  h 
) const
inline

Evaluate at point x. assumes x is between 0 and mx_size_min. assume size_t idx = (size_t)x and h = x-idx.

Definition at line 233 of file utilities.h.

◆ value_outside()

double WorldBuilder::Utilities::interpolation::value_outside ( const size_t  idx,
const double  h 
) const
inline

Evaluate at point x. assumes x is between 0 and mx_size_min. assume size_t idx = (size_t)x and h = x-idx.

Definition at line 246 of file utilities.h.

Member Data Documentation

◆ m

std::vector<std::array<double,4> > WorldBuilder::Utilities::interpolation::m

interpolation parameters [ f(x) = a*(x-x_i)^3 + b*(x-x_i)^2 + c*(x-x_i) + y_i ]

Definition at line 265 of file utilities.h.

◆ mx_size_min

size_t WorldBuilder::Utilities::interpolation::mx_size_min

number of x coordinates of points

Definition at line 257 of file utilities.h.


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