?

Average Error: 20.3 → 20.5
Time: 17.0s
Precision: binary64
Cost: 20425

?

\[{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} \]
\[\begin{array}{l} \mathbf{if}\;angle \leq -0.0035 \lor \neg \left(angle \leq 0.0031\right):\\ \;\;\;\;{b}^{2} + \frac{a}{\frac{2}{a}} \cdot \left(1 - \cos \left(\pi \cdot \left(angle \cdot 0.011111111111111112\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;{b}^{2} + {\left(\pi \cdot \left(a \cdot angle\right)\right)}^{2} \cdot 3.08641975308642 \cdot 10^{-5}\\ \end{array} \]
(FPCore (a b angle)
 :precision binary64
 (+
  (pow (* a (sin (* (/ angle 180.0) PI))) 2.0)
  (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)))
(FPCore (a b angle)
 :precision binary64
 (if (or (<= angle -0.0035) (not (<= angle 0.0031)))
   (+
    (pow b 2.0)
    (* (/ a (/ 2.0 a)) (- 1.0 (cos (* PI (* angle 0.011111111111111112))))))
   (+ (pow b 2.0) (* (pow (* PI (* a angle)) 2.0) 3.08641975308642e-5))))
double code(double a, double b, double angle) {
	return pow((a * sin(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * cos(((angle / 180.0) * ((double) M_PI)))), 2.0);
}
double code(double a, double b, double angle) {
	double tmp;
	if ((angle <= -0.0035) || !(angle <= 0.0031)) {
		tmp = pow(b, 2.0) + ((a / (2.0 / a)) * (1.0 - cos((((double) M_PI) * (angle * 0.011111111111111112)))));
	} else {
		tmp = pow(b, 2.0) + (pow((((double) M_PI) * (a * angle)), 2.0) * 3.08641975308642e-5);
	}
	return tmp;
}
public static double code(double a, double b, double angle) {
	return Math.pow((a * Math.sin(((angle / 180.0) * Math.PI))), 2.0) + Math.pow((b * Math.cos(((angle / 180.0) * Math.PI))), 2.0);
}
public static double code(double a, double b, double angle) {
	double tmp;
	if ((angle <= -0.0035) || !(angle <= 0.0031)) {
		tmp = Math.pow(b, 2.0) + ((a / (2.0 / a)) * (1.0 - Math.cos((Math.PI * (angle * 0.011111111111111112)))));
	} else {
		tmp = Math.pow(b, 2.0) + (Math.pow((Math.PI * (a * angle)), 2.0) * 3.08641975308642e-5);
	}
	return tmp;
}
def code(a, b, angle):
	return math.pow((a * math.sin(((angle / 180.0) * math.pi))), 2.0) + math.pow((b * math.cos(((angle / 180.0) * math.pi))), 2.0)
def code(a, b, angle):
	tmp = 0
	if (angle <= -0.0035) or not (angle <= 0.0031):
		tmp = math.pow(b, 2.0) + ((a / (2.0 / a)) * (1.0 - math.cos((math.pi * (angle * 0.011111111111111112)))))
	else:
		tmp = math.pow(b, 2.0) + (math.pow((math.pi * (a * angle)), 2.0) * 3.08641975308642e-5)
	return tmp
function code(a, b, angle)
	return Float64((Float64(a * sin(Float64(Float64(angle / 180.0) * pi))) ^ 2.0) + (Float64(b * cos(Float64(Float64(angle / 180.0) * pi))) ^ 2.0))
end
function code(a, b, angle)
	tmp = 0.0
	if ((angle <= -0.0035) || !(angle <= 0.0031))
		tmp = Float64((b ^ 2.0) + Float64(Float64(a / Float64(2.0 / a)) * Float64(1.0 - cos(Float64(pi * Float64(angle * 0.011111111111111112))))));
	else
		tmp = Float64((b ^ 2.0) + Float64((Float64(pi * Float64(a * angle)) ^ 2.0) * 3.08641975308642e-5));
	end
	return tmp
end
function tmp = code(a, b, angle)
	tmp = ((a * sin(((angle / 180.0) * pi))) ^ 2.0) + ((b * cos(((angle / 180.0) * pi))) ^ 2.0);
end
function tmp_2 = code(a, b, angle)
	tmp = 0.0;
	if ((angle <= -0.0035) || ~((angle <= 0.0031)))
		tmp = (b ^ 2.0) + ((a / (2.0 / a)) * (1.0 - cos((pi * (angle * 0.011111111111111112)))));
	else
		tmp = (b ^ 2.0) + (((pi * (a * angle)) ^ 2.0) * 3.08641975308642e-5);
	end
	tmp_2 = tmp;
end
code[a_, b_, angle_] := N[(N[Power[N[(a * N[Sin[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] + N[Power[N[(b * N[Cos[N[(N[(angle / 180.0), $MachinePrecision] * Pi), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]
code[a_, b_, angle_] := If[Or[LessEqual[angle, -0.0035], N[Not[LessEqual[angle, 0.0031]], $MachinePrecision]], N[(N[Power[b, 2.0], $MachinePrecision] + N[(N[(a / N[(2.0 / a), $MachinePrecision]), $MachinePrecision] * N[(1.0 - N[Cos[N[(Pi * N[(angle * 0.011111111111111112), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Power[b, 2.0], $MachinePrecision] + N[(N[Power[N[(Pi * N[(a * angle), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * 3.08641975308642e-5), $MachinePrecision]), $MachinePrecision]]
{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}
\begin{array}{l}
\mathbf{if}\;angle \leq -0.0035 \lor \neg \left(angle \leq 0.0031\right):\\
\;\;\;\;{b}^{2} + \frac{a}{\frac{2}{a}} \cdot \left(1 - \cos \left(\pi \cdot \left(angle \cdot 0.011111111111111112\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;{b}^{2} + {\left(\pi \cdot \left(a \cdot angle\right)\right)}^{2} \cdot 3.08641975308642 \cdot 10^{-5}\\


\end{array}

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation?

  1. Split input into 2 regimes
  2. if angle < -0.00350000000000000007 or 0.00309999999999999989 < angle

    1. Initial program 45.1

      \[{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} \]
    2. Taylor expanded in angle around 0 60.2

      \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \color{blue}{\left(1 + -1.54320987654321 \cdot 10^{-5} \cdot \left({angle}^{2} \cdot {\pi}^{2}\right)\right)}\right)}^{2} \]
    3. Simplified60.2

      \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \color{blue}{\left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \left(angle \cdot angle\right)\right) \cdot {\pi}^{2}\right)}\right)}^{2} \]
      Proof

      [Start]60.2

      \[ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(1 + -1.54320987654321 \cdot 10^{-5} \cdot \left({angle}^{2} \cdot {\pi}^{2}\right)\right)\right)}^{2} \]

      associate-*r* [=>]60.2

      \[ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(1 + \color{blue}{\left(-1.54320987654321 \cdot 10^{-5} \cdot {angle}^{2}\right) \cdot {\pi}^{2}}\right)\right)}^{2} \]

      unpow2 [=>]60.2

      \[ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \color{blue}{\left(angle \cdot angle\right)}\right) \cdot {\pi}^{2}\right)\right)}^{2} \]
    4. Taylor expanded in angle around 0 45.3

      \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\color{blue}{b}}^{2} \]
    5. Applied egg-rr45.3

      \[\leadsto \color{blue}{\frac{\left(a \cdot a\right) \cdot \left(\cos \left(\left(angle \cdot \pi\right) \cdot 0\right) - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right)}{2}} + {b}^{2} \]
    6. Simplified45.3

      \[\leadsto \color{blue}{\frac{a}{\frac{2}{a}} \cdot \left(1 - \cos \left(\pi \cdot \left(angle \cdot 0.011111111111111112\right)\right)\right)} + {b}^{2} \]
      Proof

      [Start]45.3

      \[ \frac{\left(a \cdot a\right) \cdot \left(\cos \left(\left(angle \cdot \pi\right) \cdot 0\right) - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right)}{2} + {b}^{2} \]

      unpow2 [<=]45.3

      \[ \frac{\color{blue}{{a}^{2}} \cdot \left(\cos \left(\left(angle \cdot \pi\right) \cdot 0\right) - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right)}{2} + {b}^{2} \]

      associate-*l/ [<=]45.3

      \[ \color{blue}{\frac{{a}^{2}}{2} \cdot \left(\cos \left(\left(angle \cdot \pi\right) \cdot 0\right) - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right)} + {b}^{2} \]

      unpow2 [=>]45.3

      \[ \frac{\color{blue}{a \cdot a}}{2} \cdot \left(\cos \left(\left(angle \cdot \pi\right) \cdot 0\right) - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right) + {b}^{2} \]

      associate-/l* [=>]45.3

      \[ \color{blue}{\frac{a}{\frac{2}{a}}} \cdot \left(\cos \left(\left(angle \cdot \pi\right) \cdot 0\right) - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right) + {b}^{2} \]

      mul0-rgt [=>]45.3

      \[ \frac{a}{\frac{2}{a}} \cdot \left(\cos \color{blue}{0} - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right) + {b}^{2} \]

      cos-0 [=>]45.3

      \[ \frac{a}{\frac{2}{a}} \cdot \left(\color{blue}{1} - \cos \left(\left(angle \cdot \pi\right) \cdot 0.011111111111111112\right)\right) + {b}^{2} \]

      *-commutative [=>]45.3

      \[ \frac{a}{\frac{2}{a}} \cdot \left(1 - \cos \left(\color{blue}{\left(\pi \cdot angle\right)} \cdot 0.011111111111111112\right)\right) + {b}^{2} \]

      associate-*l* [=>]45.3

      \[ \frac{a}{\frac{2}{a}} \cdot \left(1 - \cos \color{blue}{\left(\pi \cdot \left(angle \cdot 0.011111111111111112\right)\right)}\right) + {b}^{2} \]

    if -0.00350000000000000007 < angle < 0.00309999999999999989

    1. Initial program 0.3

      \[{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} \]
    2. Taylor expanded in angle around 0 0.3

      \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \color{blue}{\left(1 + -1.54320987654321 \cdot 10^{-5} \cdot \left({angle}^{2} \cdot {\pi}^{2}\right)\right)}\right)}^{2} \]
    3. Simplified0.3

      \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \color{blue}{\left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \left(angle \cdot angle\right)\right) \cdot {\pi}^{2}\right)}\right)}^{2} \]
      Proof

      [Start]0.3

      \[ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(1 + -1.54320987654321 \cdot 10^{-5} \cdot \left({angle}^{2} \cdot {\pi}^{2}\right)\right)\right)}^{2} \]

      associate-*r* [=>]0.3

      \[ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(1 + \color{blue}{\left(-1.54320987654321 \cdot 10^{-5} \cdot {angle}^{2}\right) \cdot {\pi}^{2}}\right)\right)}^{2} \]

      unpow2 [=>]0.3

      \[ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(1 + \left(-1.54320987654321 \cdot 10^{-5} \cdot \color{blue}{\left(angle \cdot angle\right)}\right) \cdot {\pi}^{2}\right)\right)}^{2} \]
    4. Taylor expanded in angle around 0 0.3

      \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\color{blue}{b}}^{2} \]
    5. Taylor expanded in angle around 0 0.4

      \[\leadsto {\color{blue}{\left(0.005555555555555556 \cdot \left(angle \cdot \left(a \cdot \pi\right)\right)\right)}}^{2} + {b}^{2} \]
    6. Simplified0.3

      \[\leadsto {\color{blue}{\left(0.005555555555555556 \cdot \left(a \cdot \left(angle \cdot \pi\right)\right)\right)}}^{2} + {b}^{2} \]
      Proof

      [Start]0.4

      \[ {\left(0.005555555555555556 \cdot \left(angle \cdot \left(a \cdot \pi\right)\right)\right)}^{2} + {b}^{2} \]

      *-commutative [=>]0.4

      \[ {\left(0.005555555555555556 \cdot \color{blue}{\left(\left(a \cdot \pi\right) \cdot angle\right)}\right)}^{2} + {b}^{2} \]

      associate-*l* [=>]0.3

      \[ {\left(0.005555555555555556 \cdot \color{blue}{\left(a \cdot \left(\pi \cdot angle\right)\right)}\right)}^{2} + {b}^{2} \]

      *-commutative [<=]0.3

      \[ {\left(0.005555555555555556 \cdot \left(a \cdot \color{blue}{\left(angle \cdot \pi\right)}\right)\right)}^{2} + {b}^{2} \]
    7. Applied egg-rr0.4

      \[\leadsto \color{blue}{{\left(\pi \cdot \left(angle \cdot a\right)\right)}^{2} \cdot 3.08641975308642 \cdot 10^{-5}} + {b}^{2} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification20.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;angle \leq -0.0035 \lor \neg \left(angle \leq 0.0031\right):\\ \;\;\;\;{b}^{2} + \frac{a}{\frac{2}{a}} \cdot \left(1 - \cos \left(\pi \cdot \left(angle \cdot 0.011111111111111112\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;{b}^{2} + {\left(\pi \cdot \left(a \cdot angle\right)\right)}^{2} \cdot 3.08641975308642 \cdot 10^{-5}\\ \end{array} \]

Alternatives

Alternative 1
Error20.4
Cost26240
\[{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {b}^{2} \]
Alternative 2
Error20.4
Cost26240
\[{b}^{2} + {\left(a \cdot \sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)\right)}^{2} \]
Alternative 3
Error23.6
Cost20360
\[\begin{array}{l} \mathbf{if}\;a \leq -4 \cdot 10^{+154}:\\ \;\;\;\;{b}^{2} + {\left(\pi \cdot \left(a \cdot angle\right)\right)}^{2} \cdot 3.08641975308642 \cdot 10^{-5}\\ \mathbf{elif}\;a \leq 1.15 \cdot 10^{+153}:\\ \;\;\;\;{b}^{2} + 3.08641975308642 \cdot 10^{-5} \cdot \left({\pi}^{2} \cdot \left(angle \cdot \left(angle \cdot \left(a \cdot a\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;{b}^{2} + {\left(a \cdot \left(angle \cdot \frac{\pi}{180}\right)\right)}^{2}\\ \end{array} \]
Alternative 4
Error26.0
Cost19840
\[{b}^{2} + 3.08641975308642 \cdot 10^{-5} \cdot {\left(angle \cdot \left(a \cdot \pi\right)\right)}^{2} \]
Alternative 5
Error26.0
Cost19840
\[{b}^{2} + {\left(\pi \cdot \left(a \cdot angle\right)\right)}^{2} \cdot 3.08641975308642 \cdot 10^{-5} \]

Error

Reproduce?

herbie shell --seed 2023018 
(FPCore (a b angle)
  :name "ab-angle->ABCF A"
  :precision binary64
  (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)))