Average Error: 0.8 → 0.8
Time: 2.3s
Precision: binary64
\[\sqrt{2^{a \cdot c - b \cdot d} + 2^{b \cdot c + a \cdot d}}\]
\[\sqrt{2^{a \cdot c - b \cdot d} + 2^{b \cdot c + a \cdot d}}\]
\sqrt{2^{a \cdot c - b \cdot d} + 2^{b \cdot c + a \cdot d}}
\sqrt{2^{a \cdot c - b \cdot d} + 2^{b \cdot c + a \cdot d}}
double code(double a, double c, double b, double d) {
	return ((double) sqrt(((double) (((double) exp2(((double) (((double) (a * c)) - ((double) (b * d)))))) + ((double) exp2(((double) (((double) (b * c)) + ((double) (a * d))))))))));
}
double code(double a, double c, double b, double d) {
	return ((double) sqrt(((double) (((double) exp2(((double) (((double) (a * c)) - ((double) (b * d)))))) + ((double) exp2(((double) (((double) (b * c)) + ((double) (a * d))))))))));
}

Error

Bits error versus a

Bits error versus c

Bits error versus b

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.8

    \[\sqrt{2^{a \cdot c - b \cdot d} + 2^{b \cdot c + a \cdot d}}\]
  2. Final simplification0.8

    \[\leadsto \sqrt{2^{a \cdot c - b \cdot d} + 2^{b \cdot c + a \cdot d}}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a c b d)
  :name "(sqrt (+ (exp2 (- (* a c) (* b d))) (exp2 (+ (* b c) (* a d)))))"
  :precision binary64
  (sqrt (+ (exp2 (- (* a c) (* b d))) (exp2 (+ (* b c) (* a d))))))