pow(log(y),sin(x))+(x/y)*cbrt(y*x)

Percentage Accurate: 78.5% → 99.4%
Time: 33.8s
Alternatives: 11
Speedup: 2.0×

Specification

?
\[\left(-1.79 \cdot 10^{+308} \leq y \land y \leq 1.79 \cdot 10^{+308}\right) \land \left(-1.79 \cdot 10^{+308} \leq x \land x \leq 1.79 \cdot 10^{+308}\right)\]
\[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
(FPCore (y x)
  :precision binary64
  (+ (pow (log y) (sin x)) (* (/ x y) (cbrt (* y x)))))
double code(double y, double x) {
	return pow(log(y), sin(x)) + ((x / y) * cbrt((y * x)));
}
public static double code(double y, double x) {
	return Math.pow(Math.log(y), Math.sin(x)) + ((x / y) * Math.cbrt((y * x)));
}
function code(y, x)
	return Float64((log(y) ^ sin(x)) + Float64(Float64(x / y) * cbrt(Float64(y * x))))
end
code[y_, x_] := N[(N[Power[N[Log[y], $MachinePrecision], N[Sin[x], $MachinePrecision]], $MachinePrecision] + N[(N[(x / y), $MachinePrecision] * N[Power[N[(y * x), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}

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 11 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: 78.5% accurate, 1.0× speedup?

\[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
(FPCore (y x)
  :precision binary64
  (+ (pow (log y) (sin x)) (* (/ x y) (cbrt (* y x)))))
double code(double y, double x) {
	return pow(log(y), sin(x)) + ((x / y) * cbrt((y * x)));
}
public static double code(double y, double x) {
	return Math.pow(Math.log(y), Math.sin(x)) + ((x / y) * Math.cbrt((y * x)));
}
function code(y, x)
	return Float64((log(y) ^ sin(x)) + Float64(Float64(x / y) * cbrt(Float64(y * x))))
end
code[y_, x_] := N[(N[Power[N[Log[y], $MachinePrecision], N[Sin[x], $MachinePrecision]], $MachinePrecision] + N[(N[(x / y), $MachinePrecision] * N[Power[N[(y * x), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}

Alternative 1: 99.4% accurate, 0.8× speedup?

\[\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, {\log y}^{\sin x}\right) \]
(FPCore (y x)
  :precision binary64
  (fma (* (cbrt y) (/ x y)) (cbrt x) (pow (log y) (sin x))))
double code(double y, double x) {
	return fma((cbrt(y) * (x / y)), cbrt(x), pow(log(y), sin(x)));
}
function code(y, x)
	return fma(Float64(cbrt(y) * Float64(x / y)), cbrt(x), (log(y) ^ sin(x)))
end
code[y_, x_] := N[(N[(N[Power[y, 1/3], $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision] * N[Power[x, 1/3], $MachinePrecision] + N[Power[N[Log[y], $MachinePrecision], N[Sin[x], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, {\log y}^{\sin x}\right)
Derivation
  1. Initial program 78.5%

    \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
  2. Step-by-step derivation
    1. lift-+.f64N/A

      \[\leadsto \color{blue}{{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
    2. +-commutativeN/A

      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + {\log y}^{\sin x}} \]
    3. add-flipN/A

      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} - \left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)} \]
    4. sub-flipN/A

      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right)} \]
    5. lift-*.f64N/A

      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
    6. lift-/.f64N/A

      \[\leadsto \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
    7. mult-flipN/A

      \[\leadsto \color{blue}{\left(x \cdot \frac{1}{y}\right)} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
    8. associate-*l*N/A

      \[\leadsto \color{blue}{x \cdot \left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}\right)} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
    9. *-commutativeN/A

      \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}\right) \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
    10. remove-double-negN/A

      \[\leadsto \left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}\right) \cdot x + \color{blue}{{\log y}^{\sin x}} \]
    11. lower-fma.f64N/A

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}, x, {\log y}^{\sin x}\right)} \]
    12. *-commutativeN/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{y \cdot x} \cdot \frac{1}{y}}, x, {\log y}^{\sin x}\right) \]
    13. mult-flipN/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y \cdot x}}{y}}, x, {\log y}^{\sin x}\right) \]
    14. lower-/.f6478.5%

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y \cdot x}}{y}}, x, {\log y}^{\sin x}\right) \]
    15. lift-*.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{\color{blue}{y \cdot x}}}{y}, x, {\log y}^{\sin x}\right) \]
    16. *-commutativeN/A

      \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{\color{blue}{x \cdot y}}}{y}, x, {\log y}^{\sin x}\right) \]
    17. lower-*.f6478.5%

      \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{\color{blue}{x \cdot y}}}{y}, x, {\log y}^{\sin x}\right) \]
  3. Applied rewrites78.5%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, {\log y}^{\sin x}\right)} \]
  4. Step-by-step derivation
    1. lift-/.f64N/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}}, x, {\log y}^{\sin x}\right) \]
    2. div-flip-revN/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{\frac{y}{\sqrt[3]{x \cdot y}}}}, x, {\log y}^{\sin x}\right) \]
    3. lift-cbrt.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\frac{y}{\color{blue}{\sqrt[3]{x \cdot y}}}}, x, {\log y}^{\sin x}\right) \]
    4. lift-*.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\frac{y}{\sqrt[3]{\color{blue}{x \cdot y}}}}, x, {\log y}^{\sin x}\right) \]
    5. cbrt-prodN/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\frac{y}{\color{blue}{\sqrt[3]{x} \cdot \sqrt[3]{y}}}}, x, {\log y}^{\sin x}\right) \]
    6. lift-cbrt.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\frac{y}{\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}}}, x, {\log y}^{\sin x}\right) \]
    7. lift-cbrt.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\frac{y}{\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}}}, x, {\log y}^{\sin x}\right) \]
    8. associate-/r*N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\color{blue}{\frac{\frac{y}{\sqrt[3]{x}}}{\sqrt[3]{y}}}}, x, {\log y}^{\sin x}\right) \]
    9. div-flip-revN/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y}}{\frac{y}{\sqrt[3]{x}}}}, x, {\log y}^{\sin x}\right) \]
    10. lower-/.f64N/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y}}{\frac{y}{\sqrt[3]{x}}}}, x, {\log y}^{\sin x}\right) \]
    11. lower-/.f6499.4%

      \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{y}}{\color{blue}{\frac{y}{\sqrt[3]{x}}}}, x, {\log y}^{\sin x}\right) \]
  5. Applied rewrites99.4%

    \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y}}{\frac{y}{\sqrt[3]{x}}}}, x, {\log y}^{\sin x}\right) \]
  6. Step-by-step derivation
    1. lift-/.f64N/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y}}{\frac{y}{\sqrt[3]{x}}}}, x, {\log y}^{\sin x}\right) \]
    2. mult-flipN/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{y} \cdot \frac{1}{\frac{y}{\sqrt[3]{x}}}}, x, {\log y}^{\sin x}\right) \]
    3. *-commutativeN/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{\frac{y}{\sqrt[3]{x}}} \cdot \sqrt[3]{y}}, x, {\log y}^{\sin x}\right) \]
    4. lift-/.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{\color{blue}{\frac{y}{\sqrt[3]{x}}}} \cdot \sqrt[3]{y}, x, {\log y}^{\sin x}\right) \]
    5. associate-/r/N/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x}\right)} \cdot \sqrt[3]{y}, x, {\log y}^{\sin x}\right) \]
    6. lift-/.f64N/A

      \[\leadsto \mathsf{fma}\left(\left(\color{blue}{\frac{1}{y}} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{y}, x, {\log y}^{\sin x}\right) \]
    7. associate-*r*N/A

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{y} \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)}, x, {\log y}^{\sin x}\right) \]
    8. lift-cbrt.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right), x, {\log y}^{\sin x}\right) \]
    9. lift-cbrt.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right), x, {\log y}^{\sin x}\right) \]
    10. cbrt-prodN/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}}, x, {\log y}^{\sin x}\right) \]
    11. lift-*.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}}, x, {\log y}^{\sin x}\right) \]
    12. lift-cbrt.f64N/A

      \[\leadsto \mathsf{fma}\left(\frac{1}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}}, x, {\log y}^{\sin x}\right) \]
    13. lift-*.f6478.5%

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{y} \cdot \sqrt[3]{x \cdot y}}, x, {\log y}^{\sin x}\right) \]
    14. lift-fma.f64N/A

      \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right) \cdot x + {\log y}^{\sin x}} \]
    15. *-commutativeN/A

      \[\leadsto \color{blue}{x \cdot \left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + {\log y}^{\sin x} \]
  7. Applied rewrites99.4%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, {\log y}^{\sin x}\right)} \]
  8. Add Preprocessing

