(- 1.0 (* (* (* (/ 0.44 y) 1.333333) (* 1.259921 (/ 1.0 z))) (+ (* (* x a) 0.125) (atan2 1.0 (* 0.5 x)))))

Percentage Accurate: 99.9% → 100.0%
Time: 7.1s
Alternatives: 7
Speedup: 1.2×

Specification

?
\[\left(\left(\left(2.555357 \cdot 10^{-104} \leq x \land x \leq 6467.788\right) \land \left(2.902009 \leq y \land y \leq 3.897777\right)\right) \land \left(2.953531 \cdot 10^{-5} \leq z \land z \leq 5.565798 \cdot 10^{+102}\right)\right) \land \left(-1434.343 \leq a \land a \leq -2.391224 \cdot 10^{-7}\right)\]
\[\begin{array}{l} \\ 1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \end{array} \]
(FPCore (x y z a)
 :precision binary64
 (-
  1.0
  (*
   (* (* (/ 0.44 y) 1.333333) (* 1.259921 (/ 1.0 z)))
   (+ (* (* x a) 0.125) (atan2 1.0 (* 0.5 x))))))
double code(double x, double y, double z, double a) {
	return 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + atan2(1.0, (0.5 * x))));
}
real(8) function code(x, y, z, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: a
    code = 1.0d0 - ((((0.44d0 / y) * 1.333333d0) * (1.259921d0 * (1.0d0 / z))) * (((x * a) * 0.125d0) + atan2(1.0d0, (0.5d0 * x))))
end function
public static double code(double x, double y, double z, double a) {
	return 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + Math.atan2(1.0, (0.5 * x))));
}
def code(x, y, z, a):
	return 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + math.atan2(1.0, (0.5 * x))))
function code(x, y, z, a)
	return Float64(1.0 - Float64(Float64(Float64(Float64(0.44 / y) * 1.333333) * Float64(1.259921 * Float64(1.0 / z))) * Float64(Float64(Float64(x * a) * 0.125) + atan(1.0, Float64(0.5 * x)))))
end
function tmp = code(x, y, z, a)
	tmp = 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + atan2(1.0, (0.5 * x))));
