QMCPACK
SolveFirstDerivInterp1D< std::complex< float > > Struct Template Reference
+ Collaboration diagram for SolveFirstDerivInterp1D< std::complex< float > >:

Public Types

using value_type = std::complex< float >
 
using real_type = float
 

Static Public Member Functions

template<class CT >
static void apply (const CT &data, CT &p, int N, float *bcLower, float *bcUpper)
 

Detailed Description

template<>
struct SolveFirstDerivInterp1D< std::complex< float > >

Definition at line 221 of file BsplineOneDimSolvers.h.

Member Typedef Documentation

◆ real_type

using real_type = float

Definition at line 224 of file BsplineOneDimSolvers.h.

◆ value_type

using value_type = std::complex<float>

Definition at line 223 of file BsplineOneDimSolvers.h.

Member Function Documentation

◆ apply()

static void apply ( const CT &  data,
CT &  p,
int  N,
float *  bcLower,
float *  bcUpper 
)
inlinestatic

Definition at line 227 of file BsplineOneDimSolvers.h.

References copy(), and qmcplusplus::Units::force::N.

228  {
229  std::vector<double> dataReal(N), dataImag(N), pReal(N), pImag(N);
230  for (int i = 0; i < N; i++)
231  {
232  dataReal[i] = data[i].real();
233  dataImag[i] = data[i].imag();
234  }
235 
236  double bcLower_d[4];
237  double bcUpper_d[4];
238  std::copy(bcLower, bcLower + 4, bcLower_d);
239  std::copy(bcUpper, bcUpper + 4, bcUpper_d);
240  SolveFirstDerivInterp1D<double>::apply(dataReal, pReal, N, bcLower_d, bcUpper_d);
241  SolveFirstDerivInterp1D<double>::apply(dataImag, pImag, N, bcLower_d, bcUpper_d);
242 
243  for (int i = 0; i < N; i++)
244  p[i] = value_type(static_cast<float>(pReal[i]), static_cast<float>(pImag[i]));
245  }
void copy(const Array< T1, 3 > &src, Array< T2, 3 > &dest)
Definition: Blitz.h:639

The documentation for this struct was generated from the following file: