
Results
Herbie found 3 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Initial program 60.6%
+-commutative60.6%
associate--l+60.6%
+-commutative60.6%
associate--l+71.1%
+-inverses98.4%
+-rgt-identity98.4%
*-commutative98.4%
distribute-lft-out--100.0%
Simplified100.0%
Final simplification100.0%
if x < -3.5e16 or 4.99999999999999954e-22 < x Initial program 66.9%
+-commutative66.9%
associate--l+66.9%
+-commutative66.9%
associate--l+72.8%
+-inverses97.6%
+-rgt-identity97.6%
*-commutative97.6%
distribute-lft-out--100.0%
Simplified100.0%
Taylor expanded in x around inf 82.4%
if -3.5e16 < x < 4.99999999999999954e-22Initial program 54.6%
+-commutative54.6%
associate--l+54.6%
+-commutative54.6%
associate--l+69.5%
+-inverses99.2%
+-rgt-identity99.2%
*-commutative99.2%
distribute-lft-out--100.0%
Simplified100.0%
Taylor expanded in x around 0 85.7%
mul-1-neg85.7%
distribute-rgt-neg-out85.7%
Simplified85.7%
Final simplification84.1%
Initial program 60.6%
+-commutative60.6%
associate--l+60.6%
+-commutative60.6%
associate--l+71.1%
+-inverses98.4%
+-rgt-identity98.4%
*-commutative98.4%
distribute-lft-out--100.0%
Simplified100.0%
Taylor expanded in x around inf 52.7%
Final simplification52.7%
herbie shell --seed 2023167
(FPCore (x y z)
:name "Linear.Quaternion:$c/ from linear-1.19.1.3, C"
:precision binary64
:herbie-target
(* (- x z) y)
(- (- (+ (* x y) (* y y)) (* y z)) (* y y)))