end
code[x_, y_, z_, a_] := N[(1.0 - N[(N[(N[(N[(0.44 / y), $MachinePrecision] * 1.333333), $MachinePrecision] * N[(1.259921 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(x * a), $MachinePrecision] * 0.125), $MachinePrecision] + N[ArcTan[1.0 / N[(0.5 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right)
\end{array}

Sampling outcomes in binary64 precision:

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

\[\begin{array}{l} \\ 1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \end{array} \]
(FPCore (x y z a)
 :precision binary64
 (-
  1.0
  (*
   (* (* (/ 0.44 y) 1.333333) (* 1.259921 (/ 1.0 z)))
   (+ (* (* x a) 0.125) (atan2 1.0 (* 0.5 x))))))
double code(double x, double y, double z, double a) {
	return 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + atan2(1.0, (0.5 * x))));
}
real(8) function code(x, y, z, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: a
    code = 1.0d0 - ((((0.44d0 / y) * 1.333333d0) * (1.259921d0 * (1.0d0 / z))) * (((x * a) * 0.125d0) + atan2(1.0d0, (0.5d0 * x))))
end function
public static double code(double x, double y, double z, double a) {
	return 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + Math.atan2(1.0, (0.5 * x))));
}
def code(x, y, z, a):
	return 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + math.atan2(1.0, (0.5 * x))))
function code(x, y, z, a)
	return Float64(1.0 - Float64(Float64(Float64(Float64(0.44 / y) * 1.333333) * Float64(1.259921 * Float64(1.0 / z))) * Float64(Float64(Float64(x * a) * 0.125) + atan(1.0, Float64(0.5 * x)))))
end
function tmp = code(x, y, z, a)
	tmp = 1.0 - ((((0.44 / y) * 1.333333) * (1.259921 * (1.0 / z))) * (((x * a) * 0.125) + atan2(1.0, (0.5 * x))));
end
code[x_, y_, z_, a_] := N[(1.0 - N[(N[(N[(N[(0.44 / y), $MachinePrecision] * 1.333333), $MachinePrecision] * N[(1.259921 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(x * a), $MachinePrecision] * 0.125), $MachinePrecision] + N[ArcTan[1.0 / N[(0.5 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right)
\end{array}

Alternative 1: 100.0% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\frac{1.259921}{z}, \frac{-0.5866665200000001}{y} \cdot \mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), 1\right) \end{array} \]
(FPCore (x y z a)
 :precision binary64
 (fma
  (/ 1.259921 z)
  (* (/ -0.5866665200000001 y) (fma 0.125 (* a x) (atan2 1.0 (* 0.5 x))))
  1.0))
double code(double x, double y, double z, double a) {
	return fma((1.259921 / z), ((-0.5866665200000001 / y) * fma(0.125, (a * x), atan2(1.0, (0.5 * x)))), 1.0);
}
function code(x, y, z, a)
	return fma(Float64(1.259921 / z), Float64(Float64(-0.5866665200000001 / y) * fma(0.125, Float64(a * x), atan(1.0, Float64(0.5 * x)))), 1.0)
end
code[x_, y_, z_, a_] := N[(N[(1.259921 / z), $MachinePrecision] * N[(N[(-0.5866665200000001 / y), $MachinePrecision] * N[(0.125 * N[(a * x), $MachinePrecision] + N[ArcTan[1.0 / N[(0.5 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\frac{1.259921}{z}, \frac{-0.5866665200000001}{y} \cdot \mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), 1\right)
\end{array}
Derivation
  1. Initial program 99.9%

    \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift--.f64N/A

      \[\leadsto \color{blue}{1 - \left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)} \]
    2. sub-negN/A

      \[\leadsto \color{blue}{1 + \left(\mathsf{neg}\left(\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)\right)} \]
    3. +-commutativeN/A

      \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)\right) + 1} \]
    4. lift-*.f64N/A

      \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)}\right)\right) + 1 \]
    5. distribute-lft-neg-inN/A

      \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)} + 1 \]
    6. lift-*.f64N/A

      \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) + 1 \]
    7. *-commutativeN/A

      \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right) \cdot \left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) + 1 \]
    8. distribute-rgt-neg-inN/A

      \[\leadsto \color{blue}{\left(\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right) \cdot \left(\mathsf{neg}\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)\right)\right)} \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) + 1 \]
    9. associate-*l*N/A

      \[\leadsto \color{blue}{\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right) \cdot \left(\left(\mathsf{neg}\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)} + 1 \]
    10. lower-fma.f64N/A

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}, \left(\mathsf{neg}\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right), 1\right)} \]
  4. Applied rewrites100.0%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1.259921}{z}, \frac{-0.5866665200000001}{y} \cdot \mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), 1\right)} \]
  5. Add Preprocessing

Alternative 2: 100.0% accurate, 1.2× speedup?

\[\begin{array}{l} \\ 1 - \frac{\mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \cdot 0.7391534685449201}{z \cdot y} \end{array} \]
(FPCore (x y z a)
 :precision binary64
 (-
  1.0
  (/
   (* (fma 0.125 (* a x) (atan2 1.0 (* 0.5 x))) 0.7391534685449201)
   (* z y))))
double code(double x, double y, double z, double a) {
	return 1.0 - ((fma(0.125, (a * x), atan2(1.0, (0.5 * x))) * 0.7391534685449201) / (z * y));
}
function code(x, y, z, a)
	return Float64(1.0 - Float64(Float64(fma(0.125, Float64(a * x), atan(1.0, Float64(0.5 * x))) * 0.7391534685449201) / Float64(z * y)))
