UniformSampleCone 2

Percentage Accurate: 99.0% → 98.8%
Time: 9.4s
Alternatives: 16
Speedup: N/A×

Specification

?
\[\left(\left(\left(\left(\left(-10000 \leq xi \land xi \leq 10000\right) \land \left(-10000 \leq yi \land yi \leq 10000\right)\right) \land \left(-10000 \leq zi \land zi \leq 10000\right)\right) \land \left(2.328306437 \cdot 10^{-10} \leq ux \land ux \leq 1\right)\right) \land \left(2.328306437 \cdot 10^{-10} \leq uy \land uy \leq 1\right)\right) \land \left(0 \leq maxCos \land maxCos \leq 1\right)\]
\[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\\ t_1 := \sqrt{1 - t\_0 \cdot t\_0}\\ t_2 := \left(uy \cdot 2\right) \cdot \pi\\ \left(\left(\cos t\_2 \cdot t\_1\right) \cdot xi + \left(\sin t\_2 \cdot t\_1\right) \cdot yi\right) + t\_0 \cdot zi \end{array} \end{array} \]
(FPCore (xi yi zi ux uy maxCos)
 :precision binary32
 (let* ((t_0 (* (* (- 1.0 ux) maxCos) ux))
        (t_1 (sqrt (- 1.0 (* t_0 t_0))))
        (t_2 (* (* uy 2.0) PI)))
   (+ (+ (* (* (cos t_2) t_1) xi) (* (* (sin t_2) t_1) yi)) (* t_0 zi))))
float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
	float t_0 = ((1.0f - ux) * maxCos) * ux;
	float t_1 = sqrtf((1.0f - (t_0 * t_0)));
	float t_2 = (uy * 2.0f) * ((float) M_PI);
	return (((cosf(t_2) * t_1) * xi) + ((sinf(t_2) * t_1) * yi)) + (t_0 * zi);
}
function code(xi, yi, zi, ux, uy, maxCos)
	t_0 = Float32(Float32(Float32(Float32(1.0) - ux) * maxCos) * ux)
	t_1 = sqrt(Float32(Float32(1.0) - Float32(t_0 * t_0)))
	t_2 = Float32(Float32(uy * Float32(2.0)) * Float32(pi))
	return Float32(Float32(Float32(Float32(cos(t_2) * t_1) * xi) + Float32(Float32(sin(t_2) * t_1) * yi)) + Float32(t_0 * zi))
end
function tmp = code(xi, yi, zi, ux, uy, maxCos)
	t_0 = ((single(1.0) - ux) * maxCos) * ux;
	t_1 = sqrt((single(1.0) - (t_0 * t_0)));
	t_2 = (uy * single(2.0)) * single(pi);
	tmp = (((cos(t_2) * t_1) * xi) + ((sin(t_2) * t_1) * yi)) + (t_0 * zi);
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\\
t_1 := \sqrt{1 - t\_0 \cdot t\_0}\\
t_2 := \left(uy \cdot 2\right) \cdot \pi\\
\left(\left(\cos t\_2 \cdot t\_1\right) \cdot xi + \left(\sin t\_2 \cdot t\_1\right) \cdot yi\right) + t\_0 \cdot zi
\end{array}
\end{array}

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 16 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 99.0% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\\ t_1 := \sqrt{1 - t\_0 \cdot t\_0}\\ t_2 := \left(uy \cdot 2\right) \cdot \pi\\ \left(\left(\cos t\_2 \cdot t\_1\right) \cdot xi + \left(\sin t\_2 \cdot t\_1\right) \cdot yi\right) + t\_0 \cdot zi \end{array} \end{array} \]
(FPCore (xi yi zi ux uy maxCos)
 :precision binary32
 (let* ((t_0 (* (* (- 1.0 ux) maxCos) ux))
        (t_1 (sqrt (- 1.0 (* t_0 t_0))))
        (t_2 (* (* uy 2.0) PI)))
   (+ (+ (* (* (cos t_2) t_1) xi) (* (* (sin t_2) t_1) yi)) (* t_0 zi))))
float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
	float t_0 = ((1.0f - ux) * maxCos) * ux;
	float t_1 = sqrtf((1.0f - (t_0 * t_0)));
	float t_2 = (uy * 2.0f) * ((float) M_PI);
	return (((cosf(t_2) * t_1) * xi) + ((sinf(t_2) * t_1) * yi)) + (t_0 * zi);
}
function code(xi, yi, zi, ux, uy, maxCos)
	t_0 = Float32(Float32(Float32(Float32(1.0) - ux) * maxCos) * ux)
	t_1 = sqrt(Float32(Float32(1.0) - Float32(t_0 * t_0)))
	t_2 = Float32(Float32(uy * Float32(2.0)) * Float32(pi))
	return Float32(Float32(Float32(Float32(cos(t_2) * t_1) * xi) + Float32(Float32(sin(t_2) * t_1) * yi)) + Float32(t_0 * zi))
end
function tmp = code(xi, yi, zi, ux, uy, maxCos)
	t_0 = ((single(1.0) - ux) * maxCos) * ux;
	t_1 = sqrt((single(1.0) - (t_0 * t_0)));
	t_2 = (uy * single(2.0)) * single(pi);
	tmp = (((cos(t_2) * t_1) * xi) + ((sin(t_2) * t_1) * yi)) + (t_0 * zi);
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\\
t_1 := \sqrt{1 - t\_0 \cdot t\_0}\\
t_2 := \left(uy \cdot 2\right) \cdot \pi\\
\left(\left(\cos t\_2 \cdot t\_1\right) \cdot xi + \left(\sin t\_2 \cdot t\_1\right) \cdot yi\right) + t\_0 \cdot zi
\end{array}
\end{array}

Alternative 1: 98.8% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(uy \cdot 2\right) \cdot \pi\\ \left(\left(\cos t\_0 \cdot 1\right) \cdot xi + \left(\sin t\_0 \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \end{array} \end{array} \]
(FPCore (xi yi zi ux uy maxCos)
 :precision binary32
 (let* ((t_0 (* (* uy 2.0) PI)))
   (+
    (+ (* (* (cos t_0) 1.0) xi) (* (* (sin t_0) 1.0) yi))
    (* (* (* (- 1.0 ux) maxCos) ux) zi))))
float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
	float t_0 = (uy * 2.0f) * ((float) M_PI);
	return (((cosf(t_0) * 1.0f) * xi) + ((sinf(t_0) * 1.0f) * yi)) + ((((1.0f - ux) * maxCos) * ux) * zi);
}
function code(xi, yi, zi, ux, uy, maxCos)
	t_0 = Float32(Float32(uy * Float32(2.0)) * Float32(pi))
	return Float32(Float32(Float32(Float32(cos(t_0) * Float32(1.0)) * xi) + Float32(Float32(sin(t_0) * Float32(1.0)) * yi)) + Float32(Float32(Float32(Float32(Float32(1.0) - ux) * maxCos) * ux) * zi))
end
function tmp = code(xi, yi, zi, ux, uy, maxCos)
	t_0 = (uy * single(2.0)) * single(pi);
	tmp = (((cos(t_0) * single(1.0)) * xi) + ((sin(t_0) * single(1.0)) * yi)) + ((((single(1.0) - ux) * maxCos) * ux) * zi);
