7 #ifndef LHAPDF_LogBicubicInterpolator_H
8 #define LHAPDF_LogBicubicInterpolator_H
10 #include "LHAPDF/Interpolator.h"
47 static void setup(
size_t size,
int update_step=+1,
bool update_on_hit=
true);
90 static void setup(
size_t size,
int update_step=+1,
bool update_on_hit=
true);
The general interface for interpolating between grid points.
Definition: Interpolator.h:21
Internal storage class for PDF data point grids.
Definition: KnotArray.h:20
Implementation of bicubic interpolation.
Definition: LogBicubicInterpolator.h:18
static XCache & _getCacheX(const KnotArray1F &subgrid, double x, size_t ix)
Get and update the current caching structs for interpolation params.
double _interpolateXQ2(const KnotArray1F &subgrid, double x, size_t ix, double q2, size_t iq2) const
Implementation of (x,Q2) interpolation.
Namespace for all LHAPDF functions and classes.
Definition: AlphaS.h:14
A single set of cached Q2-variables.
Definition: LogBicubicInterpolator.h:67
double logq2
Cached params.
Definition: LogBicubicInterpolator.h:72
double q2
Defining params from call (initialised to unphysical values, so first use will set the cache)
Definition: LogBicubicInterpolator.h:69
A multi-level Q2-variable cache for a single subgrid hash.
Definition: LogBicubicInterpolator.h:80
size_t ilast
Latest-call index.
Definition: LogBicubicInterpolator.h:95
static int UPDATE_STEP
Cache access strategy.
Definition: LogBicubicInterpolator.h:85
static size_t SIZE
Number of cache levels.
Definition: LogBicubicInterpolator.h:83
static void setup(size_t size, int update_step=+1, bool update_on_hit=true)
(Re)define cache size and search strategy
static void init()
Initialize a cache on this thread (call with explicit locks to ensure safe initialisation for each th...
Q2Cache & operator[](size_t index)
Access the index'th element of the cache.
Definition: LogBicubicInterpolator.h:104
static bool UPDATE_ON_HIT
Cache access strategy.
Definition: LogBicubicInterpolator.h:87
size_t size()
Get the length of the cache vector.
Definition: LogBicubicInterpolator.h:101
vector< Q2Cache > caches
List of N cached-value sets.
Definition: LogBicubicInterpolator.h:98
A single set of cached x-variables.
Definition: LogBicubicInterpolator.h:25
double x
Defining params from call (initialised to unphysical values, so first use will set the cache)
Definition: LogBicubicInterpolator.h:27
double logx
Cached params.
Definition: LogBicubicInterpolator.h:31
A multi-level x-variable cache for a single subgrid hash.
Definition: LogBicubicInterpolator.h:37
XCache & operator[](size_t index)
Access the index'th element of the cache.
Definition: LogBicubicInterpolator.h:61
static size_t SIZE
Number of cache levels.
Definition: LogBicubicInterpolator.h:40
static void setup(size_t size, int update_step=+1, bool update_on_hit=true)
(Re)define cache size and search strategy
vector< XCache > caches
List of N cached-value sets.
Definition: LogBicubicInterpolator.h:55
size_t ilast
Latest-call index.
Definition: LogBicubicInterpolator.h:52
static int UPDATE_STEP
Cache access strategy.
Definition: LogBicubicInterpolator.h:42
size_t size()
Get the length of the cache vector.
Definition: LogBicubicInterpolator.h:58
static bool UPDATE_ON_HIT
Cache access strategy.
Definition: LogBicubicInterpolator.h:44
static void init()
Initialize a cache on this thread (call with explicit locks to ensure safe initialisation for each th...