45 namespace LibUtilities
48 const Array<OneD, const NekDouble>& from,
50 Array<OneD, NekDouble> &to)
53 "Number of modes must be the same for "
54 "interpolating coefficients");
75 const Array<OneD, const NekDouble>& from,
78 Array<OneD, NekDouble> &to)
81 tbasis0, tbasis1, to. data());
96 Array<OneD, NekDouble> wsp(tnm1 * fnm0);
107 Blas::Dgemm(
'N',
'T', fnm0, tnm1, fnm1, 1.0, from, fnm0,
108 ft1->GetPtr().get(), tnm1, 0.0, wsp.get(), fnm0);
120 Blas::Dgemm(
'N',
'N', tnm0, tnm1, fnm0, 1.0, ft0->GetPtr().get(),
121 tnm0, wsp.get(), fnm0, 0.0, to, tnm0);
128 const Array<OneD, const NekDouble>& from,
132 Array<OneD, NekDouble> &to)
135 tbasis0, tbasis1, tbasis2, to. data());
154 Array<OneD, NekDouble> wsp1(tnm0 * tnm1 * fnm2);
155 Array<OneD, NekDouble> wsp2(tnm0 * fnm1 * fnm2);
161 Blas::Dgemm(
'N',
'N', tnm0, fnm1*fnm2, fnm0, 1.0,
162 ft0->GetPtr().get(), tnm0, from, fnm0, 0.0,
165 for (
int i = 0; i < fnm2; i++)
167 Blas::Dgemm(
'N',
'T', tnm0, tnm1, fnm1, 1.0,
168 wsp2.get()+i*tnm0*fnm1, tnm0, ft1->GetPtr().get(),
169 tnm1, 0.0, wsp1.get()+i*tnm0*tnm1, tnm0);
172 Blas::Dgemm(
'N',
'T', tnm0*tnm1, tnm2, fnm2, 1.0, wsp1.get(),
173 tnm0*tnm1, ft2->GetPtr().get(), tnm2,