PDFxTMDLib
2.0.0
Loading...
Searching...
No Matches
include
PDFxTMDLib
Interface
IExtrapolator.h
Go to the documentation of this file.
1
#pragma once
2
#include "
PDFxTMDLib/Interface/IInterpolator.h
"
3
#include "
PDFxTMDLib/Interface/IReader.h
"
4
#include <array>
5
6
namespace
PDFxTMD
7
{
8
template
<
typename
Derived,
typename
... ExtrapolateArgs>
9
class
IExtrapolator
:
public
CRTPBase<Derived>
10
{
11
public
:
13
template
<
typename
... Flavors>
14
double
extrapolate
(Flavors... partons, ExtrapolateArgs... args)
const
15
{
16
return
this->derived().extrapolate(partons..., args...);
17
}
18
};
19
20
template
<
typename
Derived,
typename
... ExtrapolateArgs>
21
class
IAdvancedExtrapolator
:
public
IExtrapolator
<Derived, ExtrapolateArgs...>
22
{
23
protected
:
25
template
<
typename
InterpolatorType>
void
setInterpolator
(
const
InterpolatorType *interpolator)
26
{
27
this->derived().setInterpolator(interpolator);
28
}
29
};
30
}
// namespace PDFxTMD
IInterpolator.h
IReader.h
PDFxTMD::IAdvancedExtrapolator
Definition
IExtrapolator.h:22
PDFxTMD::IAdvancedExtrapolator::setInterpolator
void setInterpolator(const InterpolatorType *interpolator)
Give the concrete extrapolator access to its interpolator.
Definition
IExtrapolator.h:25
PDFxTMD::IExtrapolator
Definition
IExtrapolator.h:10
PDFxTMD::IExtrapolator::extrapolate
double extrapolate(Flavors... partons, ExtrapolateArgs... args) const
Forward an out-of-range evaluation to the concrete extrapolator.
Definition
IExtrapolator.h:14
PDFxTMD
Definition
Factory.h:9
Generated by
1.9.8