From: Wolfgang Bangerth Date: Wed, 21 Mar 2001 16:43:05 +0000 (+0000) Subject: Make code slightly faster. X-Git-Tag: v8.0.0~19520 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4408c2b30e2f289c24d8ce3bc24f6878e258aa8f;p=dealii.git Make code slightly faster. git-svn-id: https://svn.dealii.org/trunk@4252 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/grid/tria_boundary.cc b/deal.II/deal.II/source/grid/tria_boundary.cc index c8e63c0a28..eb9d3f981e 100644 --- a/deal.II/deal.II/source/grid/tria_boundary.cc +++ b/deal.II/deal.II/source/grid/tria_boundary.cc @@ -112,10 +112,15 @@ StraightBoundary::get_intermediate_points_on_line ( { const unsigned int n=points.size(); Assert(n>0, ExcInternalError()); + const double dx=1./(n+1); double x=dx; + + const Point vertices[2] = { line->vertex(0), + line->vertex(1) }; + for (unsigned int i=0; ivertex(0) + x*line->vertex(1); + points[i] = (1-x)*vertices[0] + x*vertices[1]; }; #endif @@ -145,14 +150,23 @@ StraightBoundary::get_intermediate_points_on_quad ( m=static_cast(sqrt(n)); // is n a square number Assert(m*m==n, ExcInternalError()); + const double ds=1./(m+1); double y=ds; + + const Point vertices[4] = { line->vertex(0), + line->vertex(1), + line->vertex(2), + line->vertex(3) }; + for (unsigned int i=0; ivertex(0) + x*quad->vertex(1))*(1-y)+ - ((1-x)*quad->vertex(3) + x*quad->vertex(2))*y; + points[i*m+j]=((1-x) * vertices[0] + + x * vertices[1]) * (1-y) + + ((1-x) * vertices[3] + + x * vertices[2]) * y; } }