Average Error: 25.4 → 25.4
Time: 1.5s
Precision: binary64
\[\left(tm1 + om2\right) + \frac{\left(\left(\left(om1 - tm1\right) \cdot \left(om1 - tm1\right)\right) \cdot tn\right) \cdot on}{tn + on}\]
\[\left(tm1 + om2\right) + \frac{\left(\left(\left(om1 - tm1\right) \cdot \left(om1 - tm1\right)\right) \cdot tn\right) \cdot on}{tn + on}\]
\left(tm1 + om2\right) + \frac{\left(\left(\left(om1 - tm1\right) \cdot \left(om1 - tm1\right)\right) \cdot tn\right) \cdot on}{tn + on}
\left(tm1 + om2\right) + \frac{\left(\left(\left(om1 - tm1\right) \cdot \left(om1 - tm1\right)\right) \cdot tn\right) \cdot on}{tn + on}
double code(double tm1, double om2, double om1, double tn, double on) {
	return ((double) (((double) (tm1 + om2)) + ((double) (((double) (((double) (((double) (((double) (om1 - tm1)) * ((double) (om1 - tm1)))) * tn)) * on)) / ((double) (tn + on))))));
}
double code(double tm1, double om2, double om1, double tn, double on) {
	return ((double) (((double) (tm1 + om2)) + ((double) (((double) (((double) (((double) (((double) (om1 - tm1)) * ((double) (om1 - tm1)))) * tn)) * on)) / ((double) (tn + on))))));
}

Error

Bits error versus tm1

Bits error versus om2

Bits error versus om1

Bits error versus tn

Bits error versus on

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 25.4

    \[\left(tm1 + om2\right) + \frac{\left(\left(\left(om1 - tm1\right) \cdot \left(om1 - tm1\right)\right) \cdot tn\right) \cdot on}{tn + on}\]
  2. Final simplification25.4

    \[\leadsto \left(tm1 + om2\right) + \frac{\left(\left(\left(om1 - tm1\right) \cdot \left(om1 - tm1\right)\right) \cdot tn\right) \cdot on}{tn + on}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (tm1 om2 om1 tn on)
  :name "(+ (+ tm1 om2) (/ (* (* (* (- om1 tm1) (- om1 tm1)) tn) on) (+ tn on)))"
  :precision binary64
  (+ (+ tm1 om2) (/ (* (* (* (- om1 tm1) (- om1 tm1)) tn) on) (+ tn on))))