end
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \left(uy \cdot 2\right) \cdot \pi\\
\left(\left(\cos t\_0 \cdot 1\right) \cdot xi + \left(\sin t\_0 \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi
\end{array}
\end{array}
Derivation
  1. Initial program 99.0%

    \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
  2. Taylor expanded in ux around 0

    \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
  3. Step-by-step derivation
    1. Applied rewrites98.8%

      \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
    2. Taylor expanded in ux around 0

      \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
    3. Step-by-step derivation
      1. Applied rewrites98.7%

        \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
      2. Add Preprocessing

      Alternative 2: 98.7% accurate, 1.6× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \pi \cdot \left(uy + uy\right)\\ \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\cos t\_0, xi, \sin t\_0 \cdot yi\right)\right) \end{array} \end{array} \]
      (FPCore (xi yi zi ux uy maxCos)
       :precision binary32
       (let* ((t_0 (* PI (+ uy uy))))
         (fma (* maxCos ux) (* (- 1.0 ux) zi) (fma (cos t_0) xi (* (sin t_0) yi)))))
      float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
      	float t_0 = ((float) M_PI) * (uy + uy);
      	return fmaf((maxCos * ux), ((1.0f - ux) * zi), fmaf(cosf(t_0), xi, (sinf(t_0) * yi)));
      }
      
      function code(xi, yi, zi, ux, uy, maxCos)
      	t_0 = Float32(Float32(pi) * Float32(uy + uy))
      	return fma(Float32(maxCos * ux), Float32(Float32(Float32(1.0) - ux) * zi), fma(cos(t_0), xi, Float32(sin(t_0) * yi)))
      end
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \pi \cdot \left(uy + uy\right)\\
      \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\cos t\_0, xi, \sin t\_0 \cdot yi\right)\right)
      \end{array}
      \end{array}
      
      Derivation
      1. Initial program 99.0%

        \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
      2. Taylor expanded in maxCos around 0

        \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right)} \]
      3. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \left(maxCos \cdot ux\right) \cdot \left(zi \cdot \left(1 - ux\right)\right) + \left(\color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        2. lower-fma.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi \cdot \left(1 - ux\right)}, xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        3. lower-*.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi} \cdot \left(1 - ux\right), xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        4. *-commutativeN/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot \color{blue}{zi}, xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        5. lower-*.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot \color{blue}{zi}, xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        6. lift--.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        7. *-commutativeN/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
      4. Applied rewrites98.8%

        \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)\right)} \]
      5. Add Preprocessing

      Alternative 3: 97.4% accurate, 1.6× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := 2 \cdot \left(uy \cdot \pi\right)\\ \mathbf{if}\;uy \leq 0.0044999998062849045:\\ \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;yi \cdot \left(\sin t\_0 + \frac{xi \cdot \cos t\_0}{yi}\right)\\ \end{array} \end{array} \]
      (FPCore (xi yi zi ux uy maxCos)
       :precision binary32
       (let* ((t_0 (* 2.0 (* uy PI))))
         (if (<= uy 0.0044999998062849045)
           (+
            xi
            (fma
             maxCos
             (* ux (* zi (- 1.0 ux)))
             (*
              uy
              (fma
               2.0
               (* yi PI)
               (*
                uy
                (fma
                 -2.0
                 (* xi (* PI PI))
                 (* -1.3333333333333333 (* uy (* yi (* (* PI PI) PI))))))))))
           (* yi (+ (sin t_0) (/ (* xi (cos t_0)) yi))))))
      float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
      	float t_0 = 2.0f * (uy * ((float) M_PI));
      	float tmp;
      	if (uy <= 0.0044999998062849045f) {
      		tmp = xi + fmaf(maxCos, (ux * (zi * (1.0f - ux))), (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * fmaf(-2.0f, (xi * (((float) M_PI) * ((float) M_PI))), (-1.3333333333333333f * (uy * (yi * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI))))))))));
      	} else {
      		tmp = yi * (sinf(t_0) + ((xi * cosf(t_0)) / yi));
      	}
      	return tmp;
      }
      
      function code(xi, yi, zi, ux, uy, maxCos)
      	t_0 = Float32(Float32(2.0) * Float32(uy * Float32(pi)))
      	tmp = Float32(0.0)
      	if (uy <= Float32(0.0044999998062849045))
      		tmp = Float32(xi + fma(maxCos, Float32(ux * Float32(zi * Float32(Float32(1.0) - ux))), Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * fma(Float32(-2.0), Float32(xi * Float32(Float32(pi) * Float32(pi))), Float32(Float32(-1.3333333333333333) * Float32(uy * Float32(yi * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi)))))))))));
      	else
      		tmp = Float32(yi * Float32(sin(t_0) + Float32(Float32(xi * cos(t_0)) / yi)));
      	end
      	return tmp
      end
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := 2 \cdot \left(uy \cdot \pi\right)\\
      \mathbf{if}\;uy \leq 0.0044999998062849045:\\
      \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;yi \cdot \left(\sin t\_0 + \frac{xi \cdot \cos t\_0}{yi}\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if uy < 0.00449999981

        1. Initial program 99.0%

          \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in uy around 0

          \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
        3. Applied rewrites89.4%

          \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
        4. Taylor expanded in maxCos around 0

          \[\leadsto xi + \color{blue}{\left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)\right)} \]
        5. Step-by-step derivation
          1. lower-+.f32N/A

            \[\leadsto xi + \left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)}\right) \]
        6. Applied rewrites89.2%

          \[\leadsto xi + \color{blue}{\mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)} \]

        if 0.00449999981 < uy

        1. Initial program 99.0%

          \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in ux around 0

          \[\leadsto \color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \]
        3. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + \color{blue}{yi} \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \]
          2. lower-fma.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), \color{blue}{xi}, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        4. Applied rewrites90.8%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)} \]
        5. Taylor expanded in yi around inf

          \[\leadsto yi \cdot \color{blue}{\left(\sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}\right)} \]
        6. Step-by-step derivation
          1. lower-*.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + \color{blue}{\frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}}\right) \]
          2. lower-+.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{\color{blue}{yi}}\right) \]
          3. lower-sin.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}\right) \]
          4. lower-*.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}\right) \]
          5. lower-*.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}\right) \]
          6. lift-PI.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \pi\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}\right) \]
          7. lower-/.f32N/A

            \[\leadsto yi \cdot \left(\sin \left(2 \cdot \left(uy \cdot \pi\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)}{yi}\right) \]
        7. Applied rewrites90.1%

          \[\leadsto yi \cdot \color{blue}{\left(\sin \left(2 \cdot \left(uy \cdot \pi\right)\right) + \frac{xi \cdot \cos \left(2 \cdot \left(uy \cdot \pi\right)\right)}{yi}\right)} \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 4: 97.2% accurate, 1.7× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \pi \cdot \left(uy + uy\right)\\ \mathbf{if}\;uy \leq 0.0044999998062849045:\\ \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos t\_0, xi, \sin t\_0 \cdot yi\right)\\ \end{array} \end{array} \]
      (FPCore (xi yi zi ux uy maxCos)
       :precision binary32
       (let* ((t_0 (* PI (+ uy uy))))
         (if (<= uy 0.0044999998062849045)
           (+
            xi
            (fma
             maxCos
             (* ux (* zi (- 1.0 ux)))
             (*
              uy
              (fma
               2.0
               (* yi PI)
               (*
                uy
                (fma
                 -2.0
                 (* xi (* PI PI))
                 (* -1.3333333333333333 (* uy (* yi (* (* PI PI) PI))))))))))
           (fma (cos t_0) xi (* (sin t_0) yi)))))
      float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
      	float t_0 = ((float) M_PI) * (uy + uy);
      	float tmp;
      	if (uy <= 0.0044999998062849045f) {
      		tmp = xi + fmaf(maxCos, (ux * (zi * (1.0f - ux))), (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * fmaf(-2.0f, (xi * (((float) M_PI) * ((float) M_PI))), (-1.3333333333333333f * (uy * (yi * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI))))))))));
      	} else {
      		tmp = fmaf(cosf(t_0), xi, (sinf(t_0) * yi));
      	}
      	return tmp;
      }
      
      function code(xi, yi, zi, ux, uy, maxCos)
      	t_0 = Float32(Float32(pi) * Float32(uy + uy))
      	tmp = Float32(0.0)
      	if (uy <= Float32(0.0044999998062849045))
      		tmp = Float32(xi + fma(maxCos, Float32(ux * Float32(zi * Float32(Float32(1.0) - ux))), Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * fma(Float32(-2.0), Float32(xi * Float32(Float32(pi) * Float32(pi))), Float32(Float32(-1.3333333333333333) * Float32(uy * Float32(yi * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi)))))))))));
      	else
      		tmp = fma(cos(t_0), xi, Float32(sin(t_0) * yi));
      	end
      	return tmp
      end
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \pi \cdot \left(uy + uy\right)\\
      \mathbf{if}\;uy \leq 0.0044999998062849045:\\
      \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(\cos t\_0, xi, \sin t\_0 \cdot yi\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if uy < 0.00449999981

        1. Initial program 99.0%

          \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in uy around 0

          \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
        3. Applied rewrites89.4%

          \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
        4. Taylor expanded in maxCos around 0

          \[\leadsto xi + \color{blue}{\left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)\right)} \]
        5. Step-by-step derivation
          1. lower-+.f32N/A

            \[\leadsto xi + \left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)}\right) \]
        6. Applied rewrites89.2%

          \[\leadsto xi + \color{blue}{\mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)} \]

        if 0.00449999981 < uy

        1. Initial program 99.0%

          \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in ux around 0

          \[\leadsto \color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \]
        3. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + \color{blue}{yi} \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \]
          2. lower-fma.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), \color{blue}{xi}, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        4. Applied rewrites90.8%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)} \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 5: 96.0% accurate, 1.7× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \pi \cdot \left(uy + uy\right)\\ \mathsf{fma}\left(maxCos \cdot ux, zi, \mathsf{fma}\left(\cos t\_0, xi, \sin t\_0 \cdot yi\right)\right) \end{array} \end{array} \]
      (FPCore (xi yi zi ux uy maxCos)
       :precision binary32
       (let* ((t_0 (* PI (+ uy uy))))
         (fma (* maxCos ux) zi (fma (cos t_0) xi (* (sin t_0) yi)))))
      float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
      	float t_0 = ((float) M_PI) * (uy + uy);
      	return fmaf((maxCos * ux), zi, fmaf(cosf(t_0), xi, (sinf(t_0) * yi)));
      }
      
      function code(xi, yi, zi, ux, uy, maxCos)
      	t_0 = Float32(Float32(pi) * Float32(uy + uy))
      	return fma(Float32(maxCos * ux), zi, fma(cos(t_0), xi, Float32(sin(t_0) * yi)))
      end
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \pi \cdot \left(uy + uy\right)\\
      \mathsf{fma}\left(maxCos \cdot ux, zi, \mathsf{fma}\left(\cos t\_0, xi, \sin t\_0 \cdot yi\right)\right)
      \end{array}
      \end{array}
      
      Derivation
      1. Initial program 99.0%

        \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
      2. Taylor expanded in ux around 0

        \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot zi\right) + \left(xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right)} \]
      3. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \left(maxCos \cdot ux\right) \cdot zi + \left(\color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        2. lower-fma.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi}, xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        3. lower-*.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, zi, xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        4. *-commutativeN/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, zi, \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        5. lower-fma.f32N/A

          \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, zi, \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), xi, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right)\right) \]
      4. Applied rewrites96.0%

        \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, zi, \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)\right)} \]
      5. Add Preprocessing

      Alternative 6: 92.6% accurate, 2.0× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\\ \mathbf{if}\;uy \leq 0.04399999976158142:\\ \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot t\_0\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot t\_0, 2 \cdot \left(yi \cdot \pi\right)\right)\right)\\ \end{array} \end{array} \]
      (FPCore (xi yi zi ux uy maxCos)
       :precision binary32
       (let* ((t_0 (* yi (* (* PI PI) PI))))
         (if (<= uy 0.04399999976158142)
           (+
            xi
            (fma
             maxCos
             (* ux (* zi (- 1.0 ux)))
             (*
              uy
              (fma
               2.0
               (* yi PI)
               (*
                uy
                (fma -2.0 (* xi (* PI PI)) (* -1.3333333333333333 (* uy t_0))))))))
           (fma
            (cos (* PI (+ uy uy)))
            xi
            (* uy (fma -1.3333333333333333 (* (* uy uy) t_0) (* 2.0 (* yi PI))))))))
      float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
      	float t_0 = yi * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI));
      	float tmp;
      	if (uy <= 0.04399999976158142f) {
      		tmp = xi + fmaf(maxCos, (ux * (zi * (1.0f - ux))), (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * fmaf(-2.0f, (xi * (((float) M_PI) * ((float) M_PI))), (-1.3333333333333333f * (uy * t_0)))))));
      	} else {
      		tmp = fmaf(cosf((((float) M_PI) * (uy + uy))), xi, (uy * fmaf(-1.3333333333333333f, ((uy * uy) * t_0), (2.0f * (yi * ((float) M_PI))))));
      	}
      	return tmp;
      }
      
      function code(xi, yi, zi, ux, uy, maxCos)
      	t_0 = Float32(yi * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi)))
      	tmp = Float32(0.0)
      	if (uy <= Float32(0.04399999976158142))
      		tmp = Float32(xi + fma(maxCos, Float32(ux * Float32(zi * Float32(Float32(1.0) - ux))), Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * fma(Float32(-2.0), Float32(xi * Float32(Float32(pi) * Float32(pi))), Float32(Float32(-1.3333333333333333) * Float32(uy * t_0))))))));
      	else
      		tmp = fma(cos(Float32(Float32(pi) * Float32(uy + uy))), xi, Float32(uy * fma(Float32(-1.3333333333333333), Float32(Float32(uy * uy) * t_0), Float32(Float32(2.0) * Float32(yi * Float32(pi))))));
      	end
      	return tmp
      end
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\\
      \mathbf{if}\;uy \leq 0.04399999976158142:\\
      \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot t\_0\right)\right)\right)\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot t\_0, 2 \cdot \left(yi \cdot \pi\right)\right)\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if uy < 0.0439999998

        1. Initial program 99.0%

          \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in uy around 0

          \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
        3. Applied rewrites89.4%

          \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
        4. Taylor expanded in maxCos around 0

          \[\leadsto xi + \color{blue}{\left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)\right)} \]
        5. Step-by-step derivation
          1. lower-+.f32N/A

            \[\leadsto xi + \left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)}\right) \]
        6. Applied rewrites89.2%

          \[\leadsto xi + \color{blue}{\mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)} \]

        if 0.0439999998 < uy

        1. Initial program 99.0%

          \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in ux around 0

          \[\leadsto \color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \]
        3. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + \color{blue}{yi} \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \]
          2. lower-fma.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), \color{blue}{xi}, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        4. Applied rewrites90.8%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)} \]
        5. Taylor expanded in uy around 0

          \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) + 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
        6. Step-by-step derivation
          1. lower-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) + 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          2. lower-fma.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, {uy}^{2} \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          3. lower-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, {uy}^{2} \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          4. unpow2N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          5. lower-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          6. lower-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          7. pow3N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right)\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          8. lift-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right)\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          9. lift-PI.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right)\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          10. lift-PI.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \mathsf{PI}\left(\right)\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          11. lift-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \mathsf{PI}\left(\right)\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          12. lift-PI.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          13. lower-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          14. lower-*.f32N/A

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(\frac{-4}{3}, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right), 2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
          15. lift-PI.f3286.2

            \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right), 2 \cdot \left(yi \cdot \pi\right)\right)\right) \]
        7. Applied rewrites86.2%

          \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, uy \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right), 2 \cdot \left(yi \cdot \pi\right)\right)\right) \]
      3. Recombined 2 regimes into one program.
      4. Add Preprocessing

      Alternative 7: 92.6% accurate, 1.9× speedup?

      \[\begin{array}{l} \\ \mathsf{fma}\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1, xi, \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \end{array} \]
      (FPCore (xi yi zi ux uy maxCos)
       :precision binary32
       (+
        (fma
         (* (+ 1.0 (* -2.0 (* (* uy uy) (* PI PI)))) 1.0)
         xi
         (* (* (sin (* (* uy 2.0) PI)) 1.0) yi))
        (* (* (* (- 1.0 ux) maxCos) ux) zi)))
      float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
      	return fmaf(((1.0f + (-2.0f * ((uy * uy) * (((float) M_PI) * ((float) M_PI))))) * 1.0f), xi, ((sinf(((uy * 2.0f) * ((float) M_PI))) * 1.0f) * yi)) + ((((1.0f - ux) * maxCos) * ux) * zi);
      }
      
      function code(xi, yi, zi, ux, uy, maxCos)
      	return Float32(fma(Float32(Float32(Float32(1.0) + Float32(Float32(-2.0) * Float32(Float32(uy * uy) * Float32(Float32(pi) * Float32(pi))))) * Float32(1.0)), xi, Float32(Float32(sin(Float32(Float32(uy * Float32(2.0)) * Float32(pi))) * Float32(1.0)) * yi)) + Float32(Float32(Float32(Float32(Float32(1.0) - ux) * maxCos) * ux) * zi))
      end
      
      \begin{array}{l}
      
      \\
      \mathsf{fma}\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1, xi, \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi
      \end{array}
      
      Derivation
      1. Initial program 99.0%

        \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
      2. Taylor expanded in ux around 0

        \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
      3. Step-by-step derivation
        1. Applied rewrites98.8%

          \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        2. Taylor expanded in ux around 0

          \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
        3. Step-by-step derivation
          1. Applied rewrites98.7%

            \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
          2. Taylor expanded in uy around 0

            \[\leadsto \left(\left(\color{blue}{\left(1 + -2 \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{2}\right)\right)} \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
          3. Step-by-step derivation
            1. lower-+.f32N/A

              \[\leadsto \left(\left(\left(1 + \color{blue}{-2 \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{2}\right)}\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            2. lower-*.f32N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \color{blue}{\left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{2}\right)}\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            3. lower-*.f32N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left({uy}^{2} \cdot \color{blue}{{\mathsf{PI}\left(\right)}^{2}}\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            4. unpow2N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot {\color{blue}{\mathsf{PI}\left(\right)}}^{2}\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            5. lower-*.f32N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot {\color{blue}{\mathsf{PI}\left(\right)}}^{2}\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            6. pow2N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            7. lift-*.f32N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            8. lift-PI.f32N/A

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            9. lift-PI.f3292.6

              \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
          4. Applied rewrites92.6%

            \[\leadsto \left(\left(\color{blue}{\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right)} \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
          5. Step-by-step derivation
            1. Applied rewrites92.6%

              \[\leadsto \color{blue}{\mathsf{fma}\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1, xi, \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi} \]
            2. Add Preprocessing

            Alternative 8: 91.7% accurate, 2.6× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;uy \leq 0.04399999976158142:\\ \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right)\\ \end{array} \end{array} \]
            (FPCore (xi yi zi ux uy maxCos)
             :precision binary32
             (if (<= uy 0.04399999976158142)
               (+
                xi
                (fma
                 maxCos
                 (* ux (* zi (- 1.0 ux)))
                 (*
                  uy
                  (fma
                   2.0
                   (* yi PI)
                   (*
                    uy
                    (fma
                     -2.0
                     (* xi (* PI PI))
                     (* -1.3333333333333333 (* uy (* yi (* (* PI PI) PI))))))))))
               (fma (cos (* PI (+ uy uy))) xi (* 2.0 (* uy (* yi PI))))))
            float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
            	float tmp;
            	if (uy <= 0.04399999976158142f) {
            		tmp = xi + fmaf(maxCos, (ux * (zi * (1.0f - ux))), (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * fmaf(-2.0f, (xi * (((float) M_PI) * ((float) M_PI))), (-1.3333333333333333f * (uy * (yi * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI))))))))));
            	} else {
            		tmp = fmaf(cosf((((float) M_PI) * (uy + uy))), xi, (2.0f * (uy * (yi * ((float) M_PI)))));
            	}
            	return tmp;
            }
            
            function code(xi, yi, zi, ux, uy, maxCos)
            	tmp = Float32(0.0)
            	if (uy <= Float32(0.04399999976158142))
            		tmp = Float32(xi + fma(maxCos, Float32(ux * Float32(zi * Float32(Float32(1.0) - ux))), Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * fma(Float32(-2.0), Float32(xi * Float32(Float32(pi) * Float32(pi))), Float32(Float32(-1.3333333333333333) * Float32(uy * Float32(yi * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi)))))))))));
            	else
            		tmp = fma(cos(Float32(Float32(pi) * Float32(uy + uy))), xi, Float32(Float32(2.0) * Float32(uy * Float32(yi * Float32(pi)))));
            	end
            	return tmp
            end
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;uy \leq 0.04399999976158142:\\
            \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right)\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if uy < 0.0439999998

              1. Initial program 99.0%

                \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
              2. Taylor expanded in uy around 0

                \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
              3. Applied rewrites89.4%

                \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
              4. Taylor expanded in maxCos around 0

                \[\leadsto xi + \color{blue}{\left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)\right)} \]
              5. Step-by-step derivation
                1. lower-+.f32N/A

                  \[\leadsto xi + \left(maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)}\right) \]
              6. Applied rewrites89.2%

                \[\leadsto xi + \color{blue}{\mathsf{fma}\left(maxCos, ux \cdot \left(zi \cdot \left(1 - ux\right)\right), uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)} \]

              if 0.0439999998 < uy

              1. Initial program 99.0%

                \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
              2. Taylor expanded in ux around 0

                \[\leadsto \color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \]
              3. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + \color{blue}{yi} \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \]
                2. lower-fma.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), \color{blue}{xi}, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
              4. Applied rewrites90.8%

                \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)} \]
              5. Taylor expanded in uy around 0

                \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
              6. Step-by-step derivation
                1. lower-*.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                2. lower-*.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                3. lower-*.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                4. lift-PI.f3282.7

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right) \]
              7. Applied rewrites82.7%

                \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right) \]
            3. Recombined 2 regimes into one program.
            4. Add Preprocessing

            Alternative 9: 89.3% accurate, 2.7× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;uy \leq 0.04399999976158142:\\ \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot zi, uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right)\\ \end{array} \end{array} \]
            (FPCore (xi yi zi ux uy maxCos)
             :precision binary32
             (if (<= uy 0.04399999976158142)
               (+
                xi
                (fma
                 maxCos
                 (* ux zi)
                 (*
                  uy
                  (fma
                   2.0
                   (* yi PI)
                   (*
                    uy
                    (fma
                     -2.0
                     (* xi (* PI PI))
                     (* -1.3333333333333333 (* uy (* yi (* (* PI PI) PI))))))))))
               (fma (cos (* PI (+ uy uy))) xi (* 2.0 (* uy (* yi PI))))))
            float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
            	float tmp;
            	if (uy <= 0.04399999976158142f) {
            		tmp = xi + fmaf(maxCos, (ux * zi), (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * fmaf(-2.0f, (xi * (((float) M_PI) * ((float) M_PI))), (-1.3333333333333333f * (uy * (yi * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI))))))))));
            	} else {
            		tmp = fmaf(cosf((((float) M_PI) * (uy + uy))), xi, (2.0f * (uy * (yi * ((float) M_PI)))));
            	}
            	return tmp;
            }
            
            function code(xi, yi, zi, ux, uy, maxCos)
            	tmp = Float32(0.0)
            	if (uy <= Float32(0.04399999976158142))
            		tmp = Float32(xi + fma(maxCos, Float32(ux * zi), Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * fma(Float32(-2.0), Float32(xi * Float32(Float32(pi) * Float32(pi))), Float32(Float32(-1.3333333333333333) * Float32(uy * Float32(yi * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi)))))))))));
            	else
            		tmp = fma(cos(Float32(Float32(pi) * Float32(uy + uy))), xi, Float32(Float32(2.0) * Float32(uy * Float32(yi * Float32(pi)))));
            	end
            	return tmp
            end
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;uy \leq 0.04399999976158142:\\
            \;\;\;\;xi + \mathsf{fma}\left(maxCos, ux \cdot zi, uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right)\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if uy < 0.0439999998

              1. Initial program 99.0%

                \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
              2. Taylor expanded in uy around 0

                \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
              3. Applied rewrites89.4%

                \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
              4. Taylor expanded in ux around 0

                \[\leadsto xi + \color{blue}{\left(maxCos \cdot \left(ux \cdot zi\right) + uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)\right)} \]
              5. Step-by-step derivation
                1. lower-+.f32N/A

                  \[\leadsto xi + \left(maxCos \cdot \left(ux \cdot zi\right) + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)}\right) \]
              6. Applied rewrites86.6%

                \[\leadsto xi + \color{blue}{\mathsf{fma}\left(maxCos, ux \cdot zi, uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)} \]

              if 0.0439999998 < uy

              1. Initial program 99.0%

                \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
              2. Taylor expanded in ux around 0

                \[\leadsto \color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \]
              3. Step-by-step derivation
                1. *-commutativeN/A

                  \[\leadsto \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + \color{blue}{yi} \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \]
                2. lower-fma.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), \color{blue}{xi}, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
              4. Applied rewrites90.8%

                \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)} \]
              5. Taylor expanded in uy around 0

                \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
              6. Step-by-step derivation
                1. lower-*.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                2. lower-*.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                3. lower-*.f32N/A

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                4. lift-PI.f3282.7

                  \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right) \]
              7. Applied rewrites82.7%

                \[\leadsto \mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)\right) \]
            3. Recombined 2 regimes into one program.
            4. Add Preprocessing

            Alternative 10: 86.6% accurate, 3.0× speedup?

            \[\begin{array}{l} \\ xi + \mathsf{fma}\left(maxCos, ux \cdot zi, uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right) \end{array} \]
            (FPCore (xi yi zi ux uy maxCos)
             :precision binary32
             (+
              xi
              (fma
               maxCos
               (* ux zi)
               (*
                uy
                (fma
                 2.0
                 (* yi PI)
                 (*
                  uy
                  (fma
                   -2.0
                   (* xi (* PI PI))
                   (* -1.3333333333333333 (* uy (* yi (* (* PI PI) PI)))))))))))
            float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
            	return xi + fmaf(maxCos, (ux * zi), (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * fmaf(-2.0f, (xi * (((float) M_PI) * ((float) M_PI))), (-1.3333333333333333f * (uy * (yi * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI))))))))));
            }
            
            function code(xi, yi, zi, ux, uy, maxCos)
            	return Float32(xi + fma(maxCos, Float32(ux * zi), Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * fma(Float32(-2.0), Float32(xi * Float32(Float32(pi) * Float32(pi))), Float32(Float32(-1.3333333333333333) * Float32(uy * Float32(yi * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi)))))))))))
            end
            
            \begin{array}{l}
            
            \\
            xi + \mathsf{fma}\left(maxCos, ux \cdot zi, uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)
            \end{array}
            
            Derivation
            1. Initial program 99.0%

              \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            2. Taylor expanded in uy around 0

              \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
            3. Applied rewrites89.4%

              \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
            4. Taylor expanded in ux around 0

              \[\leadsto xi + \color{blue}{\left(maxCos \cdot \left(ux \cdot zi\right) + uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)\right)} \]
            5. Step-by-step derivation
              1. lower-+.f32N/A

                \[\leadsto xi + \left(maxCos \cdot \left(ux \cdot zi\right) + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)}\right) \]
            6. Applied rewrites86.6%

              \[\leadsto xi + \color{blue}{\mathsf{fma}\left(maxCos, ux \cdot zi, uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)\right)} \]
            7. Add Preprocessing

            Alternative 11: 85.7% accurate, 3.1× speedup?

            \[\begin{array}{l} \\ \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\left(2 \cdot \left(uy \cdot \pi\right)\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \end{array} \]
            (FPCore (xi yi zi ux uy maxCos)
             :precision binary32
             (+
              (+
               (* (* (+ 1.0 (* -2.0 (* (* uy uy) (* PI PI)))) 1.0) xi)
               (* (* (* 2.0 (* uy PI)) 1.0) yi))
              (* (* (* (- 1.0 ux) maxCos) ux) zi)))
            float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
            	return ((((1.0f + (-2.0f * ((uy * uy) * (((float) M_PI) * ((float) M_PI))))) * 1.0f) * xi) + (((2.0f * (uy * ((float) M_PI))) * 1.0f) * yi)) + ((((1.0f - ux) * maxCos) * ux) * zi);
            }
            
            function code(xi, yi, zi, ux, uy, maxCos)
            	return Float32(Float32(Float32(Float32(Float32(Float32(1.0) + Float32(Float32(-2.0) * Float32(Float32(uy * uy) * Float32(Float32(pi) * Float32(pi))))) * Float32(1.0)) * xi) + Float32(Float32(Float32(Float32(2.0) * Float32(uy * Float32(pi))) * Float32(1.0)) * yi)) + Float32(Float32(Float32(Float32(Float32(1.0) - ux) * maxCos) * ux) * zi))
            end
            
            function tmp = code(xi, yi, zi, ux, uy, maxCos)
            	tmp = ((((single(1.0) + (single(-2.0) * ((uy * uy) * (single(pi) * single(pi))))) * single(1.0)) * xi) + (((single(2.0) * (uy * single(pi))) * single(1.0)) * yi)) + ((((single(1.0) - ux) * maxCos) * ux) * zi);
            end
            
            \begin{array}{l}
            
            \\
            \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\left(2 \cdot \left(uy \cdot \pi\right)\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi
            \end{array}
            
            Derivation
            1. Initial program 99.0%

              \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            2. Taylor expanded in ux around 0

              \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
            3. Step-by-step derivation
              1. Applied rewrites98.8%

                \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
              2. Taylor expanded in ux around 0

                \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
              3. Step-by-step derivation
                1. Applied rewrites98.7%

                  \[\leadsto \left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \color{blue}{1}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                2. Taylor expanded in uy around 0

                  \[\leadsto \left(\left(\color{blue}{\left(1 + -2 \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{2}\right)\right)} \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                3. Step-by-step derivation
                  1. lower-+.f32N/A

                    \[\leadsto \left(\left(\left(1 + \color{blue}{-2 \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{2}\right)}\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  2. lower-*.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \color{blue}{\left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{2}\right)}\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  3. lower-*.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left({uy}^{2} \cdot \color{blue}{{\mathsf{PI}\left(\right)}^{2}}\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  4. unpow2N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot {\color{blue}{\mathsf{PI}\left(\right)}}^{2}\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  5. lower-*.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot {\color{blue}{\mathsf{PI}\left(\right)}}^{2}\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  6. pow2N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  7. lift-*.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  8. lift-PI.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \mathsf{PI}\left(\right)\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  9. lift-PI.f3292.6

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                4. Applied rewrites92.6%

                  \[\leadsto \left(\left(\color{blue}{\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right)} \cdot 1\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                5. Taylor expanded in uy around 0

                  \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\color{blue}{\left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                6. Step-by-step derivation
                  1. lower-*.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\left(2 \cdot \color{blue}{\left(uy \cdot \mathsf{PI}\left(\right)\right)}\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  2. lower-*.f32N/A

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\left(2 \cdot \left(uy \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                  3. lift-PI.f3285.7

                    \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\left(2 \cdot \left(uy \cdot \pi\right)\right) \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                7. Applied rewrites85.7%

                  \[\leadsto \left(\left(\left(1 + -2 \cdot \left(\left(uy \cdot uy\right) \cdot \left(\pi \cdot \pi\right)\right)\right) \cdot 1\right) \cdot xi + \left(\color{blue}{\left(2 \cdot \left(uy \cdot \pi\right)\right)} \cdot 1\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                8. Add Preprocessing

                Alternative 12: 81.7% accurate, 3.6× speedup?

                \[\begin{array}{l} \\ xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right), yi \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right), 2 \cdot \pi\right)\right) \end{array} \]
                (FPCore (xi yi zi ux uy maxCos)
                 :precision binary32
                 (+
                  xi
                  (*
                   uy
                   (fma
                    -2.0
                    (* uy (* xi (* PI PI)))
                    (*
                     yi
                     (fma -1.3333333333333333 (* (* uy uy) (* (* PI PI) PI)) (* 2.0 PI)))))))
                float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
                	return xi + (uy * fmaf(-2.0f, (uy * (xi * (((float) M_PI) * ((float) M_PI)))), (yi * fmaf(-1.3333333333333333f, ((uy * uy) * ((((float) M_PI) * ((float) M_PI)) * ((float) M_PI))), (2.0f * ((float) M_PI))))));
                }
                
                function code(xi, yi, zi, ux, uy, maxCos)
                	return Float32(xi + Float32(uy * fma(Float32(-2.0), Float32(uy * Float32(xi * Float32(Float32(pi) * Float32(pi)))), Float32(yi * fma(Float32(-1.3333333333333333), Float32(Float32(uy * uy) * Float32(Float32(Float32(pi) * Float32(pi)) * Float32(pi))), Float32(Float32(2.0) * Float32(pi)))))))
                end
                
                \begin{array}{l}
                
                \\
                xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right), yi \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right), 2 \cdot \pi\right)\right)
                \end{array}
                
                Derivation
                1. Initial program 99.0%

                  \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                2. Taylor expanded in uy around 0

                  \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
                3. Applied rewrites89.4%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
                4. Taylor expanded in ux around 0

                  \[\leadsto xi + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)} \]
                5. Step-by-step derivation
                  1. lower-+.f32N/A

                    \[\leadsto xi + uy \cdot \color{blue}{\left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)} \]
                6. Applied rewrites81.7%

                  \[\leadsto xi + \color{blue}{uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)} \]
                7. Taylor expanded in yi around 0

                  \[\leadsto xi + uy \cdot \left(-2 \cdot \left(uy \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right)\right) + yi \cdot \color{blue}{\left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)}\right) \]
                8. Step-by-step derivation
                  1. lower-fma.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \color{blue}{{\mathsf{PI}\left(\right)}^{2}}\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  2. lower-*.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{\color{blue}{2}}\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  3. pow2N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  4. lift-*.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  5. lift-PI.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \mathsf{PI}\left(\right)\right)\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  6. lift-PI.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  7. lift-*.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  8. lower-*.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right), yi \cdot \left(\frac{-4}{3} \cdot \left({uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}\right) + 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  9. lower-fma.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right), yi \cdot \mathsf{fma}\left(\frac{-4}{3}, {uy}^{2} \cdot {\mathsf{PI}\left(\right)}^{3}, 2 \cdot \mathsf{PI}\left(\right)\right)\right) \]
                9. Applied rewrites81.7%

                  \[\leadsto xi + uy \cdot \mathsf{fma}\left(-2, uy \cdot \color{blue}{\left(xi \cdot \left(\pi \cdot \pi\right)\right)}, yi \cdot \mathsf{fma}\left(-1.3333333333333333, \left(uy \cdot uy\right) \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right), 2 \cdot \pi\right)\right) \]
                10. Add Preprocessing

                Alternative 13: 78.5% accurate, 5.9× speedup?

                \[\begin{array}{l} \\ xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right)\right)\right) \end{array} \]
                (FPCore (xi yi zi ux uy maxCos)
                 :precision binary32
                 (+ xi (* uy (fma 2.0 (* yi PI) (* uy (* -2.0 (* xi (* PI PI))))))))
                float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
                	return xi + (uy * fmaf(2.0f, (yi * ((float) M_PI)), (uy * (-2.0f * (xi * (((float) M_PI) * ((float) M_PI)))))));
                }
                
                function code(xi, yi, zi, ux, uy, maxCos)
                	return Float32(xi + Float32(uy * fma(Float32(2.0), Float32(yi * Float32(pi)), Float32(uy * Float32(Float32(-2.0) * Float32(xi * Float32(Float32(pi) * Float32(pi))))))))
                end
                
                \begin{array}{l}
                
                \\
                xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right)\right)\right)
                \end{array}
                
                Derivation
                1. Initial program 99.0%

                  \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                2. Taylor expanded in uy around 0

                  \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + \left(uy \cdot \left(2 \cdot \left(\left(yi \cdot \mathsf{PI}\left(\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + uy \cdot \left(-2 \cdot \left(\left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) + \frac{-4}{3} \cdot \left(\left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right) \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right)} \]
                3. Applied rewrites89.4%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \mathsf{fma}\left(\mathsf{fma}\left(\left(\pi \cdot yi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, 2, \mathsf{fma}\left(-2 \cdot \left(\left(\pi \cdot \pi\right) \cdot xi\right), \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}, \left(-1.3333333333333333 \cdot \left(\left(\left(\left(\pi \cdot \pi\right) \cdot \pi\right) \cdot yi\right) \cdot uy\right)\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)}\right) \cdot uy\right), uy, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)\right)} \]
                4. Taylor expanded in ux around 0

                  \[\leadsto xi + \color{blue}{uy \cdot \left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)} \]
                5. Step-by-step derivation
                  1. lower-+.f32N/A

                    \[\leadsto xi + uy \cdot \color{blue}{\left(2 \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right) + uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right) + \frac{-4}{3} \cdot \left(uy \cdot \left(yi \cdot {\mathsf{PI}\left(\right)}^{3}\right)\right)\right)\right)} \]
                6. Applied rewrites81.7%

                  \[\leadsto xi + \color{blue}{uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \mathsf{fma}\left(-2, xi \cdot \left(\pi \cdot \pi\right), -1.3333333333333333 \cdot \left(uy \cdot \left(yi \cdot \left(\left(\pi \cdot \pi\right) \cdot \pi\right)\right)\right)\right)\right)} \]
                7. Taylor expanded in xi around inf

                  \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right)\right)\right) \]
                8. Step-by-step derivation
                  1. lower-*.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot {\mathsf{PI}\left(\right)}^{2}\right)\right)\right) \]
                  2. pow2N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)\right)\right)\right) \]
                  3. lift-*.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)\right)\right)\right) \]
                  4. lift-PI.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\pi \cdot \mathsf{PI}\left(\right)\right)\right)\right)\right) \]
                  5. lift-PI.f32N/A

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right)\right)\right) \]
                  6. lift-*.f3278.5

                    \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right)\right)\right) \]
                9. Applied rewrites78.5%

                  \[\leadsto xi + uy \cdot \mathsf{fma}\left(2, yi \cdot \pi, uy \cdot \left(-2 \cdot \left(xi \cdot \left(\pi \cdot \pi\right)\right)\right)\right) \]
                10. Add Preprocessing

                Alternative 14: 74.4% accurate, 12.4× speedup?

                \[\begin{array}{l} \\ xi + 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right) \end{array} \]
                (FPCore (xi yi zi ux uy maxCos)
                 :precision binary32
                 (+ xi (* 2.0 (* uy (* yi PI)))))
                float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
                	return xi + (2.0f * (uy * (yi * ((float) M_PI))));
                }
                
                function code(xi, yi, zi, ux, uy, maxCos)
                	return Float32(xi + Float32(Float32(2.0) * Float32(uy * Float32(yi * Float32(pi)))))
                end
                
                function tmp = code(xi, yi, zi, ux, uy, maxCos)
                	tmp = xi + (single(2.0) * (uy * (yi * single(pi))));
                end
                
                \begin{array}{l}
                
                \\
                xi + 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)
                \end{array}
                
                Derivation
                1. Initial program 99.0%

                  \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                2. Taylor expanded in ux around 0

                  \[\leadsto \color{blue}{xi \cdot \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) + yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)} \]
                3. Step-by-step derivation
                  1. *-commutativeN/A

                    \[\leadsto \cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \cdot xi + \color{blue}{yi} \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  2. lower-fma.f32N/A

                    \[\leadsto \mathsf{fma}\left(\cos \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right), \color{blue}{xi}, yi \cdot \sin \left(2 \cdot \left(uy \cdot \mathsf{PI}\left(\right)\right)\right)\right) \]
                4. Applied rewrites90.8%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \left(\pi \cdot \left(uy + uy\right)\right), xi, \sin \left(\pi \cdot \left(uy + uy\right)\right) \cdot yi\right)} \]
                5. Taylor expanded in uy around 0

                  \[\leadsto xi + \color{blue}{2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)} \]
                6. Step-by-step derivation
                  1. lower-+.f32N/A

                    \[\leadsto xi + 2 \cdot \color{blue}{\left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right)} \]
                  2. lower-*.f32N/A

                    \[\leadsto xi + 2 \cdot \left(uy \cdot \color{blue}{\left(yi \cdot \mathsf{PI}\left(\right)\right)}\right) \]
                  3. lower-*.f32N/A

                    \[\leadsto xi + 2 \cdot \left(uy \cdot \left(yi \cdot \color{blue}{\mathsf{PI}\left(\right)}\right)\right) \]
                  4. lower-*.f32N/A

                    \[\leadsto xi + 2 \cdot \left(uy \cdot \left(yi \cdot \mathsf{PI}\left(\right)\right)\right) \]
                  5. lift-PI.f3274.4

                    \[\leadsto xi + 2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right) \]
                7. Applied rewrites74.4%

                  \[\leadsto xi + \color{blue}{2 \cdot \left(uy \cdot \left(yi \cdot \pi\right)\right)} \]
                8. Add Preprocessing

                Alternative 15: 49.8% accurate, 16.4× speedup?

                \[\begin{array}{l} \\ xi + maxCos \cdot \left(ux \cdot zi\right) \end{array} \]
                (FPCore (xi yi zi ux uy maxCos)
                 :precision binary32
                 (+ xi (* maxCos (* ux zi))))
                float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
                	return xi + (maxCos * (ux * zi));
                }
                
                module fmin_fmax_functions
                    implicit none
                    private
                    public fmax
                    public fmin
                
                    interface fmax
                        module procedure fmax88
                        module procedure fmax44
                        module procedure fmax84
                        module procedure fmax48
                    end interface
                    interface fmin
                        module procedure fmin88
                        module procedure fmin44
                        module procedure fmin84
                        module procedure fmin48
                    end interface
                contains
                    real(8) function fmax88(x, y) result (res)
                        real(8), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                    end function
                    real(4) function fmax44(x, y) result (res)
                        real(4), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                    end function
                    real(8) function fmax84(x, y) result(res)
                        real(8), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
                    end function
                    real(8) function fmax48(x, y) result(res)
                        real(4), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
                    end function
                    real(8) function fmin88(x, y) result (res)
                        real(8), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                    end function
                    real(4) function fmin44(x, y) result (res)
                        real(4), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                    end function
                    real(8) function fmin84(x, y) result(res)
                        real(8), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
                    end function
                    real(8) function fmin48(x, y) result(res)
                        real(4), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
                    end function
                end module
                
                real(4) function code(xi, yi, zi, ux, uy, maxcos)
                use fmin_fmax_functions
                    real(4), intent (in) :: xi
                    real(4), intent (in) :: yi
                    real(4), intent (in) :: zi
                    real(4), intent (in) :: ux
                    real(4), intent (in) :: uy
                    real(4), intent (in) :: maxcos
                    code = xi + (maxcos * (ux * zi))
                end function
                
                function code(xi, yi, zi, ux, uy, maxCos)
                	return Float32(xi + Float32(maxCos * Float32(ux * zi)))
                end
                
                function tmp = code(xi, yi, zi, ux, uy, maxCos)
                	tmp = xi + (maxCos * (ux * zi));
                end
                
                \begin{array}{l}
                
                \\
                xi + maxCos \cdot \left(ux \cdot zi\right)
                \end{array}
                
                Derivation
                1. Initial program 99.0%

                  \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                2. Taylor expanded in uy around 0

                  \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}} \]
                3. Step-by-step derivation
                  1. associate-*r*N/A

                    \[\leadsto \left(maxCos \cdot ux\right) \cdot \left(zi \cdot \left(1 - ux\right)\right) + \color{blue}{xi} \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)} \]
                  2. lower-fma.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi \cdot \left(1 - ux\right)}, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  3. lower-*.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi} \cdot \left(1 - ux\right), xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  4. *-commutativeN/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot \color{blue}{zi}, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  5. lower-*.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot \color{blue}{zi}, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  6. lift--.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  7. *-commutativeN/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)} \cdot xi\right) \]
                  8. lower-*.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)} \cdot xi\right) \]
                4. Applied rewrites51.7%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)} \]
                5. Taylor expanded in ux around 0

                  \[\leadsto xi + \color{blue}{maxCos \cdot \left(ux \cdot zi\right)} \]
                6. Step-by-step derivation
                  1. lower-+.f32N/A

                    \[\leadsto xi + maxCos \cdot \color{blue}{\left(ux \cdot zi\right)} \]
                  2. lower-*.f32N/A

                    \[\leadsto xi + maxCos \cdot \left(ux \cdot \color{blue}{zi}\right) \]
                  3. lower-*.f3249.8

                    \[\leadsto xi + maxCos \cdot \left(ux \cdot zi\right) \]
                7. Applied rewrites49.8%

                  \[\leadsto xi + \color{blue}{maxCos \cdot \left(ux \cdot zi\right)} \]
                8. Add Preprocessing

                Alternative 16: 11.7% accurate, 22.3× speedup?

                \[\begin{array}{l} \\ maxCos \cdot \left(ux \cdot zi\right) \end{array} \]
                (FPCore (xi yi zi ux uy maxCos) :precision binary32 (* maxCos (* ux zi)))
                float code(float xi, float yi, float zi, float ux, float uy, float maxCos) {
                	return maxCos * (ux * zi);
                }
                
                module fmin_fmax_functions
                    implicit none
                    private
                    public fmax
                    public fmin
                
                    interface fmax
                        module procedure fmax88
                        module procedure fmax44
                        module procedure fmax84
                        module procedure fmax48
                    end interface
                    interface fmin
                        module procedure fmin88
                        module procedure fmin44
                        module procedure fmin84
                        module procedure fmin48
                    end interface
                contains
                    real(8) function fmax88(x, y) result (res)
                        real(8), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                    end function
                    real(4) function fmax44(x, y) result (res)
                        real(4), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
                    end function
                    real(8) function fmax84(x, y) result(res)
                        real(8), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
                    end function
                    real(8) function fmax48(x, y) result(res)
                        real(4), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
                    end function
                    real(8) function fmin88(x, y) result (res)
                        real(8), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                    end function
                    real(4) function fmin44(x, y) result (res)
                        real(4), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
                    end function
                    real(8) function fmin84(x, y) result(res)
                        real(8), intent (in) :: x
                        real(4), intent (in) :: y
                        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
                    end function
                    real(8) function fmin48(x, y) result(res)
                        real(4), intent (in) :: x
                        real(8), intent (in) :: y
                        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
                    end function
                end module
                
                real(4) function code(xi, yi, zi, ux, uy, maxcos)
                use fmin_fmax_functions
                    real(4), intent (in) :: xi
                    real(4), intent (in) :: yi
                    real(4), intent (in) :: zi
                    real(4), intent (in) :: ux
                    real(4), intent (in) :: uy
                    real(4), intent (in) :: maxcos
                    code = maxcos * (ux * zi)
                end function
                
                function code(xi, yi, zi, ux, uy, maxCos)
                	return Float32(maxCos * Float32(ux * zi))
                end
                
                function tmp = code(xi, yi, zi, ux, uy, maxCos)
                	tmp = maxCos * (ux * zi);
                end
                
                \begin{array}{l}
                
                \\
                maxCos \cdot \left(ux \cdot zi\right)
                \end{array}
                
                Derivation
                1. Initial program 99.0%

                  \[\left(\left(\cos \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot xi + \left(\sin \left(\left(uy \cdot 2\right) \cdot \pi\right) \cdot \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right)}\right) \cdot yi\right) + \left(\left(\left(1 - ux\right) \cdot maxCos\right) \cdot ux\right) \cdot zi \]
                2. Taylor expanded in uy around 0

                  \[\leadsto \color{blue}{maxCos \cdot \left(ux \cdot \left(zi \cdot \left(1 - ux\right)\right)\right) + xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}} \]
                3. Step-by-step derivation
                  1. associate-*r*N/A

                    \[\leadsto \left(maxCos \cdot ux\right) \cdot \left(zi \cdot \left(1 - ux\right)\right) + \color{blue}{xi} \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)} \]
                  2. lower-fma.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi \cdot \left(1 - ux\right)}, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  3. lower-*.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \color{blue}{zi} \cdot \left(1 - ux\right), xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  4. *-commutativeN/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot \color{blue}{zi}, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  5. lower-*.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot \color{blue}{zi}, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  6. lift--.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, xi \cdot \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)}\right) \]
                  7. *-commutativeN/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)} \cdot xi\right) \]
                  8. lower-*.f32N/A

                    \[\leadsto \mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \sqrt{1 - {maxCos}^{2} \cdot \left({ux}^{2} \cdot {\left(1 - ux\right)}^{2}\right)} \cdot xi\right) \]
                4. Applied rewrites51.7%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(maxCos \cdot ux, \left(1 - ux\right) \cdot zi, \sqrt{1 - \left(\left(\left(1 - ux\right) \cdot \left(1 - ux\right)\right) \cdot \left(ux \cdot ux\right)\right) \cdot \left(maxCos \cdot maxCos\right)} \cdot xi\right)} \]
                5. Taylor expanded in ux around 0

                  \[\leadsto xi + \color{blue}{maxCos \cdot \left(ux \cdot zi\right)} \]
                6. Step-by-step derivation
                  1. lower-+.f32N/A

                    \[\leadsto xi + maxCos \cdot \color{blue}{\left(ux \cdot zi\right)} \]
                  2. lower-*.f32N/A

                    \[\leadsto xi + maxCos \cdot \left(ux \cdot \color{blue}{zi}\right) \]
                  3. lower-*.f3249.8

                    \[\leadsto xi + maxCos \cdot \left(ux \cdot zi\right) \]
                7. Applied rewrites49.8%

                  \[\leadsto xi + \color{blue}{maxCos \cdot \left(ux \cdot zi\right)} \]
                8. Taylor expanded in xi around 0

                  \[\leadsto maxCos \cdot \left(ux \cdot \color{blue}{zi}\right) \]
                9. Step-by-step derivation
                  1. lift-*.f32N/A

                    \[\leadsto maxCos \cdot \left(ux \cdot zi\right) \]
                  2. lift-*.f3211.7

                    \[\leadsto maxCos \cdot \left(ux \cdot zi\right) \]
                10. Applied rewrites11.7%

                  \[\leadsto maxCos \cdot \left(ux \cdot \color{blue}{zi}\right) \]
                11. Add Preprocessing

                Reproduce

                ?
                herbie shell --seed 2025127 
                (FPCore (xi yi zi ux uy maxCos)
                  :name "UniformSampleCone 2"
                  :precision binary32
                  :pre (and (and (and (and (and (and (<= -10000.0 xi) (<= xi 10000.0)) (and (<= -10000.0 yi) (<= yi 10000.0))) (and (<= -10000.0 zi) (<= zi 10000.0))) (and (<= 2.328306437e-10 ux) (<= ux 1.0))) (and (<= 2.328306437e-10 uy) (<= uy 1.0))) (and (<= 0.0 maxCos) (<= maxCos 1.0)))
                  (+ (+ (* (* (cos (* (* uy 2.0) PI)) (sqrt (- 1.0 (* (* (* (- 1.0 ux) maxCos) ux) (* (* (- 1.0 ux) maxCos) ux))))) xi) (* (* (sin (* (* uy 2.0) PI)) (sqrt (- 1.0 (* (* (* (- 1.0 ux) maxCos) ux) (* (* (- 1.0 ux) maxCos) ux))))) yi)) (* (* (* (- 1.0 ux) maxCos) ux) zi)))