end
code[x_, y_, z_, a_] := N[(1.0 - N[(N[(N[(0.125 * N[(a * x), $MachinePrecision] + N[ArcTan[1.0 / N[(0.5 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * 0.7391534685449201), $MachinePrecision] / N[(z * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
1 - \frac{\mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \cdot 0.7391534685449201}{z \cdot y}
\end{array}
Derivation
  1. Initial program 99.9%

    \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift-*.f64N/A

      \[\leadsto 1 - \color{blue}{\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)} \]
    2. *-commutativeN/A

      \[\leadsto 1 - \color{blue}{\left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right)} \]
    3. lift-*.f64N/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \color{blue}{\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right)} \]
    4. lift-*.f64N/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\color{blue}{\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)} \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \]
    5. lift-/.f64N/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\left(\color{blue}{\frac{\frac{7926335344172073}{18014398509481984}}{y}} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \]
    6. associate-*l/N/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\color{blue}{\frac{\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}}{y}} \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \]
    7. lift-*.f64N/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\frac{\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}}{y} \cdot \color{blue}{\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)}\right) \]
    8. lift-/.f64N/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\frac{\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}}{y} \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \color{blue}{\frac{1}{z}}\right)\right) \]
    9. un-div-invN/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\frac{\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}}{y} \cdot \color{blue}{\frac{\frac{5674179746116263}{4503599627370496}}{z}}\right) \]
    10. frac-timesN/A

      \[\leadsto 1 - \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \color{blue}{\frac{\left(\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \frac{5674179746116263}{4503599627370496}}{y \cdot z}} \]
    11. associate-*r/N/A

      \[\leadsto 1 - \color{blue}{\frac{\left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\left(\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \frac{5674179746116263}{4503599627370496}\right)}{y \cdot z}} \]
    12. lower-/.f64N/A

      \[\leadsto 1 - \color{blue}{\frac{\left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\left(\frac{7926335344172073}{18014398509481984} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \frac{5674179746116263}{4503599627370496}\right)}{y \cdot z}} \]
  4. Applied rewrites100.0%

    \[\leadsto 1 - \color{blue}{\frac{\mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \cdot 0.7391534685449201}{z \cdot y}} \]
  5. Add Preprocessing

Alternative 3: 100.0% accurate, 1.2× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), \frac{-0.7391534685449201}{z \cdot y}, 1\right) \end{array} \]
(FPCore (x y z a)
 :precision binary64
 (fma
  (fma 0.125 (* a x) (atan2 1.0 (* 0.5 x)))
  (/ -0.7391534685449201 (* z y))
  1.0))
double code(double x, double y, double z, double a) {
	return fma(fma(0.125, (a * x), atan2(1.0, (0.5 * x))), (-0.7391534685449201 / (z * y)), 1.0);
}
function code(x, y, z, a)
	return fma(fma(0.125, Float64(a * x), atan(1.0, Float64(0.5 * x))), Float64(-0.7391534685449201 / Float64(z * y)), 1.0)
end
code[x_, y_, z_, a_] := N[(N[(0.125 * N[(a * x), $MachinePrecision] + N[ArcTan[1.0 / N[(0.5 * x), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * N[(-0.7391534685449201 / N[(z * y), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), \frac{-0.7391534685449201}{z \cdot y}, 1\right)
\end{array}
Derivation
  1. Initial program 99.9%

    \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. lift--.f64N/A

      \[\leadsto \color{blue}{1 - \left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)} \]
    2. sub-negN/A

      \[\leadsto \color{blue}{1 + \left(\mathsf{neg}\left(\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)\right)} \]
    3. +-commutativeN/A

      \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)\right) + 1} \]
    4. lift-*.f64N/A

      \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)}\right)\right) + 1 \]
    5. *-commutativeN/A

      \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right)}\right)\right) + 1 \]
    6. distribute-rgt-neg-inN/A

      \[\leadsto \color{blue}{\left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) \cdot \left(\mathsf{neg}\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right)\right)} + 1 \]
    7. lower-fma.f64N/A

      \[\leadsto \color{blue}{\mathsf{fma}\left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}, \mathsf{neg}\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right), 1\right)} \]
  4. Applied rewrites99.9%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), \frac{-0.7391534685449201}{z \cdot y}, 1\right)} \]
  5. Add Preprocessing

