(FPCore (x y z t a b c i j k)
:precision binary64
(-
(-
(+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c))
(* (* x 4.0) i))
(* (* j 27.0) k)))
↓
(FPCore (x y z t a b c i j k)
:precision binary64
(let* ((t_1 (* i (* x -4.0)))
(t_2 (* k (* j -27.0)))
(t_3 (* t (* a -4.0)))
(t_4
(+
(+ (* 18.0 (* (* x z) (* y t))) (* b c))
(+ (* j (* k -27.0)) (* x (* i -4.0)))))
(t_5 (+ (+ (+ (+ (* (* (* (* x 18.0) y) z) t) t_3) (* b c)) t_1) t_2)))
(if (<= t_5 (- INFINITY))
t_4
(if (<= t_5 2e+297)
(+ (+ (+ (+ (* t (* z (* 18.0 (* x y)))) t_3) (* b c)) t_1) t_2)
t_4))))
(-.f64 (+.f64 (*.f64 t (-.f64 (*.f64 (*.f64 x 18) (*.f64 y z)) (*.f64 a 4))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (*.f64 t (-.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (*.f64 x 18) y) z)) (*.f64 a 4))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 13 points increase in error, 16 points decrease in error
(-.f64 (+.f64 (*.f64 t (Rewrite=> sub-neg_binary64 (+.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) (neg.f64 (*.f64 a 4))))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (*.f64 t (Rewrite=> +-commutative_binary64 (+.f64 (neg.f64 (*.f64 a 4)) (*.f64 (*.f64 (*.f64 x 18) y) z)))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 (neg.f64 (*.f64 a 4)) t) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 2 points decrease in error
(-.f64 (+.f64 (+.f64 (Rewrite=> distribute-lft-neg-out_binary64 (neg.f64 (*.f64 (*.f64 a 4) t))) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t)) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (+.f64 (Rewrite=> neg-sub0_binary64 (-.f64 0 (*.f64 (*.f64 a 4) t))) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t)) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (Rewrite=> associate-+l-_binary64 (-.f64 0 (-.f64 (*.f64 (*.f64 a 4) t) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t)))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 (*.f64 (*.f64 a 4) t)) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 (*.f64 (*.f64 a 4) t))) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t)) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (+.f64 (Rewrite<= distribute-lft-neg-out_binary64 (*.f64 (neg.f64 (*.f64 a 4)) t)) (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t)) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (neg.f64 (*.f64 a 4)) t))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t))) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (*.f64 j (*.f64 27 k)))): 0 points increase in error, 0 points decrease in error
(-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (+.f64 (*.f64 x (*.f64 4 i)) (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 j 27) k)))): 7 points increase in error, 6 points decrease in error
(-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (+.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 x 4) i)) (*.f64 (*.f64 j 27) k))): 0 points increase in error, 1 points decrease in error
(-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (Rewrite<= cancel-sign-sub_binary64 (-.f64 (*.f64 (*.f64 x 4) i) (*.f64 (neg.f64 (*.f64 j 27)) k)))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (*.f64 (*.f64 x 4) i)) (*.f64 (neg.f64 (*.f64 j 27)) k))): 0 points increase in error, 0 points decrease in error
(Rewrite<= cancel-sign-sub-inv_binary64 (-.f64 (-.f64 (+.f64 (-.f64 (*.f64 (*.f64 (*.f64 (*.f64 x 18) y) z) t) (*.f64 (*.f64 a 4) t)) (*.f64 b c)) (*.f64 (*.f64 x 4) i)) (*.f64 (*.f64 j 27) k))): 0 points increase in error, 0 points decrease in error
herbie shell --seed 2022338
(FPCore (x y z t a b c i j k)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, E"
:precision binary64
:herbie-target
(if (< t -1.6210815397541398e-69) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b))) (if (< t 165.68027943805222) (+ (- (* (* 18.0 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4.0)) (- (* c b) (* 27.0 (* k j)))) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b)))))
(- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))