47 namespace LibUtilities
55 const Array<OneD, const NekDouble>& from,
57 Array<OneD, NekDouble> &to)
63 const Array<OneD, const NekDouble>& from,
65 Array<OneD, NekDouble> &to)
67 if(fpoints0 == tpoints0)
97 if(fpoints0 == tpoints0)
111 from, 1, 0.0, to, 1);
118 const Array<OneD, const NekDouble>& from,
121 Array<OneD, NekDouble> &to)
129 const Array<OneD, const NekDouble>& from,
132 Array<OneD, NekDouble> &to)
134 Interp2D(fpoints0,fpoints1,from.data(),tpoints0,tpoints1,to.data());
152 if(fpoints1 == tpoints1)
159 Blas::Dgemm(
'N',
'T', fnp0, tnp1, fnp1, 1.0, from, fnp0,
160 I1->GetPtr().get(), tnp1, 0.0, wsp.get(), fnp0);
163 if(fpoints0 == tpoints0)
170 Blas::Dgemm(
'N',
'N', tnp0, tnp1, fnp0, 1.0, I0->GetPtr().get(),
171 tnp0, wsp.get(), fnp0, 0.0, to, tnp0);
181 const Array<OneD, const NekDouble>& from,
185 Array<OneD, NekDouble> &to)
197 const Array<OneD, const NekDouble>& from,
201 Array<OneD, NekDouble> &to)
203 Interp3D(fpoints0,fpoints1,fpoints2,from.data(),
204 tpoints0,tpoints1,tpoints2,to.data());
226 Array<OneD, NekDouble> wsp1(tnp0*tnp1*fnp2);
227 Array<OneD, NekDouble> wsp2(tnp0*fnp1*fnp2);
233 Blas::Dgemm(
'N',
'N', tnp0, fnp1*fnp2, fnp0, 1.0, I0->GetPtr().get(),
234 tnp0, from, fnp0, 0.0, wsp2.get(), tnp0);
236 for(i = 0; i < fnp2; i++)
238 Blas::Dgemm(
'N',
'T', tnp0, tnp1, fnp1, 1.0, wsp2.get()+i*tnp0*fnp1,
239 tnp0, I1->GetPtr().get(), tnp1, 0.0, wsp1.get()+i*tnp0*tnp1, tnp0);
242 Blas::Dgemm(
'N',
'T', tnp0*tnp1, tnp2, fnp2, 1.0, wsp1.get(),
243 tnp0*tnp1, I2->GetPtr().get(), tnp2, 0.0, to, tnp0*tnp1);