Average Error: 3.0 → 3.0
Time: 775.0ms
Precision: binary64
\[1 + tan \cdot \left(\left(t \cdot tan\right) \cdot t\right)\]
\[1 + tan \cdot \left(\left(t \cdot tan\right) \cdot t\right)\]
1 + tan \cdot \left(\left(t \cdot tan\right) \cdot t\right)
1 + tan \cdot \left(\left(t \cdot tan\right) \cdot t\right)
double code(double tan, double t) {
	return ((double) (1.0 + ((double) (tan * ((double) (((double) (t * tan)) * t))))));
}
double code(double tan, double t) {
	return ((double) (1.0 + ((double) (tan * ((double) (((double) (t * tan)) * t))))));
}

Error

Bits error versus tan

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 3.0

    \[1 + tan \cdot \left(\left(t \cdot tan\right) \cdot t\right)\]
  2. Final simplification3.0

    \[\leadsto 1 + tan \cdot \left(\left(t \cdot tan\right) \cdot t\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (tan t)
  :name "(+ 1 (* tan (* (* t tan) t)))"
  :precision binary64
  (+ 1.0 (* tan (* (* t tan) t))))