$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& vec3::rotate(const vec3& // part of vector which is parallel to r vec3 par(r*(*this)/(r*r) * r); // part of vector which is perpendicular to r - vec3 perp(*this - par); + vec3 perp(*this); + std::valarray &perp_ = perp; + perp -= std::valarray(par); // rotation direction, size of perp vec3 rotdir(norm(perp) * normalized(crossprod(r,perp))); *this = par + cos(phi)*perp + sin(phi)*rotdir;