Disney BSSRDF, PDF of scattering profile

Percentage Accurate: 99.6% → 99.6%
Time: 7.8s
Alternatives: 21
Speedup: 1.1×

Specification

?
\[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
\[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
(FPCore (s r)
  :precision binary32
  :pre (and (and (<= 0.0 s) (<= s 256.0))
     (and (< 1e-6 r) (< r 1000000.0)))
  (+
 (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
 (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r))))
float code(float s, float r) {
	return ((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r));
}
function code(s, r)
	return Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r)))
end
function tmp = code(s, r)
	tmp = ((single(0.25) * exp((-r / s))) / (((single(2.0) * single(pi)) * s) * r)) + ((single(0.75) * exp((-r / (single(3.0) * s)))) / (((single(6.0) * single(pi)) * s) * r));
end
\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r}

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 21 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.6% accurate, 1.0× speedup?

\[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
\[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
(FPCore (s r)
  :precision binary32
  :pre (and (and (<= 0.0 s) (<= s 256.0))
     (and (< 1e-6 r) (< r 1000000.0)))
  (+
 (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
 (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r))))
float code(float s, float r) {
	return ((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r));
}
function code(s, r)
	return Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r)))
end
function tmp = code(s, r)
	tmp = ((single(0.25) * exp((-r / s))) / (((single(2.0) * single(pi)) * s) * r)) + ((single(0.75) * exp((-r / (single(3.0) * s)))) / (((single(6.0) * single(pi)) * s) * r));
end
\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r}

Alternative 1: 99.6% accurate, 1.1× speedup?

\[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
\[\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right) \]
(FPCore (s r)
  :precision binary32
  :pre (and (and (<= 0.0 s) (<= s 256.0))
     (and (< 1e-6 r) (< r 1000000.0)))
  (fma
 (/ (* (exp (/ r (* -3.0 s))) 0.75) s)
 (/ 1.0 (* 18.84955596923828 r))
 (/ (/ 0.125 (* (* PI s) (exp (/ r s)))) r)))
float code(float s, float r) {
	return fmaf(((expf((r / (-3.0f * s))) * 0.75f) / s), (1.0f / (18.84955596923828f * r)), ((0.125f / ((((float) M_PI) * s) * expf((r / s)))) / r));
}
function code(s, r)
	return fma(Float32(Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) * Float32(0.75)) / s), Float32(Float32(1.0) / Float32(Float32(18.84955596923828) * r)), Float32(Float32(Float32(0.125) / Float32(Float32(Float32(pi) * s) * exp(Float32(r / s)))) / r))
end
\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right)
Derivation
  1. Initial program 99.6%

    \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
  2. Applied rewrites99.6%

    \[\leadsto \mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{\left(6 \cdot \pi\right) \cdot r}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right) \]
  3. Evaluated real constant99.6%

    \[\leadsto \mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right) \]
  4. Add Preprocessing

Alternative 2: 99.6% accurate, 1.1× speedup?

\[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
\[\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{0.125}{\left(\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}\right) \cdot r}\right) \]
(FPCore (s r)
  :precision binary32
  :pre (and (and (<= 0.0 s) (<= s 256.0))
     (and (< 1e-6 r) (< r 1000000.0)))
  (fma
 (/ (* (exp (/ r (* -3.0 s))) 0.75) s)
 (/ 1.0 (* 18.84955596923828 r))
 (/ 0.125 (* (* (* PI s) (exp (/ r s))) r))))
float code(float s, float r) {
	return fmaf(((expf((r / (-3.0f * s))) * 0.75f) / s), (1.0f / (18.84955596923828f * r)), (0.125f / (((((float) M_PI) * s) * expf((r / s))) * r)));
}
function code(s, r)
	return fma(Float32(Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) * Float32(0.75)) / s), Float32(Float32(1.0) / Float32(Float32(18.84955596923828) * r)), Float32(Float32(0.125) / Float32(Float32(Float32(Float32(pi) * s) * exp(Float32(r / s))) * r)))