Alternative 4: 99.3% accurate, 1.3× speedup?

\[\begin{array}{l} \\ 1 - 0.7391534685449201 \cdot \frac{\tan^{-1}_* \frac{1}{0.5 \cdot x}}{y \cdot z} \end{array} \]
(FPCore (x y z a)
 :precision binary64
 (- 1.0 (* 0.7391534685449201 (/ (atan2 1.0 (* 0.5 x)) (* y z)))))
double code(double x, double y, double z, double a) {
	return 1.0 - (0.7391534685449201 * (atan2(1.0, (0.5 * x)) / (y * z)));
}
real(8) function code(x, y, z, a)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: a
    code = 1.0d0 - (0.7391534685449201d0 * (atan2(1.0d0, (0.5d0 * x)) / (y * z)))
end function
public static double code(double x, double y, double z, double a) {
	return 1.0 - (0.7391534685449201 * (Math.atan2(1.0, (0.5 * x)) / (y * z)));
}
def code(x, y, z, a):
	return 1.0 - (0.7391534685449201 * (math.atan2(1.0, (0.5 * x)) / (y * z)))
function code(x, y, z, a)
	return Float64(1.0 - Float64(0.7391534685449201 * Float64(atan(1.0, Float64(0.5 * x)) / Float64(y * z))))
end
function tmp = code(x, y, z, a)
	tmp = 1.0 - (0.7391534685449201 * (atan2(1.0, (0.5 * x)) / (y * z)));