Alternative 2: 96.7% accurate, 0.5× speedup?

\[\begin{array}{l} t_0 := {\log y}^{\sin x}\\ \mathbf{if}\;t\_0 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \leq 2 \cdot 10^{+250}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, t\_0\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)\\ \end{array} \]
(FPCore (y x)
  :precision binary64
  (let* ((t_0 (pow (log y) (sin x))))
  (if (<= (+ t_0 (* (/ x y) (cbrt (* y x)))) 2e+250)
    (fma (/ (cbrt (* x y)) y) x t_0)
    (fma (* (cbrt y) (/ x y)) (cbrt x) 1.0))))
double code(double y, double x) {
	double t_0 = pow(log(y), sin(x));
	double tmp;
	if ((t_0 + ((x / y) * cbrt((y * x)))) <= 2e+250) {
		tmp = fma((cbrt((x * y)) / y), x, t_0);
	} else {
		tmp = fma((cbrt(y) * (x / y)), cbrt(x), 1.0);
	}
	return tmp;
}
function code(y, x)
	t_0 = log(y) ^ sin(x)
	tmp = 0.0
	if (Float64(t_0 + Float64(Float64(x / y) * cbrt(Float64(y * x)))) <= 2e+250)
		tmp = fma(Float64(cbrt(Float64(x * y)) / y), x, t_0);
	else
		tmp = fma(Float64(cbrt(y) * Float64(x / y)), cbrt(x), 1.0);
	end
	return tmp
