?

Average Error: 16.0 → 0.3
Time: 1.8min
Precision: binary64
Cost: 1092

?

\[-\left(\left(a \cdot a\right) \cdot b\right) \cdot b \]
\[-\begin{array}{l} \mathbf{if}\;a \cdot b \ne 0:\\ \;\;\;\;\frac{1}{\frac{\frac{-1}{a}}{-b}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ \end{array} \cdot \left(a \cdot b\right) \]
(FPCore (a b) :precision binary64 (- (* (* (* a a) b) b)))
(FPCore (a b)
 :precision binary64
 (- (* (if (!= (* a b) 0.0) (/ 1.0 (/ (/ -1.0 a) (- b))) (* a b)) (* a b))))
double code(double a, double b) {
	return -(((a * a) * b) * b);
}
double code(double a, double b) {
	double tmp;
	if ((a * b) != 0.0) {
		tmp = 1.0 / ((-1.0 / a) / -b);
	} else {
		tmp = a * b;
	}
	return -(tmp * (a * b));
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = -(((a * a) * b) * b)
end function
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if ((a * b) /= 0.0d0) then
        tmp = 1.0d0 / (((-1.0d0) / a) / -b)
    else
        tmp = a * b
    end if
    code = -(tmp * (a * b))
end function
public static double code(double a, double b) {
	return -(((a * a) * b) * b);
}
public static double code(double a, double b) {
	double tmp;
	if ((a * b) != 0.0) {
		tmp = 1.0 / ((-1.0 / a) / -b);
	} else {
		tmp = a * b;
	}
	return -(tmp * (a * b));
}
def code(a, b):
	return -(((a * a) * b) * b)
def code(a, b):
	tmp = 0
	if (a * b) != 0.0:
		tmp = 1.0 / ((-1.0 / a) / -b)
	else:
		tmp = a * b
	return -(tmp * (a * b))
function code(a, b)
	return Float64(-Float64(Float64(Float64(a * a) * b) * b))
end
function code(a, b)
	tmp = 0.0
	if (Float64(a * b) != 0.0)
		tmp = Float64(1.0 / Float64(Float64(-1.0 / a) / Float64(-b)));
	else
		tmp = Float64(a * b);
	end
	return Float64(-Float64(tmp * Float64(a * b)))
end
function tmp = code(a, b)
	tmp = -(((a * a) * b) * b);
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if ((a * b) ~= 0.0)
		tmp = 1.0 / ((-1.0 / a) / -b);
	else
		tmp = a * b;
	end
	tmp_2 = -(tmp * (a * b));
end
code[a_, b_] := (-N[(N[(N[(a * a), $MachinePrecision] * b), $MachinePrecision] * b), $MachinePrecision])
code[a_, b_] := (-N[(If[Unequal[N[(a * b), $MachinePrecision], 0.0], N[(1.0 / N[(N[(-1.0 / a), $MachinePrecision] / (-b)), $MachinePrecision]), $MachinePrecision], N[(a * b), $MachinePrecision]] * N[(a * b), $MachinePrecision]), $MachinePrecision])
-\left(\left(a \cdot a\right) \cdot b\right) \cdot b
-\begin{array}{l}
\mathbf{if}\;a \cdot b \ne 0:\\
\;\;\;\;\frac{1}{\frac{\frac{-1}{a}}{-b}}\\

\mathbf{else}:\\
\;\;\;\;a \cdot b\\


\end{array} \cdot \left(a \cdot b\right)

Error?

Derivation?

  1. Initial program 16.0

    \[-\left(\left(a \cdot a\right) \cdot b\right) \cdot b \]
  2. Simplified0.3

    \[\leadsto \color{blue}{-{\left(a \cdot b\right)}^{2}} \]
    Proof
  3. Applied egg-rr16.1

    \[\leadsto -\color{blue}{\left(a \cdot \sqrt[3]{b}\right) \cdot \left(\sqrt[3]{{b}^{2}} \cdot \left(a \cdot b\right)\right)} \]
  4. Simplified0.9

    \[\leadsto -\color{blue}{\left(\left(a \cdot \sqrt[3]{b}\right) \cdot {\left(\sqrt[3]{b}\right)}^{2}\right) \cdot \left(a \cdot b\right)} \]
    Proof
  5. Applied egg-rr0.3

    \[\leadsto -\color{blue}{\begin{array}{l} \color{blue}{\mathbf{if}\;a \cdot b \ne 0:\\ \;\;\;\;{\left(\frac{1}{a \cdot b}\right)}^{-1}\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ } \end{array}} \cdot \left(a \cdot b\right) \]
  6. Simplified0.3

    \[\leadsto -\color{blue}{\begin{array}{l} \color{blue}{\mathbf{if}\;a \cdot b \ne 0:\\ \;\;\;\;{\left(\frac{{a}^{-1}}{b}\right)}^{-1}\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ } \end{array}} \cdot \left(a \cdot b\right) \]
    Proof
  7. Taylor expanded in a around 0 5.2

    \[\leadsto -\color{blue}{a \cdot \left(b \cdot \begin{array}{l} \mathbf{if}\;a \cdot b \ne 0:\\ \;\;\;\;{\left(\frac{{a}^{-1}}{b}\right)}^{-1}\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ \end{array}\right)} \]
  8. Simplified0.3

    \[\leadsto -\color{blue}{\begin{array}{l} \mathbf{if}\;a \cdot b \ne 0:\\ \;\;\;\;\frac{1}{\frac{{b}^{-1}}{a}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ \end{array} \cdot \left(a \cdot b\right)} \]
    Proof
  9. Applied egg-rr0.3

    \[\leadsto -\begin{array}{l} \mathbf{if}\;a \cdot b \ne 0:\\ \;\;\;\;\frac{1}{\color{blue}{\frac{\frac{-1}{a}}{-b}}}\\ \mathbf{else}:\\ \;\;\;\;a \cdot b\\ \end{array} \cdot \left(a \cdot b\right) \]

Alternatives

Alternative 1
Error0.3
Cost512
\[-\left(a \cdot b\right) \cdot \left(a \cdot b\right) \]

Error

Reproduce?

herbie shell --seed 2023033 
(FPCore (a b)
  :name "ab-angle->ABCF D"
  :precision binary64
  (- (* (* (* a a) b) b)))