end
code[x_, y_, z_, a_] := N[(1.0 - N[(0.7391534685449201 * N[(N[ArcTan[1.0 / N[(0.5 * x), $MachinePrecision]], $MachinePrecision] / N[(y * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
1 - 0.7391534685449201 \cdot \frac{\tan^{-1}_* \frac{1}{0.5 \cdot x}}{y \cdot z}
\end{array}
Derivation
  1. Initial program 99.9%

    \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
  2. Add Preprocessing
  3. Taylor expanded in x around 0

    \[\leadsto 1 - \color{blue}{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872} \cdot \frac{\tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{y \cdot z}} \]
  4. Step-by-step derivation
    1. associate-*r/N/A

      \[\leadsto 1 - \color{blue}{\frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872} \cdot \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{y \cdot z}} \]
    2. *-commutativeN/A

      \[\leadsto 1 - \frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872} \cdot \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{\color{blue}{z \cdot y}} \]
    3. times-fracN/A

      \[\leadsto 1 - \color{blue}{\frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872}}{z} \cdot \frac{\tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{y}} \]
    4. lower-*.f64N/A

      \[\leadsto 1 - \color{blue}{\frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872}}{z} \cdot \frac{\tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{y}} \]
    5. lower-/.f64N/A

      \[\leadsto 1 - \color{blue}{\frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872}}{z}} \cdot \frac{\tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{y} \]
    6. lower-/.f64N/A

      \[\leadsto 1 - \frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872}}{z} \cdot \color{blue}{\frac{\tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}{y}} \]
    7. lower-atan2.f64N/A

      \[\leadsto 1 - \frac{\frac{135034250564652096784517409713844481713474237207}{182687704666362864775460604089535377456991567872}}{z} \cdot \frac{\color{blue}{\tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}}}{y} \]
    8. lower-*.f6498.9

      \[\leadsto 1 - \frac{0.7391534685449201}{z} \cdot \frac{\tan^{-1}_* \frac{1}{\color{blue}{0.5 \cdot x}}}{y} \]
  5. Applied rewrites98.9%

    \[\leadsto 1 - \color{blue}{\frac{0.7391534685449201}{z} \cdot \frac{\tan^{-1}_* \frac{1}{0.5 \cdot x}}{y}} \]
  6. Step-by-step derivation
    1. Applied rewrites98.9%

      \[\leadsto 1 - 0.7391534685449201 \cdot \color{blue}{\frac{\tan^{-1}_* \frac{1}{0.5 \cdot x}}{y \cdot z}} \]
    2. Add Preprocessing

    Alternative 5: 90.0% accurate, 4.2× speedup?

    \[\begin{array}{l} \\ \mathsf{fma}\left(\frac{1.259921}{z}, \left(\frac{x}{y} \cdot -0.07333331500000001\right) \cdot a, 1\right) \end{array} \]
    (FPCore (x y z a)
     :precision binary64
     (fma (/ 1.259921 z) (* (* (/ x y) -0.07333331500000001) a) 1.0))
    double code(double x, double y, double z, double a) {
    	return fma((1.259921 / z), (((x / y) * -0.07333331500000001) * a), 1.0);
    }
    
    function code(x, y, z, a)
    	return fma(Float64(1.259921 / z), Float64(Float64(Float64(x / y) * -0.07333331500000001) * a), 1.0)
    end
    
    code[x_, y_, z_, a_] := N[(N[(1.259921 / z), $MachinePrecision] * N[(N[(N[(x / y), $MachinePrecision] * -0.07333331500000001), $MachinePrecision] * a), $MachinePrecision] + 1.0), $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    \mathsf{fma}\left(\frac{1.259921}{z}, \left(\frac{x}{y} \cdot -0.07333331500000001\right) \cdot a, 1\right)
    \end{array}
    
    Derivation
    1. Initial program 99.9%

      \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift--.f64N/A

        \[\leadsto \color{blue}{1 - \left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)} \]
      2. sub-negN/A

        \[\leadsto \color{blue}{1 + \left(\mathsf{neg}\left(\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)\right)} \]
      3. +-commutativeN/A

        \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)\right) + 1} \]
      4. lift-*.f64N/A

        \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)}\right)\right) + 1 \]
      5. distribute-lft-neg-inN/A

        \[\leadsto \color{blue}{\left(\mathsf{neg}\left(\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)} + 1 \]
      6. lift-*.f64N/A

        \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right) \cdot \left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right)}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) + 1 \]
      7. *-commutativeN/A

        \[\leadsto \left(\mathsf{neg}\left(\color{blue}{\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right) \cdot \left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) + 1 \]
      8. distribute-rgt-neg-inN/A

        \[\leadsto \color{blue}{\left(\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right) \cdot \left(\mathsf{neg}\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)\right)\right)} \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right) + 1 \]
      9. associate-*l*N/A

        \[\leadsto \color{blue}{\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}\right) \cdot \left(\left(\mathsf{neg}\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right)\right)} + 1 \]
      10. lower-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{5674179746116263}{4503599627370496} \cdot \frac{1}{z}, \left(\mathsf{neg}\left(\frac{\frac{7926335344172073}{18014398509481984}}{y} \cdot \frac{3002399000980393}{2251799813685248}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot \frac{1}{8} + \tan^{-1}_* \frac{1}{\frac{1}{2} \cdot x}\right), 1\right)} \]
    4. Applied rewrites100.0%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1.259921}{z}, \frac{-0.5866665200000001}{y} \cdot \mathsf{fma}\left(0.125, a \cdot x, \tan^{-1}_* \frac{1}{0.5 \cdot x}\right), 1\right)} \]
    5. Taylor expanded in x around inf

      \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \color{blue}{\frac{-23798021318777811490205891164689}{324518553658426726783156020576256} \cdot \frac{a \cdot x}{y}}, 1\right) \]
    6. Step-by-step derivation
      1. associate-/l*N/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \frac{-23798021318777811490205891164689}{324518553658426726783156020576256} \cdot \color{blue}{\left(a \cdot \frac{x}{y}\right)}, 1\right) \]
      2. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \frac{-23798021318777811490205891164689}{324518553658426726783156020576256} \cdot \color{blue}{\left(\frac{x}{y} \cdot a\right)}, 1\right) \]
      3. associate-*l*N/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \color{blue}{\left(\frac{-23798021318777811490205891164689}{324518553658426726783156020576256} \cdot \frac{x}{y}\right) \cdot a}, 1\right) \]
      4. lower-*.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \color{blue}{\left(\frac{-23798021318777811490205891164689}{324518553658426726783156020576256} \cdot \frac{x}{y}\right) \cdot a}, 1\right) \]
      5. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \color{blue}{\left(\frac{x}{y} \cdot \frac{-23798021318777811490205891164689}{324518553658426726783156020576256}\right)} \cdot a, 1\right) \]
      6. lower-*.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{5674179746116263}{4503599627370496}}{z}, \color{blue}{\left(\frac{x}{y} \cdot \frac{-23798021318777811490205891164689}{324518553658426726783156020576256}\right)} \cdot a, 1\right) \]
      7. lower-/.f6488.2

        \[\leadsto \mathsf{fma}\left(\frac{1.259921}{z}, \left(\color{blue}{\frac{x}{y}} \cdot -0.07333331500000001\right) \cdot a, 1\right) \]
    7. Applied rewrites88.2%

      \[\leadsto \mathsf{fma}\left(\frac{1.259921}{z}, \color{blue}{\left(\frac{x}{y} \cdot -0.07333331500000001\right) \cdot a}, 1\right) \]
    8. Add Preprocessing

    Alternative 6: 90.0% accurate, 5.5× speedup?

    \[\begin{array}{l} \\ 1 - \left(\frac{x}{z \cdot y} \cdot 0.09239418356811502\right) \cdot a \end{array} \]
    (FPCore (x y z a)
     :precision binary64
     (- 1.0 (* (* (/ x (* z y)) 0.09239418356811502) a)))
    double code(double x, double y, double z, double a) {
    	return 1.0 - (((x / (z * y)) * 0.09239418356811502) * a);
    }
    
    real(8) function code(x, y, z, a)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        real(8), intent (in) :: z
        real(8), intent (in) :: a
        code = 1.0d0 - (((x / (z * y)) * 0.09239418356811502d0) * a)
    end function
    
    public static double code(double x, double y, double z, double a) {
    	return 1.0 - (((x / (z * y)) * 0.09239418356811502) * a);
    }
    
    def code(x, y, z, a):
    	return 1.0 - (((x / (z * y)) * 0.09239418356811502) * a)
    
    function code(x, y, z, a)
    	return Float64(1.0 - Float64(Float64(Float64(x / Float64(z * y)) * 0.09239418356811502) * a))
    end
    
    function tmp = code(x, y, z, a)
    	tmp = 1.0 - (((x / (z * y)) * 0.09239418356811502) * a);
    end
    
    code[x_, y_, z_, a_] := N[(1.0 - N[(N[(N[(x / N[(z * y), $MachinePrecision]), $MachinePrecision] * 0.09239418356811502), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    1 - \left(\frac{x}{z \cdot y} \cdot 0.09239418356811502\right) \cdot a
    \end{array}
    
    Derivation
    1. Initial program 99.9%

      \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
    2. Add Preprocessing
    3. Taylor expanded in x around inf

      \[\leadsto 1 - \color{blue}{\frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976} \cdot \frac{a \cdot x}{y \cdot z}} \]
    4. Step-by-step derivation
      1. associate-/l*N/A

        \[\leadsto 1 - \frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976} \cdot \color{blue}{\left(a \cdot \frac{x}{y \cdot z}\right)} \]
      2. *-commutativeN/A

        \[\leadsto 1 - \frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976} \cdot \color{blue}{\left(\frac{x}{y \cdot z} \cdot a\right)} \]
      3. associate-*l*N/A

        \[\leadsto 1 - \color{blue}{\left(\frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976} \cdot \frac{x}{y \cdot z}\right) \cdot a} \]
      4. lower-*.f64N/A

        \[\leadsto 1 - \color{blue}{\left(\frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976} \cdot \frac{x}{y \cdot z}\right) \cdot a} \]
      5. *-commutativeN/A

        \[\leadsto 1 - \color{blue}{\left(\frac{x}{y \cdot z} \cdot \frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976}\right)} \cdot a \]
      6. lower-*.f64N/A

        \[\leadsto 1 - \color{blue}{\left(\frac{x}{y \cdot z} \cdot \frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976}\right)} \cdot a \]
      7. lower-/.f64N/A

        \[\leadsto 1 - \left(\color{blue}{\frac{x}{y \cdot z}} \cdot \frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976}\right) \cdot a \]
      8. *-commutativeN/A

        \[\leadsto 1 - \left(\frac{x}{\color{blue}{z \cdot y}} \cdot \frac{135034250564652096784517409713844481713474237207}{1461501637330902918203684832716283019655932542976}\right) \cdot a \]
      9. lower-*.f6488.2

        \[\leadsto 1 - \left(\frac{x}{\color{blue}{z \cdot y}} \cdot 0.09239418356811502\right) \cdot a \]
    5. Applied rewrites88.2%

      \[\leadsto 1 - \color{blue}{\left(\frac{x}{z \cdot y} \cdot 0.09239418356811502\right) \cdot a} \]
    6. Add Preprocessing

    Alternative 7: 90.0% accurate, 165.0× speedup?

    \[\begin{array}{l} \\ 1 \end{array} \]
    (FPCore (x y z a) :precision binary64 1.0)
    double code(double x, double y, double z, double a) {
    	return 1.0;
    }
    
    real(8) function code(x, y, z, a)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        real(8), intent (in) :: z
        real(8), intent (in) :: a
        code = 1.0d0
    end function
    
    public static double code(double x, double y, double z, double a) {
    	return 1.0;
    }
    
    def code(x, y, z, a):
    	return 1.0
    
    function code(x, y, z, a)
    	return 1.0
    end
    
    function tmp = code(x, y, z, a)
    	tmp = 1.0;
    end
    
    code[x_, y_, z_, a_] := 1.0
    
    \begin{array}{l}
    
    \\
    1
    \end{array}
    
    Derivation
    1. Initial program 99.9%

      \[1 - \left(\left(\frac{0.44}{y} \cdot 1.333333\right) \cdot \left(1.259921 \cdot \frac{1}{z}\right)\right) \cdot \left(\left(x \cdot a\right) \cdot 0.125 + \tan^{-1}_* \frac{1}{0.5 \cdot x}\right) \]
    2. Add Preprocessing
    3. Taylor expanded in y around inf

      \[\leadsto \color{blue}{1} \]
    4. Step-by-step derivation
      1. Applied rewrites88.0%

        \[\leadsto \color{blue}{1} \]
      2. Add Preprocessing

      Reproduce

      ?
      herbie shell --seed 1 
      (FPCore (x y z a)
        :name "(- 1.0 (* (* (* (/ 0.44 y) 1.333333) (* 1.259921 (/ 1.0 z))) (+ (* (* x a) 0.125) (atan2 1.0 (* 0.5 x)))))"
        :precision binary64
        :pre (and (and (and (and (<= 2.555357e-104 x) (<= x 6467.788)) (and (<= 2.902009 y) (<= y 3.897777))) (and (<= 2.953531e-5 z) (<= z 5.565798e+102))) (and (<= -1434.343 a) (<= a -2.391224e-7)))
        (- 1.0 (* (* (* (/ 0.44 y) 1.333333) (* 1.259921 (/ 1.0 z))) (+ (* (* x a) 0.125) (atan2 1.0 (* 0.5 x))))))