end
code[y_, x_] := Block[{t$95$0 = N[Power[N[Log[y], $MachinePrecision], N[Sin[x], $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(t$95$0 + N[(N[(x / y), $MachinePrecision] * N[Power[N[(y * x), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2e+250], N[(N[(N[Power[N[(x * y), $MachinePrecision], 1/3], $MachinePrecision] / y), $MachinePrecision] * x + t$95$0), $MachinePrecision], N[(N[(N[Power[y, 1/3], $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision] * N[Power[x, 1/3], $MachinePrecision] + 1.0), $MachinePrecision]]]
\begin{array}{l}
t_0 := {\log y}^{\sin x}\\
\mathbf{if}\;t\_0 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \leq 2 \cdot 10^{+250}:\\
\;\;\;\;\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, t\_0\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)\\


\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 (pow.f64 (log.f64 y) (sin.f64 x)) (*.f64 (/.f64 x y) (cbrt.f64 (*.f64 y x)))) < 1.9999999999999998e250

    1. Initial program 78.5%

      \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
    2. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
      2. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + {\log y}^{\sin x}} \]
      3. add-flipN/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} - \left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)} \]
      4. sub-flipN/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right)} \]
      5. lift-*.f64N/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      6. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      7. mult-flipN/A

        \[\leadsto \color{blue}{\left(x \cdot \frac{1}{y}\right)} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      8. associate-*l*N/A

        \[\leadsto \color{blue}{x \cdot \left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}\right)} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      9. *-commutativeN/A

        \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}\right) \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      10. remove-double-negN/A

        \[\leadsto \left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}\right) \cdot x + \color{blue}{{\log y}^{\sin x}} \]
      11. lower-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{y} \cdot \sqrt[3]{y \cdot x}, x, {\log y}^{\sin x}\right)} \]
      12. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{y \cdot x} \cdot \frac{1}{y}}, x, {\log y}^{\sin x}\right) \]
      13. mult-flipN/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y \cdot x}}{y}}, x, {\log y}^{\sin x}\right) \]
      14. lower-/.f6478.5%

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{y \cdot x}}{y}}, x, {\log y}^{\sin x}\right) \]
      15. lift-*.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{\color{blue}{y \cdot x}}}{y}, x, {\log y}^{\sin x}\right) \]
      16. *-commutativeN/A

        \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{\color{blue}{x \cdot y}}}{y}, x, {\log y}^{\sin x}\right) \]
      17. lower-*.f6478.5%

        \[\leadsto \mathsf{fma}\left(\frac{\sqrt[3]{\color{blue}{x \cdot y}}}{y}, x, {\log y}^{\sin x}\right) \]
    3. Applied rewrites78.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, {\log y}^{\sin x}\right)} \]

    if 1.9999999999999998e250 < (+.f64 (pow.f64 (log.f64 y) (sin.f64 x)) (*.f64 (/.f64 x y) (cbrt.f64 (*.f64 y x))))

    1. Initial program 78.5%

      \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
    2. Taylor expanded in x around 0

      \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
    3. Step-by-step derivation
      1. Applied rewrites69.5%

        \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
      2. Step-by-step derivation
        1. lift-+.f64N/A

          \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
        2. +-commutativeN/A

          \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
        3. lift-*.f64N/A

          \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
        4. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
        5. lift-*.f64N/A

          \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
        6. cbrt-unprodN/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
        7. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
        8. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
        9. *-commutativeN/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
        10. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
        11. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
        12. cbrt-prodN/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
        13. lift-*.f64N/A

          \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
        14. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
        15. lower-fma.f6469.5%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
      3. Applied rewrites69.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
      4. Step-by-step derivation
        1. lift-fma.f64N/A

          \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{x \cdot y} + 1} \]
        2. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
        3. lift-*.f64N/A

          \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
        4. cbrt-prodN/A

          \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
        5. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
        6. lift-cbrt.f64N/A

          \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
        7. associate-*l*N/A

          \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{y}} + 1 \]
        8. lift-*.f64N/A

          \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} \cdot \sqrt[3]{y} + 1 \]
        9. *-commutativeN/A

          \[\leadsto \color{blue}{\sqrt[3]{y} \cdot \left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} + 1 \]
        10. lift-*.f64N/A

          \[\leadsto \sqrt[3]{y} \cdot \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} + 1 \]
        11. associate-*r*N/A

          \[\leadsto \color{blue}{\left(\sqrt[3]{y} \cdot \frac{x}{y}\right) \cdot \sqrt[3]{x}} + 1 \]
        12. lower-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)} \]
        13. lower-*.f6486.5%

          \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{y} \cdot \frac{x}{y}}, \sqrt[3]{x}, 1\right) \]
      5. Applied rewrites86.5%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)} \]
    4. Recombined 2 regimes into one program.
    5. Add Preprocessing

    Alternative 3: 95.6% accurate, 0.9× speedup?

    \[\mathsf{fma}\left({y}^{-0.6666666666666666} \cdot x, \sqrt[3]{x}, {\log y}^{\sin x}\right) \]
    (FPCore (y x)
      :precision binary64
      (fma (* (pow y -0.6666666666666666) x) (cbrt x) (pow (log y) (sin x))))
    double code(double y, double x) {
    	return fma((pow(y, -0.6666666666666666) * x), cbrt(x), pow(log(y), sin(x)));
    }
    
    function code(y, x)
    	return fma(Float64((y ^ -0.6666666666666666) * x), cbrt(x), (log(y) ^ sin(x)))
    end
    
    code[y_, x_] := N[(N[(N[Power[y, -0.6666666666666666], $MachinePrecision] * x), $MachinePrecision] * N[Power[x, 1/3], $MachinePrecision] + N[Power[N[Log[y], $MachinePrecision], N[Sin[x], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
    
    \mathsf{fma}\left({y}^{-0.6666666666666666} \cdot x, \sqrt[3]{x}, {\log y}^{\sin x}\right)
    
    Derivation
    1. Initial program 78.5%

      \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
    2. Step-by-step derivation
      1. lift-+.f64N/A

        \[\leadsto \color{blue}{{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
      2. +-commutativeN/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + {\log y}^{\sin x}} \]
      3. add-flipN/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} - \left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)} \]
      4. sub-flipN/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right)} \]
      5. lift-*.f64N/A

        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      6. lift-cbrt.f64N/A

        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      7. lift-*.f64N/A

        \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      8. cbrt-prodN/A

        \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      9. associate-*r*N/A

        \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{x}} + \left(\mathsf{neg}\left(\left(\mathsf{neg}\left({\log y}^{\sin x}\right)\right)\right)\right) \]
      10. remove-double-negN/A

        \[\leadsto \left(\frac{x}{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{x} + \color{blue}{{\log y}^{\sin x}} \]
      11. lower-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y} \cdot \sqrt[3]{y}, \sqrt[3]{x}, {\log y}^{\sin x}\right)} \]
    3. Applied rewrites96.7%

      \[\leadsto \color{blue}{\mathsf{fma}\left({y}^{-0.6666666666666666} \cdot x, \sqrt[3]{x}, {\log y}^{\sin x}\right)} \]
    4. Add Preprocessing

    Alternative 4: 94.3% accurate, 0.5× speedup?

    \[\begin{array}{l} \mathbf{if}\;{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \leq 500:\\ \;\;\;\;\frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)\\ \end{array} \]
    (FPCore (y x)
      :precision binary64
      (if (<= (+ (pow (log y) (sin x)) (* (/ x y) (cbrt (* y x)))) 500.0)
      (/ 1.0 (/ 1.0 (exp (* (log (* -1.0 (log (/ 1.0 y)))) (sin x)))))
      (fma (* (cbrt y) (/ x y)) (cbrt x) 1.0)))
    double code(double y, double x) {
    	double tmp;
    	if ((pow(log(y), sin(x)) + ((x / y) * cbrt((y * x)))) <= 500.0) {
    		tmp = 1.0 / (1.0 / exp((log((-1.0 * log((1.0 / y)))) * sin(x))));
    	} else {
    		tmp = fma((cbrt(y) * (x / y)), cbrt(x), 1.0);
    	}
    	return tmp;
    }
    
    function code(y, x)
    	tmp = 0.0
    	if (Float64((log(y) ^ sin(x)) + Float64(Float64(x / y) * cbrt(Float64(y * x)))) <= 500.0)
    		tmp = Float64(1.0 / Float64(1.0 / exp(Float64(log(Float64(-1.0 * log(Float64(1.0 / y)))) * sin(x)))));
    	else
    		tmp = fma(Float64(cbrt(y) * Float64(x / y)), cbrt(x), 1.0);
    	end
    	return tmp
    end
    
    code[y_, x_] := If[LessEqual[N[(N[Power[N[Log[y], $MachinePrecision], N[Sin[x], $MachinePrecision]], $MachinePrecision] + N[(N[(x / y), $MachinePrecision] * N[Power[N[(y * x), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 500.0], N[(1.0 / N[(1.0 / N[Exp[N[(N[Log[N[(-1.0 * N[Log[N[(1.0 / y), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[Power[y, 1/3], $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision] * N[Power[x, 1/3], $MachinePrecision] + 1.0), $MachinePrecision]]
    
    \begin{array}{l}
    \mathbf{if}\;{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \leq 500:\\
    \;\;\;\;\frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}}\\
    
    \mathbf{else}:\\
    \;\;\;\;\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)\\
    
    
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if (+.f64 (pow.f64 (log.f64 y) (sin.f64 x)) (*.f64 (/.f64 x y) (cbrt.f64 (*.f64 y x)))) < 500

      1. Initial program 78.5%

        \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
      2. Step-by-step derivation
        1. lift-+.f64N/A

          \[\leadsto \color{blue}{{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
        2. lift-*.f64N/A

          \[\leadsto {\log y}^{\sin x} + \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
        3. lift-/.f64N/A

          \[\leadsto {\log y}^{\sin x} + \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{y \cdot x} \]
        4. associate-*l/N/A

          \[\leadsto {\log y}^{\sin x} + \color{blue}{\frac{x \cdot \sqrt[3]{y \cdot x}}{y}} \]
        5. add-to-fractionN/A

          \[\leadsto \color{blue}{\frac{{\log y}^{\sin x} \cdot y + x \cdot \sqrt[3]{y \cdot x}}{y}} \]
        6. div-addN/A

          \[\leadsto \color{blue}{\frac{{\log y}^{\sin x} \cdot y}{y} + \frac{x \cdot \sqrt[3]{y \cdot x}}{y}} \]
        7. common-denominatorN/A

          \[\leadsto \color{blue}{\frac{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}{y \cdot y}} \]
        8. div-flipN/A

          \[\leadsto \color{blue}{\frac{1}{\frac{y \cdot y}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}}} \]
        9. lower-unsound-/.f64N/A

          \[\leadsto \color{blue}{\frac{1}{\frac{y \cdot y}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}}} \]
        10. lower-unsound-/.f64N/A

          \[\leadsto \frac{1}{\color{blue}{\frac{y \cdot y}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}}} \]
        11. lower-*.f64N/A

          \[\leadsto \frac{1}{\frac{\color{blue}{y \cdot y}}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}} \]
        12. distribute-rgt-outN/A

          \[\leadsto \frac{1}{\frac{y \cdot y}{\color{blue}{y \cdot \left({\log y}^{\sin x} \cdot y + x \cdot \sqrt[3]{y \cdot x}\right)}}} \]
        13. lower-*.f64N/A

          \[\leadsto \frac{1}{\frac{y \cdot y}{\color{blue}{y \cdot \left({\log y}^{\sin x} \cdot y + x \cdot \sqrt[3]{y \cdot x}\right)}}} \]
        14. lower-fma.f64N/A

          \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \color{blue}{\mathsf{fma}\left({\log y}^{\sin x}, y, x \cdot \sqrt[3]{y \cdot x}\right)}}} \]
        15. *-commutativeN/A

          \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left({\log y}^{\sin x}, y, \color{blue}{\sqrt[3]{y \cdot x} \cdot x}\right)}} \]
      3. Applied rewrites41.2%

        \[\leadsto \color{blue}{\frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left({\log y}^{\sin x}, y, \sqrt[3]{x \cdot y} \cdot x\right)}}} \]
      4. Taylor expanded in y around inf

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}}} \]
      5. Step-by-step derivation
        1. lower-/.f64N/A

          \[\leadsto \frac{1}{\frac{1}{\color{blue}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}}} \]
        2. lower-exp.f64N/A

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
        3. lower-*.f64N/A

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
        4. lower-log.f64N/A

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
        5. lower-*.f64N/A

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
        6. lower-log.f64N/A

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
        7. lower-/.f64N/A

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
        8. lower-sin.f6464.1%

          \[\leadsto \frac{1}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}} \]
      6. Applied rewrites64.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{\log \left(-1 \cdot \log \left(\frac{1}{y}\right)\right) \cdot \sin x}}}} \]

      if 500 < (+.f64 (pow.f64 (log.f64 y) (sin.f64 x)) (*.f64 (/.f64 x y) (cbrt.f64 (*.f64 y x))))

      1. Initial program 78.5%

        \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
      3. Step-by-step derivation
        1. Applied rewrites69.5%

          \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
        2. Step-by-step derivation
          1. lift-+.f64N/A

            \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
          2. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
          3. lift-*.f64N/A

            \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
          4. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
          5. lift-*.f64N/A

            \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
          6. cbrt-unprodN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
          7. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
          8. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
          9. *-commutativeN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
          10. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
          11. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
          12. cbrt-prodN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
          13. lift-*.f64N/A

            \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
          14. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
          15. lower-fma.f6469.5%

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
        3. Applied rewrites69.5%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
        4. Step-by-step derivation
          1. lift-fma.f64N/A

            \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{x \cdot y} + 1} \]
          2. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
          3. lift-*.f64N/A

            \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
          4. cbrt-prodN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
          5. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
          6. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
          7. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{y}} + 1 \]
          8. lift-*.f64N/A

            \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} \cdot \sqrt[3]{y} + 1 \]
          9. *-commutativeN/A

            \[\leadsto \color{blue}{\sqrt[3]{y} \cdot \left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} + 1 \]
          10. lift-*.f64N/A

            \[\leadsto \sqrt[3]{y} \cdot \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} + 1 \]
          11. associate-*r*N/A

            \[\leadsto \color{blue}{\left(\sqrt[3]{y} \cdot \frac{x}{y}\right) \cdot \sqrt[3]{x}} + 1 \]
          12. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)} \]
          13. lower-*.f6486.5%

            \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{y} \cdot \frac{x}{y}}, \sqrt[3]{x}, 1\right) \]
        5. Applied rewrites86.5%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)} \]
      4. Recombined 2 regimes into one program.
      5. Add Preprocessing

      Alternative 5: 86.5% accurate, 1.9× speedup?

      \[\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right) \]
      (FPCore (y x)
        :precision binary64
        (fma (* (cbrt y) (/ x y)) (cbrt x) 1.0))
      double code(double y, double x) {
      	return fma((cbrt(y) * (x / y)), cbrt(x), 1.0);
      }
      
      function code(y, x)
      	return fma(Float64(cbrt(y) * Float64(x / y)), cbrt(x), 1.0)
      end
      
      code[y_, x_] := N[(N[(N[Power[y, 1/3], $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision] * N[Power[x, 1/3], $MachinePrecision] + 1.0), $MachinePrecision]
      
      \mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)
      
      Derivation
      1. Initial program 78.5%

        \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
      3. Step-by-step derivation
        1. Applied rewrites69.5%

          \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
        2. Step-by-step derivation
          1. lift-+.f64N/A

            \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
          2. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
          3. lift-*.f64N/A

            \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
          4. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
          5. lift-*.f64N/A

            \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
          6. cbrt-unprodN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
          7. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
          8. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
          9. *-commutativeN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
          10. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
          11. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
          12. cbrt-prodN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
          13. lift-*.f64N/A

            \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
          14. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
          15. lower-fma.f6469.5%

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
        3. Applied rewrites69.5%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
        4. Step-by-step derivation
          1. lift-fma.f64N/A

            \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{x \cdot y} + 1} \]
          2. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
          3. lift-*.f64N/A

            \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
          4. cbrt-prodN/A

            \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
          5. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
          6. lift-cbrt.f64N/A

            \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
          7. associate-*l*N/A

            \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{y}} + 1 \]
          8. lift-*.f64N/A

            \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} \cdot \sqrt[3]{y} + 1 \]
          9. *-commutativeN/A

            \[\leadsto \color{blue}{\sqrt[3]{y} \cdot \left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} + 1 \]
          10. lift-*.f64N/A

            \[\leadsto \sqrt[3]{y} \cdot \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right)} + 1 \]
          11. associate-*r*N/A

            \[\leadsto \color{blue}{\left(\sqrt[3]{y} \cdot \frac{x}{y}\right) \cdot \sqrt[3]{x}} + 1 \]
          12. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)} \]
          13. lower-*.f6486.5%

            \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{y} \cdot \frac{x}{y}}, \sqrt[3]{x}, 1\right) \]
        5. Applied rewrites86.5%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{y} \cdot \frac{x}{y}, \sqrt[3]{x}, 1\right)} \]
        6. Add Preprocessing

        Alternative 6: 86.5% accurate, 1.9× speedup?

        \[\mathsf{fma}\left(x \cdot \frac{\sqrt[3]{x}}{y}, \sqrt[3]{y}, 1\right) \]
        (FPCore (y x)
          :precision binary64
          (fma (* x (/ (cbrt x) y)) (cbrt y) 1.0))
        double code(double y, double x) {
        	return fma((x * (cbrt(x) / y)), cbrt(y), 1.0);
        }
        
        function code(y, x)
        	return fma(Float64(x * Float64(cbrt(x) / y)), cbrt(y), 1.0)
        end
        
        code[y_, x_] := N[(N[(x * N[(N[Power[x, 1/3], $MachinePrecision] / y), $MachinePrecision]), $MachinePrecision] * N[Power[y, 1/3], $MachinePrecision] + 1.0), $MachinePrecision]
        
        \mathsf{fma}\left(x \cdot \frac{\sqrt[3]{x}}{y}, \sqrt[3]{y}, 1\right)
        
        Derivation
        1. Initial program 78.5%

          \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
        2. Taylor expanded in x around 0

          \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
        3. Step-by-step derivation
          1. Applied rewrites69.5%

            \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
          2. Step-by-step derivation
            1. lift-+.f64N/A

              \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
            2. +-commutativeN/A

              \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
            3. lift-*.f64N/A

              \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
            4. lift-cbrt.f64N/A

              \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
            5. lift-*.f64N/A

              \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
            6. cbrt-unprodN/A

              \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
            7. lift-cbrt.f64N/A

              \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
            8. lift-cbrt.f64N/A

              \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
            9. *-commutativeN/A

              \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
            10. associate-*r*N/A

              \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{y}} + 1 \]
            11. lower-fma.f64N/A

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y} \cdot \sqrt[3]{x}, \sqrt[3]{y}, 1\right)} \]
            12. lower-*.f6486.5%

              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{x}{y} \cdot \sqrt[3]{x}}, \sqrt[3]{y}, 1\right) \]
          3. Applied rewrites86.5%

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y} \cdot \sqrt[3]{x}, \sqrt[3]{y}, 1\right)} \]
          4. Step-by-step derivation
            1. lift-*.f64N/A

              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{x}{y} \cdot \sqrt[3]{x}}, \sqrt[3]{y}, 1\right) \]
            2. lift-/.f64N/A

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

              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{x \cdot \sqrt[3]{x}}{y}}, \sqrt[3]{y}, 1\right) \]
            4. associate-/l*N/A

              \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \frac{\sqrt[3]{x}}{y}}, \sqrt[3]{y}, 1\right) \]
            5. div-flip-revN/A

              \[\leadsto \mathsf{fma}\left(x \cdot \color{blue}{\frac{1}{\frac{y}{\sqrt[3]{x}}}}, \sqrt[3]{y}, 1\right) \]
            6. lift-/.f64N/A

              \[\leadsto \mathsf{fma}\left(x \cdot \frac{1}{\color{blue}{\frac{y}{\sqrt[3]{x}}}}, \sqrt[3]{y}, 1\right) \]
            7. lower-*.f64N/A

              \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \frac{1}{\frac{y}{\sqrt[3]{x}}}}, \sqrt[3]{y}, 1\right) \]
            8. lift-/.f64N/A

              \[\leadsto \mathsf{fma}\left(x \cdot \frac{1}{\color{blue}{\frac{y}{\sqrt[3]{x}}}}, \sqrt[3]{y}, 1\right) \]
            9. div-flip-revN/A

              \[\leadsto \mathsf{fma}\left(x \cdot \color{blue}{\frac{\sqrt[3]{x}}{y}}, \sqrt[3]{y}, 1\right) \]
            10. lower-/.f6486.5%

              \[\leadsto \mathsf{fma}\left(x \cdot \color{blue}{\frac{\sqrt[3]{x}}{y}}, \sqrt[3]{y}, 1\right) \]
          5. Applied rewrites86.5%

            \[\leadsto \mathsf{fma}\left(\color{blue}{x \cdot \frac{\sqrt[3]{x}}{y}}, \sqrt[3]{y}, 1\right) \]
          6. Add Preprocessing

          Alternative 7: 84.0% accurate, 2.0× speedup?

          \[\mathsf{fma}\left(x \cdot {y}^{-0.6666666666666666}, \sqrt[3]{x}, 1\right) \]
          (FPCore (y x)
            :precision binary64
            (fma (* x (pow y -0.6666666666666666)) (cbrt x) 1.0))
          double code(double y, double x) {
          	return fma((x * pow(y, -0.6666666666666666)), cbrt(x), 1.0);
          }
          
          function code(y, x)
          	return fma(Float64(x * (y ^ -0.6666666666666666)), cbrt(x), 1.0)
          end
          
          code[y_, x_] := N[(N[(x * N[Power[y, -0.6666666666666666], $MachinePrecision]), $MachinePrecision] * N[Power[x, 1/3], $MachinePrecision] + 1.0), $MachinePrecision]
          
          \mathsf{fma}\left(x \cdot {y}^{-0.6666666666666666}, \sqrt[3]{x}, 1\right)
          
          Derivation
          1. Initial program 78.5%

            \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
          2. Taylor expanded in x around 0

            \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
          3. Step-by-step derivation
            1. Applied rewrites69.5%

              \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
            2. Step-by-step derivation
              1. lift-+.f64N/A

                \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
              3. lift-*.f64N/A

                \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
              4. lift-cbrt.f64N/A

                \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
              5. lift-*.f64N/A

                \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
              6. cbrt-unprodN/A

                \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
              7. lift-cbrt.f64N/A

                \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
              8. lift-cbrt.f64N/A

                \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
              9. *-commutativeN/A

                \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
              10. lift-cbrt.f64N/A

                \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
              11. lift-cbrt.f64N/A

                \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
              12. cbrt-prodN/A

                \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
              13. lift-*.f64N/A

                \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
              14. lift-cbrt.f64N/A

                \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
              15. lower-fma.f6469.5%

                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
            3. Applied rewrites69.5%

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
            4. Step-by-step derivation
              1. lift-fma.f64N/A

                \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{x \cdot y} + 1} \]
              2. lift-/.f64N/A

                \[\leadsto \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{x \cdot y} + 1 \]
              3. mult-flipN/A

                \[\leadsto \color{blue}{\left(x \cdot \frac{1}{y}\right)} \cdot \sqrt[3]{x \cdot y} + 1 \]
              4. lift-/.f64N/A

                \[\leadsto \left(x \cdot \color{blue}{\frac{1}{y}}\right) \cdot \sqrt[3]{x \cdot y} + 1 \]
              5. associate-*l*N/A

                \[\leadsto \color{blue}{x \cdot \left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + 1 \]
              6. lift-*.f64N/A

                \[\leadsto x \cdot \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + 1 \]
              7. *-commutativeN/A

                \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right) \cdot x} + 1 \]
              8. lower-fma.f6469.5%

                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}, x, 1\right)} \]
              9. lift-*.f64N/A

                \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{y} \cdot \sqrt[3]{x \cdot y}}, x, 1\right) \]
              10. *-commutativeN/A

                \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{x \cdot y} \cdot \frac{1}{y}}, x, 1\right) \]
              11. lift-/.f64N/A

                \[\leadsto \mathsf{fma}\left(\sqrt[3]{x \cdot y} \cdot \color{blue}{\frac{1}{y}}, x, 1\right) \]
              12. mult-flip-revN/A

                \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}}, x, 1\right) \]
              13. lower-/.f6469.5%

                \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}}, x, 1\right) \]
            5. Applied rewrites69.5%

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, 1\right)} \]
            6. Step-by-step derivation
              1. lift-fma.f64N/A

                \[\leadsto \color{blue}{\frac{\sqrt[3]{x \cdot y}}{y} \cdot x + 1} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{1 + \frac{\sqrt[3]{x \cdot y}}{y} \cdot x} \]
              3. lift-/.f64N/A

                \[\leadsto 1 + \color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}} \cdot x \]
              4. associate-*l/N/A

                \[\leadsto 1 + \color{blue}{\frac{\sqrt[3]{x \cdot y} \cdot x}{y}} \]
              5. *-commutativeN/A

                \[\leadsto 1 + \frac{\color{blue}{x \cdot \sqrt[3]{x \cdot y}}}{y} \]
              6. lift-cbrt.f64N/A

                \[\leadsto 1 + \frac{x \cdot \color{blue}{\sqrt[3]{x \cdot y}}}{y} \]
              7. lift-*.f64N/A

                \[\leadsto 1 + \frac{x \cdot \sqrt[3]{\color{blue}{x \cdot y}}}{y} \]
              8. cbrt-prodN/A

                \[\leadsto 1 + \frac{x \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)}}{y} \]
              9. lift-cbrt.f64N/A

                \[\leadsto 1 + \frac{x \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right)}{y} \]
              10. lift-cbrt.f64N/A

                \[\leadsto 1 + \frac{x \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right)}{y} \]
              11. *-commutativeN/A

                \[\leadsto 1 + \frac{x \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)}}{y} \]
              12. lift-*.f64N/A

                \[\leadsto 1 + \frac{x \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)}}{y} \]
              13. associate-*l/N/A

                \[\leadsto 1 + \color{blue}{\frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} \]
              14. lift-/.f64N/A

                \[\leadsto 1 + \color{blue}{\frac{x}{y}} \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right) \]
              15. +-commutativeN/A

                \[\leadsto \color{blue}{\frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right) + 1} \]
            7. Applied rewrites84.0%

              \[\leadsto \color{blue}{\mathsf{fma}\left(x \cdot {y}^{-0.6666666666666666}, \sqrt[3]{x}, 1\right)} \]
            8. Add Preprocessing

            Alternative 8: 72.8% accurate, 2.0× speedup?

            \[\begin{array}{l} \mathbf{if}\;x \leq 1.25 \cdot 10^{+117}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left({y}^{-0.6666666666666666}, {x}^{1.3333333333333333}, 1\right)\\ \end{array} \]
            (FPCore (y x)
              :precision binary64
              (if (<= x 1.25e+117)
              (fma (/ x y) (cbrt (* x y)) 1.0)
              (fma (pow y -0.6666666666666666) (pow x 1.3333333333333333) 1.0)))
            double code(double y, double x) {
            	double tmp;
            	if (x <= 1.25e+117) {
            		tmp = fma((x / y), cbrt((x * y)), 1.0);
            	} else {
            		tmp = fma(pow(y, -0.6666666666666666), pow(x, 1.3333333333333333), 1.0);
            	}
            	return tmp;
            }
            
            function code(y, x)
            	tmp = 0.0
            	if (x <= 1.25e+117)
            		tmp = fma(Float64(x / y), cbrt(Float64(x * y)), 1.0);
            	else
            		tmp = fma((y ^ -0.6666666666666666), (x ^ 1.3333333333333333), 1.0);
            	end
            	return tmp
            end
            
            code[y_, x_] := If[LessEqual[x, 1.25e+117], N[(N[(x / y), $MachinePrecision] * N[Power[N[(x * y), $MachinePrecision], 1/3], $MachinePrecision] + 1.0), $MachinePrecision], N[(N[Power[y, -0.6666666666666666], $MachinePrecision] * N[Power[x, 1.3333333333333333], $MachinePrecision] + 1.0), $MachinePrecision]]
            
            \begin{array}{l}
            \mathbf{if}\;x \leq 1.25 \cdot 10^{+117}:\\
            \;\;\;\;\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;\mathsf{fma}\left({y}^{-0.6666666666666666}, {x}^{1.3333333333333333}, 1\right)\\
            
            
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if x < 1.25e117

              1. Initial program 78.5%

                \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
              2. Taylor expanded in x around 0

                \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
              3. Step-by-step derivation
                1. Applied rewrites69.5%

                  \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                2. Step-by-step derivation
                  1. lift-+.f64N/A

                    \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                  2. +-commutativeN/A

                    \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
                  3. lift-*.f64N/A

                    \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
                  4. lift-cbrt.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
                  5. lift-*.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
                  6. cbrt-unprodN/A

                    \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
                  7. lift-cbrt.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
                  8. lift-cbrt.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
                  9. *-commutativeN/A

                    \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
                  10. lift-cbrt.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
                  11. lift-cbrt.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
                  12. cbrt-prodN/A

                    \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                  13. lift-*.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
                  14. lift-cbrt.f64N/A

                    \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                  15. lower-fma.f6469.5%

                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                3. Applied rewrites69.5%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]

                if 1.25e117 < x

                1. Initial program 78.5%

                  \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                2. Taylor expanded in x around 0

                  \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                3. Step-by-step derivation
                  1. Applied rewrites69.5%

                    \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                  2. Step-by-step derivation
                    1. lift-+.f64N/A

                      \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                    2. +-commutativeN/A

                      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
                    3. lift-*.f64N/A

                      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
                    4. lift-cbrt.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
                    5. lift-*.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
                    6. cbrt-unprodN/A

                      \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
                    7. lift-cbrt.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
                    8. lift-cbrt.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
                    9. *-commutativeN/A

                      \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
                    10. lift-cbrt.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
                    11. lift-cbrt.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
                    12. cbrt-prodN/A

                      \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                    13. lift-*.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
                    14. lift-cbrt.f64N/A

                      \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                    15. lower-fma.f6469.5%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                  3. Applied rewrites69.5%

                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                  4. Step-by-step derivation
                    1. lift-fma.f64N/A

                      \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{x \cdot y} + 1} \]
                    2. lift-/.f64N/A

                      \[\leadsto \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{x \cdot y} + 1 \]
                    3. mult-flipN/A

                      \[\leadsto \color{blue}{\left(x \cdot \frac{1}{y}\right)} \cdot \sqrt[3]{x \cdot y} + 1 \]
                    4. lift-/.f64N/A

                      \[\leadsto \left(x \cdot \color{blue}{\frac{1}{y}}\right) \cdot \sqrt[3]{x \cdot y} + 1 \]
                    5. associate-*l*N/A

                      \[\leadsto \color{blue}{x \cdot \left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + 1 \]
                    6. lift-*.f64N/A

                      \[\leadsto x \cdot \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + 1 \]
                    7. *-commutativeN/A

                      \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right) \cdot x} + 1 \]
                    8. lift-*.f64N/A

                      \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} \cdot x + 1 \]
                    9. *-commutativeN/A

                      \[\leadsto \color{blue}{\left(\sqrt[3]{x \cdot y} \cdot \frac{1}{y}\right)} \cdot x + 1 \]
                    10. lift-/.f64N/A

                      \[\leadsto \left(\sqrt[3]{x \cdot y} \cdot \color{blue}{\frac{1}{y}}\right) \cdot x + 1 \]
                    11. mult-flip-revN/A

                      \[\leadsto \color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}} \cdot x + 1 \]
                    12. lift-cbrt.f64N/A

                      \[\leadsto \frac{\color{blue}{\sqrt[3]{x \cdot y}}}{y} \cdot x + 1 \]
                    13. lift-*.f64N/A

                      \[\leadsto \frac{\sqrt[3]{\color{blue}{x \cdot y}}}{y} \cdot x + 1 \]
                    14. *-commutativeN/A

                      \[\leadsto \frac{\sqrt[3]{\color{blue}{y \cdot x}}}{y} \cdot x + 1 \]
                    15. cbrt-prodN/A

                      \[\leadsto \frac{\color{blue}{\sqrt[3]{y} \cdot \sqrt[3]{x}}}{y} \cdot x + 1 \]
                    16. lift-cbrt.f64N/A

                      \[\leadsto \frac{\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}}{y} \cdot x + 1 \]
                    17. lift-cbrt.f64N/A

                      \[\leadsto \frac{\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}}{y} \cdot x + 1 \]
                    18. associate-*l/N/A

                      \[\leadsto \color{blue}{\left(\frac{\sqrt[3]{y}}{y} \cdot \sqrt[3]{x}\right)} \cdot x + 1 \]
                    19. associate-*l*N/A

                      \[\leadsto \color{blue}{\frac{\sqrt[3]{y}}{y} \cdot \left(\sqrt[3]{x} \cdot x\right)} + 1 \]
                    20. *-commutativeN/A

                      \[\leadsto \frac{\sqrt[3]{y}}{y} \cdot \color{blue}{\left(x \cdot \sqrt[3]{x}\right)} + 1 \]
                  5. Applied rewrites38.9%

                    \[\leadsto \color{blue}{\mathsf{fma}\left({y}^{-0.6666666666666666}, {x}^{1.3333333333333333}, 1\right)} \]
                4. Recombined 2 regimes into one program.
                5. Add Preprocessing

                Alternative 9: 72.8% accurate, 2.0× speedup?

                \[\begin{array}{l} \mathbf{if}\;x \leq 1.25 \cdot 10^{+117}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{{x}^{1.3333333333333333}}{{y}^{0.6666666666666666}}\\ \end{array} \]
                (FPCore (y x)
                  :precision binary64
                  (if (<= x 1.25e+117)
                  (fma (/ x y) (cbrt (* x y)) 1.0)
                  (/ (pow x 1.3333333333333333) (pow y 0.6666666666666666))))
                double code(double y, double x) {
                	double tmp;
                	if (x <= 1.25e+117) {
                		tmp = fma((x / y), cbrt((x * y)), 1.0);
                	} else {
                		tmp = pow(x, 1.3333333333333333) / pow(y, 0.6666666666666666);
                	}
                	return tmp;
                }
                
                function code(y, x)
                	tmp = 0.0
                	if (x <= 1.25e+117)
                		tmp = fma(Float64(x / y), cbrt(Float64(x * y)), 1.0);
                	else
                		tmp = Float64((x ^ 1.3333333333333333) / (y ^ 0.6666666666666666));
                	end
                	return tmp
                end
                
                code[y_, x_] := If[LessEqual[x, 1.25e+117], N[(N[(x / y), $MachinePrecision] * N[Power[N[(x * y), $MachinePrecision], 1/3], $MachinePrecision] + 1.0), $MachinePrecision], N[(N[Power[x, 1.3333333333333333], $MachinePrecision] / N[Power[y, 0.6666666666666666], $MachinePrecision]), $MachinePrecision]]
                
                \begin{array}{l}
                \mathbf{if}\;x \leq 1.25 \cdot 10^{+117}:\\
                \;\;\;\;\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)\\
                
                \mathbf{else}:\\
                \;\;\;\;\frac{{x}^{1.3333333333333333}}{{y}^{0.6666666666666666}}\\
                
                
                \end{array}
                
                Derivation
                1. Split input into 2 regimes
                2. if x < 1.25e117

                  1. Initial program 78.5%

                    \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                  2. Taylor expanded in x around 0

                    \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                  3. Step-by-step derivation
                    1. Applied rewrites69.5%

                      \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                    2. Step-by-step derivation
                      1. lift-+.f64N/A

                        \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                      2. +-commutativeN/A

                        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
                      3. lift-*.f64N/A

                        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
                      4. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
                      5. lift-*.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
                      6. cbrt-unprodN/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
                      7. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
                      8. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
                      9. *-commutativeN/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
                      10. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
                      11. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
                      12. cbrt-prodN/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                      13. lift-*.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
                      14. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                      15. lower-fma.f6469.5%

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                    3. Applied rewrites69.5%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]

                    if 1.25e117 < x

                    1. Initial program 78.5%

                      \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                    2. Step-by-step derivation
                      1. lift-+.f64N/A

                        \[\leadsto \color{blue}{{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                      2. lift-*.f64N/A

                        \[\leadsto {\log y}^{\sin x} + \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                      3. lift-/.f64N/A

                        \[\leadsto {\log y}^{\sin x} + \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{y \cdot x} \]
                      4. associate-*l/N/A

                        \[\leadsto {\log y}^{\sin x} + \color{blue}{\frac{x \cdot \sqrt[3]{y \cdot x}}{y}} \]
                      5. add-to-fractionN/A

                        \[\leadsto \color{blue}{\frac{{\log y}^{\sin x} \cdot y + x \cdot \sqrt[3]{y \cdot x}}{y}} \]
                      6. div-addN/A

                        \[\leadsto \color{blue}{\frac{{\log y}^{\sin x} \cdot y}{y} + \frac{x \cdot \sqrt[3]{y \cdot x}}{y}} \]
                      7. common-denominatorN/A

                        \[\leadsto \color{blue}{\frac{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}{y \cdot y}} \]
                      8. div-flipN/A

                        \[\leadsto \color{blue}{\frac{1}{\frac{y \cdot y}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}}} \]
                      9. lower-unsound-/.f64N/A

                        \[\leadsto \color{blue}{\frac{1}{\frac{y \cdot y}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}}} \]
                      10. lower-unsound-/.f64N/A

                        \[\leadsto \frac{1}{\color{blue}{\frac{y \cdot y}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}}} \]
                      11. lower-*.f64N/A

                        \[\leadsto \frac{1}{\frac{\color{blue}{y \cdot y}}{\left({\log y}^{\sin x} \cdot y\right) \cdot y + \left(x \cdot \sqrt[3]{y \cdot x}\right) \cdot y}} \]
                      12. distribute-rgt-outN/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{\color{blue}{y \cdot \left({\log y}^{\sin x} \cdot y + x \cdot \sqrt[3]{y \cdot x}\right)}}} \]
                      13. lower-*.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{\color{blue}{y \cdot \left({\log y}^{\sin x} \cdot y + x \cdot \sqrt[3]{y \cdot x}\right)}}} \]
                      14. lower-fma.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \color{blue}{\mathsf{fma}\left({\log y}^{\sin x}, y, x \cdot \sqrt[3]{y \cdot x}\right)}}} \]
                      15. *-commutativeN/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left({\log y}^{\sin x}, y, \color{blue}{\sqrt[3]{y \cdot x} \cdot x}\right)}} \]
                    3. Applied rewrites41.2%

                      \[\leadsto \color{blue}{\frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left({\log y}^{\sin x}, y, \sqrt[3]{x \cdot y} \cdot x\right)}}} \]
                    4. Step-by-step derivation
                      1. lift-pow.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(\color{blue}{{\log y}^{\sin x}}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                      2. pow-to-expN/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(\color{blue}{e^{\log \log y \cdot \sin x}}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                      3. lower-unsound-exp.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(\color{blue}{e^{\log \log y \cdot \sin x}}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                      4. lower-unsound-*.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(e^{\color{blue}{\log \log y \cdot \sin x}}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                      5. lower-unsound-log.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(e^{\log \color{blue}{\log y} \cdot \sin x}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                      6. lower-unsound-log.f64N/A

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(e^{\color{blue}{\log \log y} \cdot \sin x}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                      7. lower-unsound-log.f6441.2%

                        \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(e^{\log \color{blue}{\log y} \cdot \sin x}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                    5. Applied rewrites41.2%

                      \[\leadsto \frac{1}{\frac{y \cdot y}{y \cdot \mathsf{fma}\left(\color{blue}{e^{\log \log y \cdot \sin x}}, y, \sqrt[3]{x \cdot y} \cdot x\right)}} \]
                    6. Taylor expanded in y around 0

                      \[\leadsto \color{blue}{\frac{{x}^{\frac{4}{3}}}{{y}^{\frac{2}{3}}}} \]
                    7. Step-by-step derivation
                      1. lower-/.f64N/A

                        \[\leadsto \frac{{x}^{\frac{4}{3}}}{\color{blue}{{y}^{\frac{2}{3}}}} \]
                      2. lower-pow.f64N/A

                        \[\leadsto \frac{{x}^{\frac{4}{3}}}{{\color{blue}{y}}^{\frac{2}{3}}} \]
                      3. lower-pow.f6414.3%

                        \[\leadsto \frac{{x}^{1.3333333333333333}}{{y}^{\color{blue}{0.6666666666666666}}} \]
                    8. Applied rewrites14.3%

                      \[\leadsto \color{blue}{\frac{{x}^{1.3333333333333333}}{{y}^{0.6666666666666666}}} \]
                  4. Recombined 2 regimes into one program.
                  5. Add Preprocessing

                  Alternative 10: 69.5% accurate, 3.0× speedup?

                  \[\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, 1\right) \]
                  (FPCore (y x)
                    :precision binary64
                    (fma (/ (cbrt (* x y)) y) x 1.0))
                  double code(double y, double x) {
                  	return fma((cbrt((x * y)) / y), x, 1.0);
                  }
                  
                  function code(y, x)
                  	return fma(Float64(cbrt(Float64(x * y)) / y), x, 1.0)
                  end
                  
                  code[y_, x_] := N[(N[(N[Power[N[(x * y), $MachinePrecision], 1/3], $MachinePrecision] / y), $MachinePrecision] * x + 1.0), $MachinePrecision]
                  
                  \mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, 1\right)
                  
                  Derivation
                  1. Initial program 78.5%

                    \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                  2. Taylor expanded in x around 0

                    \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                  3. Step-by-step derivation
                    1. Applied rewrites69.5%

                      \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                    2. Step-by-step derivation
                      1. lift-+.f64N/A

                        \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                      2. +-commutativeN/A

                        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
                      3. lift-*.f64N/A

                        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
                      4. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
                      5. lift-*.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
                      6. cbrt-unprodN/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
                      7. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
                      8. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
                      9. *-commutativeN/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
                      10. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
                      11. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
                      12. cbrt-prodN/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                      13. lift-*.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
                      14. lift-cbrt.f64N/A

                        \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                      15. lower-fma.f6469.5%

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                    3. Applied rewrites69.5%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                    4. Step-by-step derivation
                      1. lift-fma.f64N/A

                        \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{x \cdot y} + 1} \]
                      2. lift-/.f64N/A

                        \[\leadsto \color{blue}{\frac{x}{y}} \cdot \sqrt[3]{x \cdot y} + 1 \]
                      3. mult-flipN/A

                        \[\leadsto \color{blue}{\left(x \cdot \frac{1}{y}\right)} \cdot \sqrt[3]{x \cdot y} + 1 \]
                      4. lift-/.f64N/A

                        \[\leadsto \left(x \cdot \color{blue}{\frac{1}{y}}\right) \cdot \sqrt[3]{x \cdot y} + 1 \]
                      5. associate-*l*N/A

                        \[\leadsto \color{blue}{x \cdot \left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + 1 \]
                      6. lift-*.f64N/A

                        \[\leadsto x \cdot \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right)} + 1 \]
                      7. *-commutativeN/A

                        \[\leadsto \color{blue}{\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}\right) \cdot x} + 1 \]
                      8. lower-fma.f6469.5%

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{y} \cdot \sqrt[3]{x \cdot y}, x, 1\right)} \]
                      9. lift-*.f64N/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1}{y} \cdot \sqrt[3]{x \cdot y}}, x, 1\right) \]
                      10. *-commutativeN/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\sqrt[3]{x \cdot y} \cdot \frac{1}{y}}, x, 1\right) \]
                      11. lift-/.f64N/A

                        \[\leadsto \mathsf{fma}\left(\sqrt[3]{x \cdot y} \cdot \color{blue}{\frac{1}{y}}, x, 1\right) \]
                      12. mult-flip-revN/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}}, x, 1\right) \]
                      13. lower-/.f6469.5%

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\sqrt[3]{x \cdot y}}{y}}, x, 1\right) \]
                    5. Applied rewrites69.5%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{x \cdot y}}{y}, x, 1\right)} \]
                    6. Add Preprocessing

                    Alternative 11: 69.5% accurate, 3.0× speedup?

                    \[\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right) \]
                    (FPCore (y x)
                      :precision binary64
                      (fma (/ x y) (cbrt (* x y)) 1.0))
                    double code(double y, double x) {
                    	return fma((x / y), cbrt((x * y)), 1.0);
                    }
                    
                    function code(y, x)
                    	return fma(Float64(x / y), cbrt(Float64(x * y)), 1.0)
                    end
                    
                    code[y_, x_] := N[(N[(x / y), $MachinePrecision] * N[Power[N[(x * y), $MachinePrecision], 1/3], $MachinePrecision] + 1.0), $MachinePrecision]
                    
                    \mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)
                    
                    Derivation
                    1. Initial program 78.5%

                      \[{\log y}^{\sin x} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                    2. Taylor expanded in x around 0

                      \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                    3. Step-by-step derivation
                      1. Applied rewrites69.5%

                        \[\leadsto \color{blue}{1} + \frac{x}{y} \cdot \sqrt[3]{y \cdot x} \]
                      2. Step-by-step derivation
                        1. lift-+.f64N/A

                          \[\leadsto \color{blue}{1 + \frac{x}{y} \cdot \sqrt[3]{y \cdot x}} \]
                        2. +-commutativeN/A

                          \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x} + 1} \]
                        3. lift-*.f64N/A

                          \[\leadsto \color{blue}{\frac{x}{y} \cdot \sqrt[3]{y \cdot x}} + 1 \]
                        4. lift-cbrt.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{y \cdot x}} + 1 \]
                        5. lift-*.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{y \cdot x}} + 1 \]
                        6. cbrt-unprodN/A

                          \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{x}\right)} + 1 \]
                        7. lift-cbrt.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{y}} \cdot \sqrt[3]{x}\right) + 1 \]
                        8. lift-cbrt.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{y} \cdot \color{blue}{\sqrt[3]{x}}\right) + 1 \]
                        9. *-commutativeN/A

                          \[\leadsto \frac{x}{y} \cdot \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{y}\right)} + 1 \]
                        10. lift-cbrt.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \left(\color{blue}{\sqrt[3]{x}} \cdot \sqrt[3]{y}\right) + 1 \]
                        11. lift-cbrt.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \left(\sqrt[3]{x} \cdot \color{blue}{\sqrt[3]{y}}\right) + 1 \]
                        12. cbrt-prodN/A

                          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                        13. lift-*.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \sqrt[3]{\color{blue}{x \cdot y}} + 1 \]
                        14. lift-cbrt.f64N/A

                          \[\leadsto \frac{x}{y} \cdot \color{blue}{\sqrt[3]{x \cdot y}} + 1 \]
                        15. lower-fma.f6469.5%

                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                      3. Applied rewrites69.5%

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{x}{y}, \sqrt[3]{x \cdot y}, 1\right)} \]
                      4. Add Preprocessing

                      Reproduce

                      ?
                      herbie shell --seed 1 
                      (FPCore (y x)
                        :name "pow(log(y),sin(x))+(x/y)*cbrt(y*x)"
                        :precision binary64
                        :pre (and (and (<= -1.79e+308 y) (<= y 1.79e+308)) (and (<= -1.79e+308 x) (<= x 1.79e+308)))
                        (+ (pow (log y) (sin x)) (* (/ x y) (cbrt (* y x)))))