end
\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{0.125}{\left(\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}\right) \cdot r}\right)
Derivation
  1. Initial program 99.6%

    \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
  2. Applied rewrites99.6%

    \[\leadsto \mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{\left(6 \cdot \pi\right) \cdot r}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right) \]
  3. Evaluated real constant99.6%

    \[\leadsto \mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right) \]
  4. Step-by-step derivation
    1. Applied rewrites99.6%

      \[\leadsto \mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}} \cdot 0.75}{s}, \frac{1}{18.84955596923828 \cdot r}, \frac{0.125}{\left(\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}\right) \cdot r}\right) \]
    2. Add Preprocessing

    Alternative 3: 99.6% accurate, 1.4× speedup?

    \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
    \[\frac{0.125 \cdot \left(e^{\frac{r}{-3 \cdot s}} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi} \]
    (FPCore (s r)
      :precision binary32
      :pre (and (and (<= 0.0 s) (<= s 256.0))
         (and (< 1e-6 r) (< r 1000000.0)))
      (/
     (* 0.125 (+ (exp (/ r (* -3.0 s))) (exp (/ (- r) s))))
     (* (* s r) PI)))
    float code(float s, float r) {
    	return (0.125f * (expf((r / (-3.0f * s))) + expf((-r / s)))) / ((s * r) * ((float) M_PI));
    }
    
    function code(s, r)
    	return Float32(Float32(Float32(0.125) * Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) + exp(Float32(Float32(-r) / s)))) / Float32(Float32(s * r) * Float32(pi)))
    end
    
    function tmp = code(s, r)
    	tmp = (single(0.125) * (exp((r / (single(-3.0) * s))) + exp((-r / s)))) / ((s * r) * single(pi));
    end
    
    \frac{0.125 \cdot \left(e^{\frac{r}{-3 \cdot s}} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi}
    
    Derivation
    1. Initial program 99.6%

      \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
    2. Step-by-step derivation
      1. Applied rewrites99.6%

        \[\leadsto \frac{\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}}}{\pi}, 0.125, \frac{e^{\frac{-r}{s}}}{\pi} \cdot 0.125\right)}{s \cdot r} \]
      2. Step-by-step derivation
        1. Applied rewrites99.5%

          \[\leadsto \frac{0.125}{r} \cdot \frac{\frac{e^{r \cdot \frac{-0.3333333333333333}{s}} + e^{\frac{-r}{s}}}{\pi}}{s} \]
        2. Step-by-step derivation
          1. Applied rewrites99.5%

            \[\leadsto \frac{0.125 \cdot \left(e^{\frac{-0.3333333333333333}{s} \cdot r} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi} \]
          2. Step-by-step derivation
            1. Applied rewrites99.6%

              \[\leadsto \frac{0.125 \cdot \left(e^{\frac{r}{-3 \cdot s}} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi} \]
            2. Add Preprocessing

            Alternative 4: 99.5% accurate, 1.4× speedup?

            \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
            \[\frac{0.125 \cdot \left(e^{\frac{-0.3333333333333333}{s} \cdot r} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi} \]
            (FPCore (s r)
              :precision binary32
              :pre (and (and (<= 0.0 s) (<= s 256.0))
                 (and (< 1e-6 r) (< r 1000000.0)))
              (/
             (* 0.125 (+ (exp (* (/ -0.3333333333333333 s) r)) (exp (/ (- r) s))))
             (* (* s r) PI)))
            float code(float s, float r) {
            	return (0.125f * (expf(((-0.3333333333333333f / s) * r)) + expf((-r / s)))) / ((s * r) * ((float) M_PI));
            }
            
            function code(s, r)
            	return Float32(Float32(Float32(0.125) * Float32(exp(Float32(Float32(Float32(-0.3333333333333333) / s) * r)) + exp(Float32(Float32(-r) / s)))) / Float32(Float32(s * r) * Float32(pi)))
            end
            
            function tmp = code(s, r)
            	tmp = (single(0.125) * (exp(((single(-0.3333333333333333) / s) * r)) + exp((-r / s)))) / ((s * r) * single(pi));
            end
            
            \frac{0.125 \cdot \left(e^{\frac{-0.3333333333333333}{s} \cdot r} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi}
            
            Derivation
            1. Initial program 99.6%

              \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
            2. Step-by-step derivation
              1. Applied rewrites99.6%

                \[\leadsto \frac{\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}}}{\pi}, 0.125, \frac{e^{\frac{-r}{s}}}{\pi} \cdot 0.125\right)}{s \cdot r} \]
              2. Step-by-step derivation
                1. Applied rewrites99.5%

                  \[\leadsto \frac{0.125}{r} \cdot \frac{\frac{e^{r \cdot \frac{-0.3333333333333333}{s}} + e^{\frac{-r}{s}}}{\pi}}{s} \]
                2. Step-by-step derivation
                  1. Applied rewrites99.5%

                    \[\leadsto \frac{0.125 \cdot \left(e^{\frac{-0.3333333333333333}{s} \cdot r} + e^{\frac{-r}{s}}\right)}{\left(s \cdot r\right) \cdot \pi} \]
                  2. Add Preprocessing

                  Alternative 5: 95.5% accurate, 0.6× speedup?

                  \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                  \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(4 \cdot s, \pi, \mathsf{fma}\left(-8 \cdot r, \frac{\pi}{s} \cdot -0.08333333333333333, 2.6666666666666665 \cdot \pi\right) \cdot r\right) \cdot r}\\ \end{array} \]
                  (FPCore (s r)
                    :precision binary32
                    :pre (and (and (<= 0.0 s) (<= s 256.0))
                       (and (< 1e-6 r) (< r 1000000.0)))
                    (if (<=
                       (+
                        (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                        (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                       0.0)
                    (/ 0.0 (* r (* s PI)))
                    (/
                     1.0
                     (*
                      (fma
                       (* 4.0 s)
                       PI
                       (*
                        (fma
                         (* -8.0 r)
                         (* (/ PI s) -0.08333333333333333)
                         (* 2.6666666666666665 PI))
                        r))
                      r))))
                  float code(float s, float r) {
                  	float tmp;
                  	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.0f) {
                  		tmp = 0.0f / (r * (s * ((float) M_PI)));
                  	} else {
                  		tmp = 1.0f / (fmaf((4.0f * s), ((float) M_PI), (fmaf((-8.0f * r), ((((float) M_PI) / s) * -0.08333333333333333f), (2.6666666666666665f * ((float) M_PI))) * r)) * r);
                  	}
                  	return tmp;
                  }
                  
                  function code(s, r)
                  	tmp = Float32(0.0)
                  	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.0))
                  		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                  	else
                  		tmp = Float32(Float32(1.0) / Float32(fma(Float32(Float32(4.0) * s), Float32(pi), Float32(fma(Float32(Float32(-8.0) * r), Float32(Float32(Float32(pi) / s) * Float32(-0.08333333333333333)), Float32(Float32(2.6666666666666665) * Float32(pi))) * r)) * r));
                  	end
                  	return tmp
                  end
                  
                  \begin{array}{l}
                  \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\
                  \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;\frac{1}{\mathsf{fma}\left(4 \cdot s, \pi, \mathsf{fma}\left(-8 \cdot r, \frac{\pi}{s} \cdot -0.08333333333333333, 2.6666666666666665 \cdot \pi\right) \cdot r\right) \cdot r}\\
                  
                  
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.0

                    1. Initial program 99.6%

                      \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                    2. Taylor expanded in s around inf

                      \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                    3. Step-by-step derivation
                      1. Applied rewrites8.8%

                        \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                      2. Taylor expanded in undef-var around zero

                        \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                      3. Step-by-step derivation
                        1. Applied rewrites89.1%

                          \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                        if 0.0 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                        1. Initial program 99.6%

                          \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                        2. Taylor expanded in s around 0

                          \[\leadsto \frac{\frac{1}{8} \cdot \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi} + \frac{1}{8} \cdot \frac{e^{\frac{-1}{3} \cdot \frac{r}{s}}}{r \cdot \pi}}{s} \]
                        3. Step-by-step derivation
                          1. Applied rewrites99.5%

                            \[\leadsto \frac{\mathsf{fma}\left(0.125, \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi}, 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \pi}\right)}{s} \]
                          2. Step-by-step derivation
                            1. Applied rewrites99.5%

                              \[\leadsto \frac{1}{\frac{s}{0.125 \cdot \frac{e^{\frac{-r}{s}} + e^{-0.3333333333333333 \cdot \frac{r}{s}}}{\pi \cdot r}}} \]
                            2. Taylor expanded in r around 0

                              \[\leadsto \frac{1}{r \cdot \left(4 \cdot \left(s \cdot \pi\right) + r \cdot \left(-8 \cdot \left(r \cdot \left(\frac{-2}{9} \cdot \frac{\pi}{s} + \frac{5}{36} \cdot \frac{\pi}{s}\right)\right) + \frac{8}{3} \cdot \pi\right)\right)} \]
                            3. Step-by-step derivation
                              1. Applied rewrites26.2%

                                \[\leadsto \frac{1}{r \cdot \mathsf{fma}\left(4, s \cdot \pi, r \cdot \mathsf{fma}\left(-8, r \cdot \mathsf{fma}\left(-0.2222222222222222, \frac{\pi}{s}, 0.1388888888888889 \cdot \frac{\pi}{s}\right), 2.6666666666666665 \cdot \pi\right)\right)} \]
                              2. Applied rewrites26.8%

                                \[\leadsto \frac{1}{\mathsf{fma}\left(4 \cdot s, \pi, \mathsf{fma}\left(-8 \cdot r, \frac{\pi}{s} \cdot -0.08333333333333333, 2.6666666666666665 \cdot \pi\right) \cdot r\right) \cdot r} \]
                            4. Recombined 2 regimes into one program.
                            5. Add Preprocessing

                            Alternative 6: 95.5% accurate, 0.6× speedup?

                            \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                            \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{r \cdot \mathsf{fma}\left(r, \mathsf{fma}\left(-8 \cdot r, \frac{\pi}{s} \cdot -0.08333333333333333, 2.6666666666666665 \cdot \pi\right), \left(\pi \cdot s\right) \cdot 4\right)}\\ \end{array} \]
                            (FPCore (s r)
                              :precision binary32
                              :pre (and (and (<= 0.0 s) (<= s 256.0))
                                 (and (< 1e-6 r) (< r 1000000.0)))
                              (if (<=
                                 (+
                                  (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                  (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                 0.0)
                              (/ 0.0 (* r (* s PI)))
                              (/
                               1.0
                               (*
                                r
                                (fma
                                 r
                                 (fma
                                  (* -8.0 r)
                                  (* (/ PI s) -0.08333333333333333)
                                  (* 2.6666666666666665 PI))
                                 (* (* PI s) 4.0))))))
                            float code(float s, float r) {
                            	float tmp;
                            	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.0f) {
                            		tmp = 0.0f / (r * (s * ((float) M_PI)));
                            	} else {
                            		tmp = 1.0f / (r * fmaf(r, fmaf((-8.0f * r), ((((float) M_PI) / s) * -0.08333333333333333f), (2.6666666666666665f * ((float) M_PI))), ((((float) M_PI) * s) * 4.0f)));
                            	}
                            	return tmp;
                            }
                            
                            function code(s, r)
                            	tmp = Float32(0.0)
                            	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.0))
                            		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                            	else
                            		tmp = Float32(Float32(1.0) / Float32(r * fma(r, fma(Float32(Float32(-8.0) * r), Float32(Float32(Float32(pi) / s) * Float32(-0.08333333333333333)), Float32(Float32(2.6666666666666665) * Float32(pi))), Float32(Float32(Float32(pi) * s) * Float32(4.0)))));
                            	end
                            	return tmp
                            end
                            
                            \begin{array}{l}
                            \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\
                            \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;\frac{1}{r \cdot \mathsf{fma}\left(r, \mathsf{fma}\left(-8 \cdot r, \frac{\pi}{s} \cdot -0.08333333333333333, 2.6666666666666665 \cdot \pi\right), \left(\pi \cdot s\right) \cdot 4\right)}\\
                            
                            
                            \end{array}
                            
                            Derivation
                            1. Split input into 2 regimes
                            2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.0

                              1. Initial program 99.6%

                                \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                              2. Taylor expanded in s around inf

                                \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                              3. Step-by-step derivation
                                1. Applied rewrites8.8%

                                  \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                2. Taylor expanded in undef-var around zero

                                  \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                3. Step-by-step derivation
                                  1. Applied rewrites89.1%

                                    \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                  if 0.0 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                  1. Initial program 99.6%

                                    \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                  2. Taylor expanded in s around 0

                                    \[\leadsto \frac{\frac{1}{8} \cdot \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi} + \frac{1}{8} \cdot \frac{e^{\frac{-1}{3} \cdot \frac{r}{s}}}{r \cdot \pi}}{s} \]
                                  3. Step-by-step derivation
                                    1. Applied rewrites99.5%

                                      \[\leadsto \frac{\mathsf{fma}\left(0.125, \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi}, 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \pi}\right)}{s} \]
                                    2. Step-by-step derivation
                                      1. Applied rewrites99.5%

                                        \[\leadsto \frac{1}{\frac{s}{0.125 \cdot \frac{e^{\frac{-r}{s}} + e^{-0.3333333333333333 \cdot \frac{r}{s}}}{\pi \cdot r}}} \]
                                      2. Taylor expanded in r around 0

                                        \[\leadsto \frac{1}{r \cdot \left(4 \cdot \left(s \cdot \pi\right) + r \cdot \left(-8 \cdot \left(r \cdot \left(\frac{-2}{9} \cdot \frac{\pi}{s} + \frac{5}{36} \cdot \frac{\pi}{s}\right)\right) + \frac{8}{3} \cdot \pi\right)\right)} \]
                                      3. Step-by-step derivation
                                        1. Applied rewrites26.2%

                                          \[\leadsto \frac{1}{r \cdot \mathsf{fma}\left(4, s \cdot \pi, r \cdot \mathsf{fma}\left(-8, r \cdot \mathsf{fma}\left(-0.2222222222222222, \frac{\pi}{s}, 0.1388888888888889 \cdot \frac{\pi}{s}\right), 2.6666666666666665 \cdot \pi\right)\right)} \]
                                        2. Step-by-step derivation
                                          1. Applied rewrites26.8%

                                            \[\leadsto \frac{1}{r \cdot \mathsf{fma}\left(r, \mathsf{fma}\left(-8 \cdot r, \frac{\pi}{s} \cdot -0.08333333333333333, 2.6666666666666665 \cdot \pi\right), \left(\pi \cdot s\right) \cdot 4\right)} \]
                                        3. Recombined 2 regimes into one program.
                                        4. Add Preprocessing

                                        Alternative 7: 94.6% accurate, 0.7× speedup?

                                        \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                        \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{r \cdot \mathsf{fma}\left(4 \cdot s, \pi, 2.6666666666666665 \cdot \left(\pi \cdot r\right)\right)}\\ \end{array} \]
                                        (FPCore (s r)
                                          :precision binary32
                                          :pre (and (and (<= 0.0 s) (<= s 256.0))
                                             (and (< 1e-6 r) (< r 1000000.0)))
                                          (if (<=
                                             (+
                                              (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                              (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                             0.0)
                                          (/ 0.0 (* r (* s PI)))
                                          (/ 1.0 (* r (fma (* 4.0 s) PI (* 2.6666666666666665 (* PI r)))))))
                                        float code(float s, float r) {
                                        	float tmp;
                                        	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.0f) {
                                        		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                        	} else {
                                        		tmp = 1.0f / (r * fmaf((4.0f * s), ((float) M_PI), (2.6666666666666665f * (((float) M_PI) * r))));
                                        	}
                                        	return tmp;
                                        }
                                        
                                        function code(s, r)
                                        	tmp = Float32(0.0)
                                        	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.0))
                                        		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                        	else
                                        		tmp = Float32(Float32(1.0) / Float32(r * fma(Float32(Float32(4.0) * s), Float32(pi), Float32(Float32(2.6666666666666665) * Float32(Float32(pi) * r)))));
                                        	end
                                        	return tmp
                                        end
                                        
                                        \begin{array}{l}
                                        \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\
                                        \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                        
                                        \mathbf{else}:\\
                                        \;\;\;\;\frac{1}{r \cdot \mathsf{fma}\left(4 \cdot s, \pi, 2.6666666666666665 \cdot \left(\pi \cdot r\right)\right)}\\
                                        
                                        
                                        \end{array}
                                        
                                        Derivation
                                        1. Split input into 2 regimes
                                        2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.0

                                          1. Initial program 99.6%

                                            \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                          2. Taylor expanded in s around inf

                                            \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                          3. Step-by-step derivation
                                            1. Applied rewrites8.8%

                                              \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                            2. Taylor expanded in undef-var around zero

                                              \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                            3. Step-by-step derivation
                                              1. Applied rewrites89.1%

                                                \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                              if 0.0 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                              1. Initial program 99.6%

                                                \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                              2. Taylor expanded in s around 0

                                                \[\leadsto \frac{\frac{1}{8} \cdot \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi} + \frac{1}{8} \cdot \frac{e^{\frac{-1}{3} \cdot \frac{r}{s}}}{r \cdot \pi}}{s} \]
                                              3. Step-by-step derivation
                                                1. Applied rewrites99.5%

                                                  \[\leadsto \frac{\mathsf{fma}\left(0.125, \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi}, 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \pi}\right)}{s} \]
                                                2. Step-by-step derivation
                                                  1. Applied rewrites99.5%

                                                    \[\leadsto \frac{1}{\frac{s}{0.125 \cdot \frac{e^{\frac{-r}{s}} + e^{-0.3333333333333333 \cdot \frac{r}{s}}}{\pi \cdot r}}} \]
                                                  2. Taylor expanded in r around 0

                                                    \[\leadsto \frac{1}{r \cdot \left(\frac{8}{3} \cdot \left(r \cdot \pi\right) + 4 \cdot \left(s \cdot \pi\right)\right)} \]
                                                  3. Step-by-step derivation
                                                    1. Applied rewrites12.1%

                                                      \[\leadsto \frac{1}{r \cdot \mathsf{fma}\left(2.6666666666666665, r \cdot \pi, 4 \cdot \left(s \cdot \pi\right)\right)} \]
                                                    2. Step-by-step derivation
                                                      1. Applied rewrites12.1%

                                                        \[\leadsto \frac{1}{r \cdot \mathsf{fma}\left(4 \cdot s, \pi, 2.6666666666666665 \cdot \left(\pi \cdot r\right)\right)} \]
                                                    3. Recombined 2 regimes into one program.
                                                    4. Add Preprocessing

                                                    Alternative 8: 94.6% accurate, 0.7× speedup?

                                                    \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                    \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{r \cdot \mathsf{fma}\left(2.6666666666666665, r \cdot \pi, 4 \cdot \left(s \cdot \pi\right)\right)}\\ \end{array} \]
                                                    (FPCore (s r)
                                                      :precision binary32
                                                      :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                         (and (< 1e-6 r) (< r 1000000.0)))
                                                      (if (<=
                                                         (+
                                                          (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                                          (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                                         0.0)
                                                      (/ 0.0 (* r (* s PI)))
                                                      (/ 1.0 (* r (fma 2.6666666666666665 (* r PI) (* 4.0 (* s PI)))))))
                                                    float code(float s, float r) {
                                                    	float tmp;
                                                    	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.0f) {
                                                    		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                                    	} else {
                                                    		tmp = 1.0f / (r * fmaf(2.6666666666666665f, (r * ((float) M_PI)), (4.0f * (s * ((float) M_PI)))));
                                                    	}
                                                    	return tmp;
                                                    }
                                                    
                                                    function code(s, r)
                                                    	tmp = Float32(0.0)
                                                    	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.0))
                                                    		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                                    	else
                                                    		tmp = Float32(Float32(1.0) / Float32(r * fma(Float32(2.6666666666666665), Float32(r * Float32(pi)), Float32(Float32(4.0) * Float32(s * Float32(pi))))));
                                                    	end
                                                    	return tmp
                                                    end
                                                    
                                                    \begin{array}{l}
                                                    \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\
                                                    \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                                    
                                                    \mathbf{else}:\\
                                                    \;\;\;\;\frac{1}{r \cdot \mathsf{fma}\left(2.6666666666666665, r \cdot \pi, 4 \cdot \left(s \cdot \pi\right)\right)}\\
                                                    
                                                    
                                                    \end{array}
                                                    
                                                    Derivation
                                                    1. Split input into 2 regimes
                                                    2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.0

                                                      1. Initial program 99.6%

                                                        \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                      2. Taylor expanded in s around inf

                                                        \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                      3. Step-by-step derivation
                                                        1. Applied rewrites8.8%

                                                          \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                        2. Taylor expanded in undef-var around zero

                                                          \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                                        3. Step-by-step derivation
                                                          1. Applied rewrites89.1%

                                                            \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                                          if 0.0 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                                          1. Initial program 99.6%

                                                            \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                          2. Taylor expanded in s around 0

                                                            \[\leadsto \frac{\frac{1}{8} \cdot \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi} + \frac{1}{8} \cdot \frac{e^{\frac{-1}{3} \cdot \frac{r}{s}}}{r \cdot \pi}}{s} \]
                                                          3. Step-by-step derivation
                                                            1. Applied rewrites99.5%

                                                              \[\leadsto \frac{\mathsf{fma}\left(0.125, \frac{e^{-1 \cdot \frac{r}{s}}}{r \cdot \pi}, 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \pi}\right)}{s} \]
                                                            2. Step-by-step derivation
                                                              1. Applied rewrites99.5%

                                                                \[\leadsto \frac{1}{\frac{s}{0.125 \cdot \frac{e^{\frac{-r}{s}} + e^{-0.3333333333333333 \cdot \frac{r}{s}}}{\pi \cdot r}}} \]
                                                              2. Taylor expanded in r around 0

                                                                \[\leadsto \frac{1}{r \cdot \left(\frac{8}{3} \cdot \left(r \cdot \pi\right) + 4 \cdot \left(s \cdot \pi\right)\right)} \]
                                                              3. Step-by-step derivation
                                                                1. Applied rewrites12.1%

                                                                  \[\leadsto \frac{1}{r \cdot \mathsf{fma}\left(2.6666666666666665, r \cdot \pi, 4 \cdot \left(s \cdot \pi\right)\right)} \]
                                                              4. Recombined 2 regimes into one program.
                                                              5. Add Preprocessing

                                                              Alternative 9: 93.5% accurate, 1.4× speedup?

                                                              \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                              \[\mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{6 \cdot \left(r \cdot \left(s \cdot \pi\right)\right)}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                              (FPCore (s r)
                                                                :precision binary32
                                                                :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                   (and (< 1e-6 r) (< r 1000000.0)))
                                                                (fma
                                                               0.75
                                                               (/ (exp (/ r (* -3.0 s))) (* 6.0 (* r (* s PI))))
                                                               (/ 0.0 (* (* (+ PI PI) s) r))))
                                                              float code(float s, float r) {
                                                              	return fmaf(0.75f, (expf((r / (-3.0f * s))) / (6.0f * (r * (s * ((float) M_PI))))), (0.0f / (((((float) M_PI) + ((float) M_PI)) * s) * r)));
                                                              }
                                                              
                                                              function code(s, r)
                                                              	return fma(Float32(0.75), Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) / Float32(Float32(6.0) * Float32(r * Float32(s * Float32(pi))))), Float32(Float32(0.0) / Float32(Float32(Float32(Float32(pi) + Float32(pi)) * s) * r)))
                                                              end
                                                              
                                                              \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{6 \cdot \left(r \cdot \left(s \cdot \pi\right)\right)}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right)
                                                              
                                                              Derivation
                                                              1. Initial program 99.6%

                                                                \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                              2. Taylor expanded in s around inf

                                                                \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                              3. Step-by-step derivation
                                                                1. Applied rewrites9.0%

                                                                  \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                2. Taylor expanded in undef-var around zero

                                                                  \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                3. Step-by-step derivation
                                                                  1. Applied rewrites93.5%

                                                                    \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                  2. Applied rewrites93.5%

                                                                    \[\leadsto \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                  3. Taylor expanded in s around 0

                                                                    \[\leadsto \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{6 \cdot \left(r \cdot \left(s \cdot \pi\right)\right)}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                  4. Step-by-step derivation
                                                                    1. Applied rewrites93.5%

                                                                      \[\leadsto \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{6 \cdot \left(r \cdot \left(s \cdot \pi\right)\right)}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                    2. Add Preprocessing

                                                                    Alternative 10: 93.5% accurate, 1.5× speedup?

                                                                    \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                    \[\frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{\frac{r}{-3 \cdot s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                    (FPCore (s r)
                                                                      :precision binary32
                                                                      :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                         (and (< 1e-6 r) (< r 1000000.0)))
                                                                      (+
                                                                     (/ 0.0 (* (* (* 2.0 PI) s) r))
                                                                     (* 0.125 (/ (exp (/ r (* -3.0 s))) (* r (* s PI))))))
                                                                    float code(float s, float r) {
                                                                    	return (0.0f / (((2.0f * ((float) M_PI)) * s) * r)) + (0.125f * (expf((r / (-3.0f * s))) / (r * (s * ((float) M_PI)))));
                                                                    }
                                                                    
                                                                    function code(s, r)
                                                                    	return Float32(Float32(Float32(0.0) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(0.125) * Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) / Float32(r * Float32(s * Float32(pi))))))
                                                                    end
                                                                    
                                                                    function tmp = code(s, r)
                                                                    	tmp = (single(0.0) / (((single(2.0) * single(pi)) * s) * r)) + (single(0.125) * (exp((r / (single(-3.0) * s))) / (r * (s * single(pi)))));
                                                                    end
                                                                    
                                                                    \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{\frac{r}{-3 \cdot s}}}{r \cdot \left(s \cdot \pi\right)}
                                                                    
                                                                    Derivation
                                                                    1. Initial program 99.6%

                                                                      \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                    2. Taylor expanded in s around inf

                                                                      \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                    3. Step-by-step derivation
                                                                      1. Applied rewrites9.0%

                                                                        \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                      2. Taylor expanded in undef-var around zero

                                                                        \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                      3. Step-by-step derivation
                                                                        1. Applied rewrites93.5%

                                                                          \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                        2. Taylor expanded in s around 0

                                                                          \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{1}{8} \cdot \frac{e^{\frac{-1}{3} \cdot \frac{r}{s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                        3. Step-by-step derivation
                                                                          1. Applied rewrites93.5%

                                                                            \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                          2. Step-by-step derivation
                                                                            1. Applied rewrites93.5%

                                                                              \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{\frac{r}{-3 \cdot s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                            2. Add Preprocessing

                                                                            Alternative 11: 93.5% accurate, 1.5× speedup?

                                                                            \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                            \[\mathsf{fma}\left(\frac{0.75}{18.84955596923828 \cdot s}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                            (FPCore (s r)
                                                                              :precision binary32
                                                                              :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                 (and (< 1e-6 r) (< r 1000000.0)))
                                                                              (fma
                                                                             (/ 0.75 (* 18.84955596923828 s))
                                                                             (/ (exp (/ r (* -3.0 s))) r)
                                                                             (/ 0.0 (* (* (+ PI PI) s) r))))
                                                                            float code(float s, float r) {
                                                                            	return fmaf((0.75f / (18.84955596923828f * s)), (expf((r / (-3.0f * s))) / r), (0.0f / (((((float) M_PI) + ((float) M_PI)) * s) * r)));
                                                                            }
                                                                            
                                                                            function code(s, r)
                                                                            	return fma(Float32(Float32(0.75) / Float32(Float32(18.84955596923828) * s)), Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) / r), Float32(Float32(0.0) / Float32(Float32(Float32(Float32(pi) + Float32(pi)) * s) * r)))
                                                                            end
                                                                            
                                                                            \mathsf{fma}\left(\frac{0.75}{18.84955596923828 \cdot s}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right)
                                                                            
                                                                            Derivation
                                                                            1. Initial program 99.6%

                                                                              \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                            2. Taylor expanded in s around inf

                                                                              \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                            3. Step-by-step derivation
                                                                              1. Applied rewrites9.0%

                                                                                \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                              2. Taylor expanded in undef-var around zero

                                                                                \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                              3. Step-by-step derivation
                                                                                1. Applied rewrites93.5%

                                                                                  \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                2. Applied rewrites93.5%

                                                                                  \[\leadsto \mathsf{fma}\left(\frac{0.75}{\left(6 \cdot \pi\right) \cdot s}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                3. Evaluated real constant93.5%

                                                                                  \[\leadsto \mathsf{fma}\left(\frac{0.75}{18.84955596923828 \cdot s}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                4. Add Preprocessing

                                                                                Alternative 12: 93.5% accurate, 1.5× speedup?

                                                                                \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                \[\mathsf{fma}\left(\frac{0.125}{s \cdot \pi}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                (FPCore (s r)
                                                                                  :precision binary32
                                                                                  :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                     (and (< 1e-6 r) (< r 1000000.0)))
                                                                                  (fma
                                                                                 (/ 0.125 (* s PI))
                                                                                 (/ (exp (/ r (* -3.0 s))) r)
                                                                                 (/ 0.0 (* (* (+ PI PI) s) r))))
                                                                                float code(float s, float r) {
                                                                                	return fmaf((0.125f / (s * ((float) M_PI))), (expf((r / (-3.0f * s))) / r), (0.0f / (((((float) M_PI) + ((float) M_PI)) * s) * r)));
                                                                                }
                                                                                
                                                                                function code(s, r)
                                                                                	return fma(Float32(Float32(0.125) / Float32(s * Float32(pi))), Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) / r), Float32(Float32(0.0) / Float32(Float32(Float32(Float32(pi) + Float32(pi)) * s) * r)))
                                                                                end
                                                                                
                                                                                \mathsf{fma}\left(\frac{0.125}{s \cdot \pi}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right)
                                                                                
                                                                                Derivation
                                                                                1. Initial program 99.6%

                                                                                  \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                2. Taylor expanded in s around inf

                                                                                  \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                3. Step-by-step derivation
                                                                                  1. Applied rewrites9.0%

                                                                                    \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                  2. Taylor expanded in undef-var around zero

                                                                                    \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                  3. Step-by-step derivation
                                                                                    1. Applied rewrites93.5%

                                                                                      \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                    2. Applied rewrites93.5%

                                                                                      \[\leadsto \mathsf{fma}\left(\frac{0.75}{\left(6 \cdot \pi\right) \cdot s}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                    3. Taylor expanded in s around 0

                                                                                      \[\leadsto \mathsf{fma}\left(\frac{\frac{1}{8}}{s \cdot \pi}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                    4. Step-by-step derivation
                                                                                      1. Applied rewrites93.5%

                                                                                        \[\leadsto \mathsf{fma}\left(\frac{0.125}{s \cdot \pi}, \frac{e^{\frac{r}{-3 \cdot s}}}{r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                      2. Add Preprocessing

                                                                                      Alternative 13: 93.5% accurate, 1.5× speedup?

                                                                                      \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                      \[\mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{\left(18.84955596923828 \cdot s\right) \cdot r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                      (FPCore (s r)
                                                                                        :precision binary32
                                                                                        :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                           (and (< 1e-6 r) (< r 1000000.0)))
                                                                                        (fma
                                                                                       0.75
                                                                                       (/ (exp (/ r (* -3.0 s))) (* (* 18.84955596923828 s) r))
                                                                                       (/ 0.0 (* (* (+ PI PI) s) r))))
                                                                                      float code(float s, float r) {
                                                                                      	return fmaf(0.75f, (expf((r / (-3.0f * s))) / ((18.84955596923828f * s) * r)), (0.0f / (((((float) M_PI) + ((float) M_PI)) * s) * r)));
                                                                                      }
                                                                                      
                                                                                      function code(s, r)
                                                                                      	return fma(Float32(0.75), Float32(exp(Float32(r / Float32(Float32(-3.0) * s))) / Float32(Float32(Float32(18.84955596923828) * s) * r)), Float32(Float32(0.0) / Float32(Float32(Float32(Float32(pi) + Float32(pi)) * s) * r)))
                                                                                      end
                                                                                      
                                                                                      \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{\left(18.84955596923828 \cdot s\right) \cdot r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right)
                                                                                      
                                                                                      Derivation
                                                                                      1. Initial program 99.6%

                                                                                        \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                      2. Taylor expanded in s around inf

                                                                                        \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                      3. Step-by-step derivation
                                                                                        1. Applied rewrites9.0%

                                                                                          \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                        2. Taylor expanded in undef-var around zero

                                                                                          \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                        3. Step-by-step derivation
                                                                                          1. Applied rewrites93.5%

                                                                                            \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                          2. Applied rewrites93.5%

                                                                                            \[\leadsto \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                          3. Evaluated real constant93.5%

                                                                                            \[\leadsto \mathsf{fma}\left(0.75, \frac{e^{\frac{r}{-3 \cdot s}}}{\left(18.84955596923828 \cdot s\right) \cdot r}, \frac{0}{\left(\left(\pi + \pi\right) \cdot s\right) \cdot r}\right) \]
                                                                                          4. Add Preprocessing

                                                                                          Alternative 14: 93.5% accurate, 1.6× speedup?

                                                                                          \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                          \[\frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(18.84955596923828 \cdot s\right) \cdot r} \]
                                                                                          (FPCore (s r)
                                                                                            :precision binary32
                                                                                            :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                               (and (< 1e-6 r) (< r 1000000.0)))
                                                                                            (+
                                                                                           (/ 0.0 (* (* 6.2831854820251465 s) r))
                                                                                           (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* 18.84955596923828 s) r))))
                                                                                          float code(float s, float r) {
                                                                                          	return (0.0f / ((6.2831854820251465f * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / ((18.84955596923828f * s) * r));
                                                                                          }
                                                                                          
                                                                                          real(4) function code(s, r)
                                                                                          use fmin_fmax_functions
                                                                                              real(4), intent (in) :: s
                                                                                              real(4), intent (in) :: r
                                                                                              code = (0.0e0 / ((6.2831854820251465e0 * s) * r)) + ((0.75e0 * exp((-r / (3.0e0 * s)))) / ((18.84955596923828e0 * s) * r))
                                                                                          end function
                                                                                          
                                                                                          function code(s, r)
                                                                                          	return Float32(Float32(Float32(0.0) / Float32(Float32(Float32(6.2831854820251465) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(18.84955596923828) * s) * r)))
                                                                                          end
                                                                                          
                                                                                          function tmp = code(s, r)
                                                                                          	tmp = (single(0.0) / ((single(6.2831854820251465) * s) * r)) + ((single(0.75) * exp((-r / (single(3.0) * s)))) / ((single(18.84955596923828) * s) * r));
                                                                                          end
                                                                                          
                                                                                          \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(18.84955596923828 \cdot s\right) \cdot r}
                                                                                          
                                                                                          Derivation
                                                                                          1. Initial program 99.6%

                                                                                            \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                          2. Taylor expanded in s around inf

                                                                                            \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                          3. Step-by-step derivation
                                                                                            1. Applied rewrites9.0%

                                                                                              \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                            2. Taylor expanded in undef-var around zero

                                                                                              \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                            3. Step-by-step derivation
                                                                                              1. Applied rewrites93.5%

                                                                                                \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                              2. Evaluated real constant93.5%

                                                                                                \[\leadsto \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                              3. Evaluated real constant93.5%

                                                                                                \[\leadsto \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(18.84955596923828 \cdot s\right) \cdot r} \]
                                                                                              4. Add Preprocessing

                                                                                              Alternative 15: 93.5% accurate, 1.6× speedup?

                                                                                              \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                              \[\frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                              (FPCore (s r)
                                                                                                :precision binary32
                                                                                                :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                   (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                (+
                                                                                               (/ 0.0 (* (* 6.2831854820251465 s) r))
                                                                                               (* 0.125 (/ (exp (* -0.3333333333333333 (/ r s))) (* r (* s PI))))))
                                                                                              float code(float s, float r) {
                                                                                              	return (0.0f / ((6.2831854820251465f * s) * r)) + (0.125f * (expf((-0.3333333333333333f * (r / s))) / (r * (s * ((float) M_PI)))));
                                                                                              }
                                                                                              
                                                                                              function code(s, r)
                                                                                              	return Float32(Float32(Float32(0.0) / Float32(Float32(Float32(6.2831854820251465) * s) * r)) + Float32(Float32(0.125) * Float32(exp(Float32(Float32(-0.3333333333333333) * Float32(r / s))) / Float32(r * Float32(s * Float32(pi))))))
                                                                                              end
                                                                                              
                                                                                              function tmp = code(s, r)
                                                                                              	tmp = (single(0.0) / ((single(6.2831854820251465) * s) * r)) + (single(0.125) * (exp((single(-0.3333333333333333) * (r / s))) / (r * (s * single(pi)))));
                                                                                              end
                                                                                              
                                                                                              \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \left(s \cdot \pi\right)}
                                                                                              
                                                                                              Derivation
                                                                                              1. Initial program 99.6%

                                                                                                \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                              2. Taylor expanded in s around inf

                                                                                                \[\leadsto \frac{\frac{1}{4}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                              3. Step-by-step derivation
                                                                                                1. Applied rewrites9.0%

                                                                                                  \[\leadsto \frac{0.25}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                2. Taylor expanded in undef-var around zero

                                                                                                  \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                3. Step-by-step derivation
                                                                                                  1. Applied rewrites93.5%

                                                                                                    \[\leadsto \frac{0}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                  2. Evaluated real constant93.5%

                                                                                                    \[\leadsto \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                  3. Taylor expanded in s around 0

                                                                                                    \[\leadsto \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + \frac{1}{8} \cdot \frac{e^{\frac{-1}{3} \cdot \frac{r}{s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                  4. Step-by-step derivation
                                                                                                    1. Applied rewrites93.5%

                                                                                                      \[\leadsto \frac{0}{\left(6.2831854820251465 \cdot s\right) \cdot r} + 0.125 \cdot \frac{e^{-0.3333333333333333 \cdot \frac{r}{s}}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                    2. Add Preprocessing

                                                                                                    Alternative 16: 93.5% accurate, 0.8× speedup?

                                                                                                    \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                                    \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0.004000000189989805:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{0.25}{r}, 0.31830987334251404, \frac{-0.16666666666666666}{s \cdot \pi}\right)}{s}\\ \end{array} \]
                                                                                                    (FPCore (s r)
                                                                                                      :precision binary32
                                                                                                      :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                         (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                      (if (<=
                                                                                                         (+
                                                                                                          (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                                                                                          (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                                                                                         0.004000000189989805)
                                                                                                      (/ 0.0 (* r (* s PI)))
                                                                                                      (/
                                                                                                       (fma
                                                                                                        (/ 0.25 r)
                                                                                                        0.31830987334251404
                                                                                                        (/ -0.16666666666666666 (* s PI)))
                                                                                                       s)))
                                                                                                    float code(float s, float r) {
                                                                                                    	float tmp;
                                                                                                    	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.004000000189989805f) {
                                                                                                    		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                                                                                    	} else {
                                                                                                    		tmp = fmaf((0.25f / r), 0.31830987334251404f, (-0.16666666666666666f / (s * ((float) M_PI)))) / s;
                                                                                                    	}
                                                                                                    	return tmp;
                                                                                                    }
                                                                                                    
                                                                                                    function code(s, r)
                                                                                                    	tmp = Float32(0.0)
                                                                                                    	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.004000000189989805))
                                                                                                    		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                                                                                    	else
                                                                                                    		tmp = Float32(fma(Float32(Float32(0.25) / r), Float32(0.31830987334251404), Float32(Float32(-0.16666666666666666) / Float32(s * Float32(pi)))) / s);
                                                                                                    	end
                                                                                                    	return tmp
                                                                                                    end
                                                                                                    
                                                                                                    \begin{array}{l}
                                                                                                    \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0.004000000189989805:\\
                                                                                                    \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                                                                                    
                                                                                                    \mathbf{else}:\\
                                                                                                    \;\;\;\;\frac{\mathsf{fma}\left(\frac{0.25}{r}, 0.31830987334251404, \frac{-0.16666666666666666}{s \cdot \pi}\right)}{s}\\
                                                                                                    
                                                                                                    
                                                                                                    \end{array}
                                                                                                    
                                                                                                    Derivation
                                                                                                    1. Split input into 2 regimes
                                                                                                    2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.00400000019

                                                                                                      1. Initial program 99.6%

                                                                                                        \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                      2. Taylor expanded in s around inf

                                                                                                        \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                      3. Step-by-step derivation
                                                                                                        1. Applied rewrites8.8%

                                                                                                          \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                        2. Taylor expanded in undef-var around zero

                                                                                                          \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                        3. Step-by-step derivation
                                                                                                          1. Applied rewrites89.1%

                                                                                                            \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                                                                                          if 0.00400000019 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                                                                                          1. Initial program 99.6%

                                                                                                            \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                          2. Taylor expanded in s around inf

                                                                                                            \[\leadsto \frac{\frac{1}{4} \cdot \frac{1}{r \cdot \pi} - \frac{1}{6} \cdot \frac{1}{s \cdot \pi}}{s} \]
                                                                                                          3. Step-by-step derivation
                                                                                                            1. Applied rewrites8.8%

                                                                                                              \[\leadsto \frac{0.25 \cdot \frac{1}{r \cdot \pi} - 0.16666666666666666 \cdot \frac{1}{s \cdot \pi}}{s} \]
                                                                                                            2. Step-by-step derivation
                                                                                                              1. Applied rewrites8.8%

                                                                                                                \[\leadsto \frac{\mathsf{fma}\left(\frac{0.25}{r}, \frac{1}{\pi}, -\frac{0.16666666666666666}{\pi \cdot s}\right)}{s} \]
                                                                                                              2. Evaluated real constant8.8%

                                                                                                                \[\leadsto \frac{\mathsf{fma}\left(\frac{0.25}{r}, 0.31830987334251404, -\frac{0.16666666666666666}{\pi \cdot s}\right)}{s} \]
                                                                                                              3. Taylor expanded in s around 0

                                                                                                                \[\leadsto \frac{\mathsf{fma}\left(\frac{0.25}{r}, 0.31830987334251404, \frac{\frac{-1}{6}}{s \cdot \pi}\right)}{s} \]
                                                                                                              4. Step-by-step derivation
                                                                                                                1. Applied rewrites8.8%

                                                                                                                  \[\leadsto \frac{\mathsf{fma}\left(\frac{0.25}{r}, 0.31830987334251404, \frac{-0.16666666666666666}{s \cdot \pi}\right)}{s} \]
                                                                                                              5. Recombined 2 regimes into one program.
                                                                                                              6. Add Preprocessing

                                                                                                              Alternative 17: 93.5% accurate, 0.8× speedup?

                                                                                                              \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                                              \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0.004000000189989805:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(-0.16666666666666666, \frac{r}{s}, 0.25\right)}{\left(s \cdot r\right) \cdot \pi}\\ \end{array} \]
                                                                                                              (FPCore (s r)
                                                                                                                :precision binary32
                                                                                                                :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                                   (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                                (if (<=
                                                                                                                   (+
                                                                                                                    (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                                                                                                    (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                                                                                                   0.004000000189989805)
                                                                                                                (/ 0.0 (* r (* s PI)))
                                                                                                                (/ (fma -0.16666666666666666 (/ r s) 0.25) (* (* s r) PI))))
                                                                                                              float code(float s, float r) {
                                                                                                              	float tmp;
                                                                                                              	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.004000000189989805f) {
                                                                                                              		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                                                                                              	} else {
                                                                                                              		tmp = fmaf(-0.16666666666666666f, (r / s), 0.25f) / ((s * r) * ((float) M_PI));
                                                                                                              	}
                                                                                                              	return tmp;
                                                                                                              }
                                                                                                              
                                                                                                              function code(s, r)
                                                                                                              	tmp = Float32(0.0)
                                                                                                              	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.004000000189989805))
                                                                                                              		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                                                                                              	else
                                                                                                              		tmp = Float32(fma(Float32(-0.16666666666666666), Float32(r / s), Float32(0.25)) / Float32(Float32(s * r) * Float32(pi)));
                                                                                                              	end
                                                                                                              	return tmp
                                                                                                              end
                                                                                                              
                                                                                                              \begin{array}{l}
                                                                                                              \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0.004000000189989805:\\
                                                                                                              \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                                                                                              
                                                                                                              \mathbf{else}:\\
                                                                                                              \;\;\;\;\frac{\mathsf{fma}\left(-0.16666666666666666, \frac{r}{s}, 0.25\right)}{\left(s \cdot r\right) \cdot \pi}\\
                                                                                                              
                                                                                                              
                                                                                                              \end{array}
                                                                                                              
                                                                                                              Derivation
                                                                                                              1. Split input into 2 regimes
                                                                                                              2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.00400000019

                                                                                                                1. Initial program 99.6%

                                                                                                                  \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                2. Taylor expanded in s around inf

                                                                                                                  \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                3. Step-by-step derivation
                                                                                                                  1. Applied rewrites8.8%

                                                                                                                    \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                  2. Taylor expanded in undef-var around zero

                                                                                                                    \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                  3. Step-by-step derivation
                                                                                                                    1. Applied rewrites89.1%

                                                                                                                      \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                                                                                                    if 0.00400000019 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                                                                                                    1. Initial program 99.6%

                                                                                                                      \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                    2. Applied rewrites96.4%

                                                                                                                      \[\leadsto \mathsf{fma}\left(\frac{0.75}{s \cdot r}, \frac{e^{\frac{r}{-3 \cdot s}}}{6 \cdot \pi}, \frac{\frac{0.125}{\left(\pi \cdot s\right) \cdot e^{\frac{r}{s}}}}{r}\right) \]
                                                                                                                    3. Applied rewrites99.5%

                                                                                                                      \[\leadsto \frac{\frac{\mathsf{fma}\left(e^{r \cdot \frac{-0.3333333333333333}{s}}, 0.125, \frac{0.125}{e^{\frac{r}{s}}}\right)}{\pi \cdot s}}{r} \]
                                                                                                                    4. Taylor expanded in r around 0

                                                                                                                      \[\leadsto \frac{\frac{\frac{1}{4} + \frac{-1}{6} \cdot \frac{r}{s}}{\pi \cdot s}}{r} \]
                                                                                                                    5. Step-by-step derivation
                                                                                                                      1. Applied rewrites8.8%

                                                                                                                        \[\leadsto \frac{\frac{0.25 + -0.16666666666666666 \cdot \frac{r}{s}}{\pi \cdot s}}{r} \]
                                                                                                                      2. Applied rewrites8.8%

                                                                                                                        \[\leadsto \frac{\mathsf{fma}\left(-0.16666666666666666, \frac{r}{s}, 0.25\right)}{\left(s \cdot r\right) \cdot \pi} \]
                                                                                                                    6. Recombined 2 regimes into one program.
                                                                                                                    7. Add Preprocessing

                                                                                                                    Alternative 18: 93.5% accurate, 0.8× speedup?

                                                                                                                    \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                                                    \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0.004000000189989805:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{0.07957746833562851}{r} - \frac{0.16666666666666666}{\pi \cdot s}}{s}\\ \end{array} \]
                                                                                                                    (FPCore (s r)
                                                                                                                      :precision binary32
                                                                                                                      :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                                         (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                                      (if (<=
                                                                                                                         (+
                                                                                                                          (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                                                                                                          (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                                                                                                         0.004000000189989805)
                                                                                                                      (/ 0.0 (* r (* s PI)))
                                                                                                                      (/
                                                                                                                       (- (/ 0.07957746833562851 r) (/ 0.16666666666666666 (* PI s)))
                                                                                                                       s)))
                                                                                                                    float code(float s, float r) {
                                                                                                                    	float tmp;
                                                                                                                    	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.004000000189989805f) {
                                                                                                                    		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                                                                                                    	} else {
                                                                                                                    		tmp = ((0.07957746833562851f / r) - (0.16666666666666666f / (((float) M_PI) * s))) / s;
                                                                                                                    	}
                                                                                                                    	return tmp;
                                                                                                                    }
                                                                                                                    
                                                                                                                    function code(s, r)
                                                                                                                    	tmp = Float32(0.0)
                                                                                                                    	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.004000000189989805))
                                                                                                                    		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                                                                                                    	else
                                                                                                                    		tmp = Float32(Float32(Float32(Float32(0.07957746833562851) / r) - Float32(Float32(0.16666666666666666) / Float32(Float32(pi) * s))) / s);
                                                                                                                    	end
                                                                                                                    	return tmp
                                                                                                                    end
                                                                                                                    
                                                                                                                    function tmp_2 = code(s, r)
                                                                                                                    	tmp = single(0.0);
                                                                                                                    	if ((((single(0.25) * exp((-r / s))) / (((single(2.0) * single(pi)) * s) * r)) + ((single(0.75) * exp((-r / (single(3.0) * s)))) / (((single(6.0) * single(pi)) * s) * r))) <= single(0.004000000189989805))
                                                                                                                    		tmp = single(0.0) / (r * (s * single(pi)));
                                                                                                                    	else
                                                                                                                    		tmp = ((single(0.07957746833562851) / r) - (single(0.16666666666666666) / (single(pi) * s))) / s;
                                                                                                                    	end
                                                                                                                    	tmp_2 = tmp;
                                                                                                                    end
                                                                                                                    
                                                                                                                    \begin{array}{l}
                                                                                                                    \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0.004000000189989805:\\
                                                                                                                    \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                                                                                                    
                                                                                                                    \mathbf{else}:\\
                                                                                                                    \;\;\;\;\frac{\frac{0.07957746833562851}{r} - \frac{0.16666666666666666}{\pi \cdot s}}{s}\\
                                                                                                                    
                                                                                                                    
                                                                                                                    \end{array}
                                                                                                                    
                                                                                                                    Derivation
                                                                                                                    1. Split input into 2 regimes
                                                                                                                    2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.00400000019

                                                                                                                      1. Initial program 99.6%

                                                                                                                        \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                      2. Taylor expanded in s around inf

                                                                                                                        \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                      3. Step-by-step derivation
                                                                                                                        1. Applied rewrites8.8%

                                                                                                                          \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                        2. Taylor expanded in undef-var around zero

                                                                                                                          \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                        3. Step-by-step derivation
                                                                                                                          1. Applied rewrites89.1%

                                                                                                                            \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                                                                                                          if 0.00400000019 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                                                                                                          1. Initial program 99.6%

                                                                                                                            \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                          2. Taylor expanded in s around inf

                                                                                                                            \[\leadsto \frac{\frac{1}{4} \cdot \frac{1}{r \cdot \pi} - \frac{1}{6} \cdot \frac{1}{s \cdot \pi}}{s} \]
                                                                                                                          3. Step-by-step derivation
                                                                                                                            1. Applied rewrites8.8%

                                                                                                                              \[\leadsto \frac{0.25 \cdot \frac{1}{r \cdot \pi} - 0.16666666666666666 \cdot \frac{1}{s \cdot \pi}}{s} \]
                                                                                                                            2. Step-by-step derivation
                                                                                                                              1. Applied rewrites8.8%

                                                                                                                                \[\leadsto \frac{\mathsf{fma}\left(\frac{0.25}{r}, \frac{1}{\pi}, -\frac{0.16666666666666666}{\pi \cdot s}\right)}{s} \]
                                                                                                                              2. Evaluated real constant8.8%

                                                                                                                                \[\leadsto \frac{\mathsf{fma}\left(\frac{0.25}{r}, 0.31830987334251404, -\frac{0.16666666666666666}{\pi \cdot s}\right)}{s} \]
                                                                                                                              3. Step-by-step derivation
                                                                                                                                1. Applied rewrites8.8%

                                                                                                                                  \[\leadsto \frac{\frac{0.07957746833562851}{r} - \frac{0.16666666666666666}{\pi \cdot s}}{s} \]
                                                                                                                              4. Recombined 2 regimes into one program.
                                                                                                                              5. Add Preprocessing

                                                                                                                              Alternative 19: 93.1% accurate, 0.8× speedup?

                                                                                                                              \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                                                              \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{0.25}{r}}{\pi \cdot s}\\ \end{array} \]
                                                                                                                              (FPCore (s r)
                                                                                                                                :precision binary32
                                                                                                                                :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                                                   (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                                                (if (<=
                                                                                                                                   (+
                                                                                                                                    (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                                                                                                                    (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                                                                                                                   0.0)
                                                                                                                                (/ 0.0 (* r (* s PI)))
                                                                                                                                (/ (/ 0.25 r) (* PI s))))
                                                                                                                              float code(float s, float r) {
                                                                                                                              	float tmp;
                                                                                                                              	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.0f) {
                                                                                                                              		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                                                                                                              	} else {
                                                                                                                              		tmp = (0.25f / r) / (((float) M_PI) * s);
                                                                                                                              	}
                                                                                                                              	return tmp;
                                                                                                                              }
                                                                                                                              
                                                                                                                              function code(s, r)
                                                                                                                              	tmp = Float32(0.0)
                                                                                                                              	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.0))
                                                                                                                              		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                                                                                                              	else
                                                                                                                              		tmp = Float32(Float32(Float32(0.25) / r) / Float32(Float32(pi) * s));
                                                                                                                              	end
                                                                                                                              	return tmp
                                                                                                                              end
                                                                                                                              
                                                                                                                              function tmp_2 = code(s, r)
                                                                                                                              	tmp = single(0.0);
                                                                                                                              	if ((((single(0.25) * exp((-r / s))) / (((single(2.0) * single(pi)) * s) * r)) + ((single(0.75) * exp((-r / (single(3.0) * s)))) / (((single(6.0) * single(pi)) * s) * r))) <= single(0.0))
                                                                                                                              		tmp = single(0.0) / (r * (s * single(pi)));
                                                                                                                              	else
                                                                                                                              		tmp = (single(0.25) / r) / (single(pi) * s);
                                                                                                                              	end
                                                                                                                              	tmp_2 = tmp;
                                                                                                                              end
                                                                                                                              
                                                                                                                              \begin{array}{l}
                                                                                                                              \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\
                                                                                                                              \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                                                                                                              
                                                                                                                              \mathbf{else}:\\
                                                                                                                              \;\;\;\;\frac{\frac{0.25}{r}}{\pi \cdot s}\\
                                                                                                                              
                                                                                                                              
                                                                                                                              \end{array}
                                                                                                                              
                                                                                                                              Derivation
                                                                                                                              1. Split input into 2 regimes
                                                                                                                              2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.0

                                                                                                                                1. Initial program 99.6%

                                                                                                                                  \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                                2. Taylor expanded in s around inf

                                                                                                                                  \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                3. Step-by-step derivation
                                                                                                                                  1. Applied rewrites8.8%

                                                                                                                                    \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                  2. Taylor expanded in undef-var around zero

                                                                                                                                    \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                  3. Step-by-step derivation
                                                                                                                                    1. Applied rewrites89.1%

                                                                                                                                      \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                                                                                                                    if 0.0 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                                                                                                                    1. Initial program 99.6%

                                                                                                                                      \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                                    2. Taylor expanded in s around inf

                                                                                                                                      \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                    3. Step-by-step derivation
                                                                                                                                      1. Applied rewrites8.8%

                                                                                                                                        \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                      2. Step-by-step derivation
                                                                                                                                        1. Applied rewrites8.8%

                                                                                                                                          \[\leadsto \frac{\frac{0.25}{r}}{\pi \cdot s} \]
                                                                                                                                      3. Recombined 2 regimes into one program.
                                                                                                                                      4. Add Preprocessing

                                                                                                                                      Alternative 20: 93.1% accurate, 0.8× speedup?

                                                                                                                                      \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                                                                      \[\begin{array}{l} \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\ \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.07957746833562851}{s \cdot r}\\ \end{array} \]
                                                                                                                                      (FPCore (s r)
                                                                                                                                        :precision binary32
                                                                                                                                        :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                                                           (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                                                        (if (<=
                                                                                                                                           (+
                                                                                                                                            (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r))
                                                                                                                                            (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r)))
                                                                                                                                           0.0)
                                                                                                                                        (/ 0.0 (* r (* s PI)))
                                                                                                                                        (/ 0.07957746833562851 (* s r))))
                                                                                                                                      float code(float s, float r) {
                                                                                                                                      	float tmp;
                                                                                                                                      	if ((((0.25f * expf((-r / s))) / (((2.0f * ((float) M_PI)) * s) * r)) + ((0.75f * expf((-r / (3.0f * s)))) / (((6.0f * ((float) M_PI)) * s) * r))) <= 0.0f) {
                                                                                                                                      		tmp = 0.0f / (r * (s * ((float) M_PI)));
                                                                                                                                      	} else {
                                                                                                                                      		tmp = 0.07957746833562851f / (s * r);
                                                                                                                                      	}
                                                                                                                                      	return tmp;
                                                                                                                                      }
                                                                                                                                      
                                                                                                                                      function code(s, r)
                                                                                                                                      	tmp = Float32(0.0)
                                                                                                                                      	if (Float32(Float32(Float32(Float32(0.25) * exp(Float32(Float32(-r) / s))) / Float32(Float32(Float32(Float32(2.0) * Float32(pi)) * s) * r)) + Float32(Float32(Float32(0.75) * exp(Float32(Float32(-r) / Float32(Float32(3.0) * s)))) / Float32(Float32(Float32(Float32(6.0) * Float32(pi)) * s) * r))) <= Float32(0.0))
                                                                                                                                      		tmp = Float32(Float32(0.0) / Float32(r * Float32(s * Float32(pi))));
                                                                                                                                      	else
                                                                                                                                      		tmp = Float32(Float32(0.07957746833562851) / Float32(s * r));
                                                                                                                                      	end
                                                                                                                                      	return tmp
                                                                                                                                      end
                                                                                                                                      
                                                                                                                                      function tmp_2 = code(s, r)
                                                                                                                                      	tmp = single(0.0);
                                                                                                                                      	if ((((single(0.25) * exp((-r / s))) / (((single(2.0) * single(pi)) * s) * r)) + ((single(0.75) * exp((-r / (single(3.0) * s)))) / (((single(6.0) * single(pi)) * s) * r))) <= single(0.0))
                                                                                                                                      		tmp = single(0.0) / (r * (s * single(pi)));
                                                                                                                                      	else
                                                                                                                                      		tmp = single(0.07957746833562851) / (s * r);
                                                                                                                                      	end
                                                                                                                                      	tmp_2 = tmp;
                                                                                                                                      end
                                                                                                                                      
                                                                                                                                      \begin{array}{l}
                                                                                                                                      \mathbf{if}\;\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \leq 0:\\
                                                                                                                                      \;\;\;\;\frac{0}{r \cdot \left(s \cdot \pi\right)}\\
                                                                                                                                      
                                                                                                                                      \mathbf{else}:\\
                                                                                                                                      \;\;\;\;\frac{0.07957746833562851}{s \cdot r}\\
                                                                                                                                      
                                                                                                                                      
                                                                                                                                      \end{array}
                                                                                                                                      
                                                                                                                                      Derivation
                                                                                                                                      1. Split input into 2 regimes
                                                                                                                                      2. if (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r))) < 0.0

                                                                                                                                        1. Initial program 99.6%

                                                                                                                                          \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                                        2. Taylor expanded in s around inf

                                                                                                                                          \[\leadsto \frac{\frac{1}{4}}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                        3. Step-by-step derivation
                                                                                                                                          1. Applied rewrites8.8%

                                                                                                                                            \[\leadsto \frac{0.25}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                          2. Taylor expanded in undef-var around zero

                                                                                                                                            \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]
                                                                                                                                          3. Step-by-step derivation
                                                                                                                                            1. Applied rewrites89.1%

                                                                                                                                              \[\leadsto \frac{0}{r \cdot \left(s \cdot \pi\right)} \]

                                                                                                                                            if 0.0 < (+.f32 (/.f32 (*.f32 #s(literal 1/4 binary32) (exp.f32 (/.f32 (neg.f32 r) s))) (*.f32 (*.f32 (*.f32 #s(literal 2 binary32) (PI.f32)) s) r)) (/.f32 (*.f32 #s(literal 3/4 binary32) (exp.f32 (/.f32 (neg.f32 r) (*.f32 #s(literal 3 binary32) s)))) (*.f32 (*.f32 (*.f32 #s(literal 6 binary32) (PI.f32)) s) r)))

                                                                                                                                            1. Initial program 99.6%

                                                                                                                                              \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                                            2. Step-by-step derivation
                                                                                                                                              1. Applied rewrites99.6%

                                                                                                                                                \[\leadsto \frac{\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}}}{\pi}, 0.125, \frac{e^{\frac{-r}{s}}}{\pi} \cdot 0.125\right)}{s \cdot r} \]
                                                                                                                                              2. Taylor expanded in s around inf

                                                                                                                                                \[\leadsto \frac{\frac{\frac{1}{4}}{\pi}}{s \cdot r} \]
                                                                                                                                              3. Step-by-step derivation
                                                                                                                                                1. Applied rewrites8.8%

                                                                                                                                                  \[\leadsto \frac{\frac{0.25}{\pi}}{s \cdot r} \]
                                                                                                                                                2. Evaluated real constant8.8%

                                                                                                                                                  \[\leadsto \frac{0.07957746833562851}{s \cdot r} \]
                                                                                                                                              4. Recombined 2 regimes into one program.
                                                                                                                                              5. Add Preprocessing

                                                                                                                                              Alternative 21: 8.8% accurate, 8.9× speedup?

                                                                                                                                              \[\left(0 \leq s \land s \leq 256\right) \land \left(10^{-6} < r \land r < 1000000\right)\]
                                                                                                                                              \[\frac{0.07957746833562851}{s \cdot r} \]
                                                                                                                                              (FPCore (s r)
                                                                                                                                                :precision binary32
                                                                                                                                                :pre (and (and (<= 0.0 s) (<= s 256.0))
                                                                                                                                                   (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                                                                (/ 0.07957746833562851 (* s r)))
                                                                                                                                              float code(float s, float r) {
                                                                                                                                              	return 0.07957746833562851f / (s * r);
                                                                                                                                              }
                                                                                                                                              
                                                                                                                                              real(4) function code(s, r)
                                                                                                                                              use fmin_fmax_functions
                                                                                                                                                  real(4), intent (in) :: s
                                                                                                                                                  real(4), intent (in) :: r
                                                                                                                                                  code = 0.07957746833562851e0 / (s * r)
                                                                                                                                              end function
                                                                                                                                              
                                                                                                                                              function code(s, r)
                                                                                                                                              	return Float32(Float32(0.07957746833562851) / Float32(s * r))
                                                                                                                                              end
                                                                                                                                              
                                                                                                                                              function tmp = code(s, r)
                                                                                                                                              	tmp = single(0.07957746833562851) / (s * r);
                                                                                                                                              end
                                                                                                                                              
                                                                                                                                              \frac{0.07957746833562851}{s \cdot r}
                                                                                                                                              
                                                                                                                                              Derivation
                                                                                                                                              1. Initial program 99.6%

                                                                                                                                                \[\frac{0.25 \cdot e^{\frac{-r}{s}}}{\left(\left(2 \cdot \pi\right) \cdot s\right) \cdot r} + \frac{0.75 \cdot e^{\frac{-r}{3 \cdot s}}}{\left(\left(6 \cdot \pi\right) \cdot s\right) \cdot r} \]
                                                                                                                                              2. Step-by-step derivation
                                                                                                                                                1. Applied rewrites99.6%

                                                                                                                                                  \[\leadsto \frac{\mathsf{fma}\left(\frac{e^{\frac{r}{-3 \cdot s}}}{\pi}, 0.125, \frac{e^{\frac{-r}{s}}}{\pi} \cdot 0.125\right)}{s \cdot r} \]
                                                                                                                                                2. Taylor expanded in s around inf

                                                                                                                                                  \[\leadsto \frac{\frac{\frac{1}{4}}{\pi}}{s \cdot r} \]
                                                                                                                                                3. Step-by-step derivation
                                                                                                                                                  1. Applied rewrites8.8%

                                                                                                                                                    \[\leadsto \frac{\frac{0.25}{\pi}}{s \cdot r} \]
                                                                                                                                                  2. Evaluated real constant8.8%

                                                                                                                                                    \[\leadsto \frac{0.07957746833562851}{s \cdot r} \]
                                                                                                                                                  3. Add Preprocessing

                                                                                                                                                  Reproduce

                                                                                                                                                  ?
                                                                                                                                                  herbie shell --seed 2026086 
                                                                                                                                                  (FPCore (s r)
                                                                                                                                                    :name "Disney BSSRDF, PDF of scattering profile"
                                                                                                                                                    :precision binary32
                                                                                                                                                    :pre (and (and (<= 0.0 s) (<= s 256.0)) (and (< 1e-6 r) (< r 1000000.0)))
                                                                                                                                                    (+ (/ (* 0.25 (exp (/ (- r) s))) (* (* (* 2.0 PI) s) r)) (/ (* 0.75 (exp (/ (- r) (* 3.0 s)))) (* (* (* 6.0 PI) s) r))))