$NetBSD: patch-kscreensaver_kdesavers_vec3.cpp,v 1.1 2015/03/18 10:27:54 joerg Exp $ --- kscreensaver/kdesavers/vec3.cpp.orig 2015-03-17 22:51:32.000000000 +0000 +++ kscreensaver/kdesavers/vec3.cpp @@ -59,7 +59,9 @@ vec3<T>& vec3<T>::rotate(const vec3<T>& // part of vector which is parallel to r vec3<T> par(r*(*this)/(r*r) * r); // part of vector which is perpendicular to r - vec3<T> perp(*this - par); + vec3<T> perp(*this); + std::valarray<T> &perp_ = perp; + perp -= std::valarray<T>(par); // rotation direction, size of perp vec3<T> rotdir(norm(perp) * normalized(crossprod(r,perp))); *this = par + cos(phi)*perp + sin(phi)*rotdir;