void evaluate( const ConstBasisDataSlice<ValueType>& basisData, const ConstGeometricalDataSlice<CoordinateType>& geomData, _1dSliceOf3dArray<ValueType>& result) const { assert(basisData.componentCount() == argumentDimension()); assert(result.extent(0) == resultDimension()); for (size_t i = 0; i < dim; ++i) result(i) = basisData.values(i); }
void evaluate(const ConstBasisDataSlice<ValueType> &basisData, const ConstGeometricalDataSlice<CoordinateType> &geomData, _1dSliceOf3dArray<ValueType> &result) const { assert(basisData.componentCount() == argumentDimension()); assert(result.extent(0) == resultDimension()); for (int rdim = 0; rdim < resultDimension(); ++rdim) result(rdim) = (geomData.jacobianTransposed(0, rdim) * basisData.values(0) + geomData.jacobianTransposed(1, rdim) * basisData.values(1)) / geomData.integrationElement(); }