12 const amrex::Real alpha_interp,
const int alpha_size)
15 amrex::Real beta_interp;
19 for (
int i = 0; i < alpha_size; ++i) {
20 if (alpha[i] == alpha_interp) {
21 beta_interp = beta[i];
28 const amrex::Real* alpha_begin = &alpha[0];
29 const amrex::Real* alpha_end = &alpha[alpha_size];
30 amrex::Real max = *std::max_element(alpha_begin, alpha_end);
31 amrex::Real min = *std::min_element(alpha_begin, alpha_end);
32 if (alpha_interp >= min && alpha_interp <= max)
34 for (
int i = 0; i < alpha_size; ++i)
36 if (alpha_interp >= alpha[i] && alpha_interp <= alpha[i + 1])
39 amrex::Real y0 = beta[i];
40 amrex::Real y1 = beta[i + 1];
41 amrex::Real
x = alpha_interp;
42 amrex::Real x0 = alpha[i];
43 amrex::Real x1 = alpha[i + 1];
44 beta_interp = y0 + (y1 - y0)*(
x - x0) / (x1 - x0);
52 if (alpha_interp >= *alpha_end)
54 i = alpha_end - alpha_begin - 1;
60 amrex::Real y0 = beta[i];
61 amrex::Real y1 = beta[i + 1];
62 amrex::Real
x = alpha_interp;
63 amrex::Real x0 = alpha[i];
64 amrex::Real x1 = alpha[i + 1];
65 beta_interp = y0 + ((
x - x0) / (x1 - x0)) * (y1 - y0);
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real interpolate_1d(const amrex::Real *alpha, const amrex::Real *beta, const amrex::Real alpha_interp, const int alpha_size)
interpolate 1D arrays