Skip to content
Snippets Groups Projects
Commit 870db394 authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

Use references

parent dc6fd23f
No related branches found
No related tags found
No related merge requests found
......@@ -78,7 +78,7 @@ template <int dim> class SampleFunctional {
// points in direction -x. The projection will then be zero.
SmallVector d;
smoothGradient(x, d);
ret = negative_projection(d, x);
negative_projection(d, x, ret);
dverb << "## Directional derivative (as per scalar product w/ "
"semigradient): " << -(ret * ret)
<< " (coordinates of the restriction)" << std::endl;
......@@ -111,12 +111,13 @@ template <int dim> class SampleFunctional {
y += z;
}
// No normalising is done!
SmallVector negative_projection(SmallVector const z,
SmallVector const x) const {
SmallVector y = z;
y.axpy(-(z * x) / x.two_norm2(), x);
return y;
// y = (id - P)(d) where P is the projection onto the line t*x
void negative_projection(SmallVector const &d, SmallVector const &x,
SmallVector &y) const {
double const dx = d * x;
double const xx = x.two_norm2();
y = d;
y.axpy(-dx / xx, x);
}
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment