Average Error: 13.6 → 13.6
Time: 19.1s
Precision: binary64
\[\sin^{-1} \left(\sqrt{\left(\left(X \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(X \cdot \sin \left(\frac{a}{2}\right)\right) + \left(Y \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Y \cdot \sin \left(\frac{a}{2}\right)\right)\right) + \left(Z \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Z \cdot \sin \left(\frac{a}{2}\right)\right)}\right)\]
\[\sin^{-1} \left(\sqrt{\left(\left(X \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(X \cdot \sin \left(\frac{a}{2}\right)\right) + \left(Y \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Y \cdot \sin \left(\frac{a}{2}\right)\right)\right) + \left(Z \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Z \cdot \sin \left(\frac{a}{2}\right)\right)}\right)\]
\sin^{-1} \left(\sqrt{\left(\left(X \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(X \cdot \sin \left(\frac{a}{2}\right)\right) + \left(Y \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Y \cdot \sin \left(\frac{a}{2}\right)\right)\right) + \left(Z \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Z \cdot \sin \left(\frac{a}{2}\right)\right)}\right)
\sin^{-1} \left(\sqrt{\left(\left(X \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(X \cdot \sin \left(\frac{a}{2}\right)\right) + \left(Y \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Y \cdot \sin \left(\frac{a}{2}\right)\right)\right) + \left(Z \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Z \cdot \sin \left(\frac{a}{2}\right)\right)}\right)
double code(double X, double a, double Y, double Z) {
	return ((double) asin(((double) sqrt(((double) (((double) (((double) (((double) (X * ((double) sin(((double) (a / 2.0)))))) * ((double) (X * ((double) sin(((double) (a / 2.0)))))))) + ((double) (((double) (Y * ((double) sin(((double) (a / 2.0)))))) * ((double) (Y * ((double) sin(((double) (a / 2.0)))))))))) + ((double) (((double) (Z * ((double) sin(((double) (a / 2.0)))))) * ((double) (Z * ((double) sin(((double) (a / 2.0))))))))))))));
}
double code(double X, double a, double Y, double Z) {
	return ((double) asin(((double) sqrt(((double) (((double) (((double) (((double) (X * ((double) sin(((double) (a / 2.0)))))) * ((double) (X * ((double) sin(((double) (a / 2.0)))))))) + ((double) (((double) (Y * ((double) sin(((double) (a / 2.0)))))) * ((double) (Y * ((double) sin(((double) (a / 2.0)))))))))) + ((double) (((double) (Z * ((double) sin(((double) (a / 2.0)))))) * ((double) (Z * ((double) sin(((double) (a / 2.0))))))))))))));
}

Error

Bits error versus X

Bits error versus a

Bits error versus Y

Bits error versus Z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.6

    \[\sin^{-1} \left(\sqrt{\left(\left(X \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(X \cdot \sin \left(\frac{a}{2}\right)\right) + \left(Y \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Y \cdot \sin \left(\frac{a}{2}\right)\right)\right) + \left(Z \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Z \cdot \sin \left(\frac{a}{2}\right)\right)}\right)\]
  2. Final simplification13.6

    \[\leadsto \sin^{-1} \left(\sqrt{\left(\left(X \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(X \cdot \sin \left(\frac{a}{2}\right)\right) + \left(Y \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Y \cdot \sin \left(\frac{a}{2}\right)\right)\right) + \left(Z \cdot \sin \left(\frac{a}{2}\right)\right) \cdot \left(Z \cdot \sin \left(\frac{a}{2}\right)\right)}\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (X a Y Z)
  :name "(asin (sqrt (+ (+ (* (* X (sin (/ a 2))) (* X (sin (/ a 2)))) (* (* Y (sin (/ a 2))) (* Y (sin (/ a 2))))) (* (* Z (sin (/ a 2))) (* Z (sin (/ a 2)))))))"
  :precision binary64
  (asin (sqrt (+ (+ (* (* X (sin (/ a 2.0))) (* X (sin (/ a 2.0)))) (* (* Y (sin (/ a 2.0))) (* Y (sin (/ a 2.0))))) (* (* Z (sin (/ a 2.0))) (* Z (sin (/ a 2.0))))))))