2#ifndef STORMM_MATH_ONE_DIMENSIONAL_SPLINES_H
3#define STORMM_MATH_ONE_DIMENSIONAL_SPLINES_H
40template <
typename Tcalc4,
typename Tcalc>
41void evaluateCubicSpline(
const Tcalc4 abcd_coefficients, Tcalc r, Tcalc *u_contrib,
42 Tcalc *fmag =
nullptr);
44template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
45Tcalc2 evaluateCubicSpline(
const Tcalc4 abcd_coefficients, Tcalc r);
47template <
typename Tcalc4,
typename Tcalc>
48void evaluateCubicSpline(
const Tcalc4* abcd_coefficients,
int spline_count, Tcalc interval,
49 Tcalc r, Tcalc *u_contrib, Tcalc *fmag =
nullptr);
51template <
typename Tcalc4,
typename Tcalc>
52void evaluateCubicSpline(
const std::vector<Tcalc4> &abcd_coefficients, Tcalc interval, Tcalc r,
53 Tcalc *u_contrib, Tcalc *fmag =
nullptr);
55template <
typename Tcalc4,
typename Tcalc>
56void evaluateCubicSpline(
const Hybrid<Tcalc4> &abcd_coefficients, Tcalc interval, Tcalc r,
57 Tcalc *u_contrib, Tcalc *fmag =
nullptr);
59template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
60Tcalc2 evaluateCubicSpline(
const Tcalc4* abcd_coefficients,
int spline_count, Tcalc interval,
63template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
64Tcalc2 evaluateCubicSpline(
const std::vector<Tcalc4> &abcd_coefficients, Tcalc interval,
67template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
68Tcalc2 evaluateCubicSpline(
const Hybrid<Tcalc4> &abcd_coefficients, Tcalc interval,
83template <
typename Tcalc4,
typename Tcalc>
84void evaluateQuarticSpline(
const Tcalc4 abcd_coefficients,
const Tcalc e_coefficient,
85 Tcalc r, Tcalc *u_contrib, Tcalc *fmag =
nullptr);
87template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
88Tcalc2 evaluateQuarticSpline(
const Tcalc4 abcd_coefficients,
const Tcalc e_coefficient, Tcalc r);
90template <
typename Tcalc4,
typename Tcalc>
91void evaluateQuarticSpline(
const Tcalc4* abcd_coefficients,
const Tcalc* e_coefficient,
92 int spline_count, Tcalc interval, Tcalc r, Tcalc *u_contrib,
93 Tcalc *fmag =
nullptr);
95template <
typename Tcalc4,
typename Tcalc>
96void evaluateQuarticSpline(
const std::vector<Tcalc4> &abcd_coefficients,
97 const std::vector<Tcalc> &e_coefficient, Tcalc interval, Tcalc r,
98 Tcalc *u_contrib, Tcalc *fmag =
nullptr);
100template <
typename Tcalc4,
typename Tcalc>
101void evaluateQuarticSpline(
const Hybrid<Tcalc4> &abcd_coefficients,
103 Tcalc *u_contrib, Tcalc *fmag =
nullptr);
105template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
106Tcalc2 evaluateQuarticSpline(
const Tcalc4* abcd_coefficients,
const Tcalc* e_coefficient,
107 int spline_count, Tcalc interval, Tcalc r);
109template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
110Tcalc2 evaluateQuarticSpline(
const std::vector<Tcalc4> &abcd_coefficients,
111 const std::vector<Tcalc> &e_coefficient, Tcalc interval, Tcalc r);
113template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
114Tcalc2 evaluateQuarticSpline(
const Hybrid<Tcalc4> &abcd_coefficients,
115 const Hybrid<Tcalc> &e_coefficient, Tcalc interval, Tcalc r);
130template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
131void evaluateQuinticSpline(
const Tcalc4 abcd_coefficients,
const Tcalc2 ef_coefficients,
132 Tcalc r, Tcalc *u_contrib, Tcalc *fmag =
nullptr);
134template <
typename Tcalc4,
typename Tcalc3,
typename Tcalc2,
typename Tcalc>
135Tcalc3 evaluateQuinticSpline(
const Tcalc4 abcd_coefficients,
const Tcalc2 ef_coefficients,
138template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
139void evaluateQuinticSpline(
const Tcalc4* abcd_coefficients,
const Tcalc2* ef_coefficients,
140 int spline_count, Tcalc interval, Tcalc r, Tcalc *u_contrib,
141 Tcalc *fmag =
nullptr);
143template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
144void evaluateQuinticSpline(
const std::vector<Tcalc4> &abcd_coefficients,
145 const std::vector<Tcalc2> &ef_coefficients, Tcalc interval, Tcalc r,
146 Tcalc *u_contrib, Tcalc *fmag =
nullptr);
148template <
typename Tcalc4,
typename Tcalc2,
typename Tcalc>
149void evaluateQuinticSpline(
const Hybrid<Tcalc4> &abcd_coefficients,
151 Tcalc *u_contrib, Tcalc *fmag =
nullptr);
153template <
typename Tcalc4,
typename Tcalc3,
typename Tcalc2,
typename Tcalc>
154Tcalc3 evaluateQuinticSpline(
const Tcalc4* abcd_coefficients,
const Tcalc* ef_coefficients,
155 int spline_count, Tcalc interval, Tcalc r);
157template <
typename Tcalc4,
typename Tcalc3,
typename Tcalc2,
typename Tcalc>
158Tcalc3 evaluateQuinticSpline(
const std::vector<Tcalc4> &abcd_coefficients,
159 const std::vector<Tcalc> &ef_coefficients, Tcalc interval, Tcalc r);
161template <
typename Tcalc4,
typename Tcalc3,
typename Tcalc2,
typename Tcalc>
162Tcalc3 evaluateQuinticSpline(
const Hybrid<Tcalc4> &abcd_coefficients,
163 const Hybrid<Tcalc> &ef_coefficients, Tcalc interval, Tcalc r);
169#include "one_dimensional_splines.tpp"
An evolution of GpuBuffer in pmemd.cuda, the Composite array has elements that are accessible from ei...
Definition hybrid.h:202