55 const VertexOrder& vertexOrder) :
58 for(std::size_t i = 0; i < s; ++i) {
59 const std::size_t i0 = refelem.subEntity(i,dim-1,0,dim);
60 const std::size_t i1 = refelem.subEntity(i,dim-1,1,dim);
62 edgev[i] = geo.corner(i1);
63 edgev[i] -= geo.corner(i0);
64 edgev[i] /= edgev[i].two_norm();
66 const typename VertexOrder::iterator& edgeVertexOrder =
67 vertexOrder.begin(dim-1, i);
68 if(edgeVertexOrder[0] > edgeVertexOrder[1])
76 typename Traits::Range y;
78 auto&& f = Impl::makeFunctionWithCallOperator<std::decay_t<
decltype(refelem.position(0,dim-1))>>(ff);
82 for(std::size_t i = 0; i < s; ++i) {
83 y = f(refelem.position(i,dim-1));
85 out[i] = y * edgev[i];