diff --git a/src/libRender/RadiumNBR/SphereSampler.hpp b/src/libRender/RadiumNBR/SphereSampler.hpp
index aa07fa63956cf630aacf2794eff84fc4246c1b76..253caff5811f500dbe40b87c20f56c21336ec0e8 100644
--- a/src/libRender/RadiumNBR/SphereSampler.hpp
+++ b/src/libRender/RadiumNBR/SphereSampler.hpp
@@ -9,12 +9,24 @@
 #include <random>
 
 namespace RadiumNBR {
+
+Scalar constexpr sqrtNewtonRaphsonhelper(Scalar x, Scalar curr, Scalar prev)
+{
+    return curr == prev
+    ? curr
+    : sqrtNewtonRaphsonhelper(x, 0.5_ra * (curr + x / curr), curr);
+}
+Scalar constexpr ct_sqrt(Scalar x){
+    return sqrtNewtonRaphsonhelper( x, x, 0_ra );
+}
+
 /// Implements the 2D fibonacci sequence
 /// (i, N) => [i / phi, i / N]
 /// where phi = (1 + sqrt(5)) / 2
 class NodeBasedRenderer_LIBRARY_API FibonacciSequence
 {
-    static constexpr Scalar phi = ( 1_ra + std::sqrt( 5_ra ) ) / 2_ra;
+
+    static constexpr Scalar phi = ( 1_ra + ct_sqrt( 5_ra ) ) / 2_ra;
     int n;
 
   public: