Quadratic roots, wide range

Time bar (total: 2.9s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze226.0ms (7.7%)

Memory
-6.1MiB live, 393.2MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
0%0%0%100%0%0%0%1
0%0%0%100%0%0%0%2
0%0%0%100%0%0%0%3
0%0%0%100%0%0%0%4
0%0%0%100%0%0%0%5
0%0%0%100%0%0%0%6
6.8%0%0%100%0%0%0%7
15.9%0%0%100%0%0%0%8
23.1%0%0%100%0%0%0%9
36.5%0%0%100%0%0%0%10
45.4%0%0%100%0%0%0%11
52.3%0%0%100%0%0%0%12
Compiler

Compiled 41 to 28 computations (31.7% saved)

sample2.3s (76.9%)

Memory
84.4MiB live, 3 965.1MiB allocated
Samples
1.4s6 719×1valid
192.0ms1 537×0valid
137.0ms1 119×0invalid
Precisions
Click to see histograms. Total time spent on operations: 1.3s
ival-mult: 280.0ms (21.3% of total)
const: 180.0ms (13.7% of total)
adjust: 175.0ms (13.3% of total)
ival-sqrt: 135.0ms (10.3% of total)
ival-<: 133.0ms (10.1% of total)
ival-div: 117.0ms (8.9% of total)
ival-sub: 95.0ms (7.2% of total)
ival-add: 89.0ms (6.8% of total)
ival-neg: 56.0ms (4.3% of total)
ival-and: 37.0ms (2.8% of total)
exact: 15.0ms (1.1% of total)
ival-assert: 4.0ms (0.3% of total)
Bogosity

explain218.0ms (7.4%)

Memory
-3.5MiB live, 341.9MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
2491(8.503260769579076e-7 0.0009472565366782844 0.0009742766536840701)3(1.5464012010409788e-17 6.034133007373286e-16 2.024800275401585e-16)(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
00-0-a
00-0-#s(literal 4 binary64)
00-0-(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
00-0-(*.f64 (*.f64 #s(literal 4 binary64) a) c)
00-0-(*.f64 b b)
00-0-(*.f64 #s(literal 2 binary64) a)
00-0-c
00-0-#s(literal 2 binary64)
00-0-(neg.f64 b)
00-0-(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
00-0-(*.f64 #s(literal 4 binary64) a)
00-0-b
00-0-(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
+.f64(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))cancellation2474
Confusion
Predicted +Predicted -
+2462
-17
Precision
0.9959514170040485
Recall
0.9919354838709677
Confusion?
Predicted +Predicted MaybePredicted -
+24611
-134
Precision?
0.9840637450199203
Recall?
0.9959677419354839
Freqs
test
numberfreq
09
1247
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
82.0ms426×1valid
8.0ms86×0valid
Compiler

Compiled 231 to 60 computations (74% saved)

Precisions
Click to see histograms. Total time spent on operations: 53.0ms
ival-mult: 15.0ms (28.5% of total)
adjust: 8.0ms (15.2% of total)
ival-sub: 8.0ms (15.2% of total)
ival-sqrt: 7.0ms (13.3% of total)
ival-div: 6.0ms (11.4% of total)
ival-add: 5.0ms (9.5% of total)
ival-neg: 2.0ms (3.8% of total)
exact: 1.0ms (1.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess14.0ms (0.5%)

Memory
-36.0MiB live, 7.6MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Compiler

Compiled 17 to 14 computations (17.6% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
17.6%
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Compiler

Compiled 17 to 14 computations (17.6% saved)

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
cost-diff0
(neg.f64 b)
cost-diff0
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
cost-diff0
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
(*.f64 b b)
(*.f64 (*.f64 #s(literal 4 binary64) a) c)
(*.f64 #s(literal 4 binary64) a)
#s(literal 4 binary64)
a
c
(*.f64 #s(literal 2 binary64) a)
#s(literal 2 binary64)
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
(*.f64 b b)
(*.f64 (*.f64 #s(literal 4 binary64) a) c)
(*.f64 #s(literal 4 binary64) a)
#s(literal 4 binary64)
a
c
(*.f64 #s(literal 2 binary64) a)
#s(literal 2 binary64)

localize59.0ms (2%)

Memory
19.5MiB live, 94.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0390625
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
accuracy0.06478500976844201
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
accuracy0.25
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
accuracy52.682716987208536
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
Samples
45.0ms213×1valid
4.0ms43×0valid
Compiler

Compiled 142 to 30 computations (78.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 35.0ms
ival-mult: 12.0ms (34.5% of total)
ival-div: 8.0ms (23% of total)
adjust: 4.0ms (11.5% of total)
ival-sqrt: 4.0ms (11.5% of total)
ival-add: 2.0ms (5.8% of total)
ival-sub: 2.0ms (5.8% of total)
ival-neg: 1.0ms (2.9% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series27.0ms (0.9%)

Memory
1.8MiB live, 39.3MiB allocated
Counts
5 → 98
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
Outputs
(* -1 (/ c b))
(+ (* -1 (/ c b)) (* -1 (/ (* a (pow c 2)) (pow b 3))))
(+ (* -1 (/ c b)) (* a (+ (* -2 (/ (* a (pow c 3)) (pow b 5))) (* -1 (/ (pow c 2) (pow b 3))))))
(+ (* -1 (/ c b)) (* a (+ (* -1 (/ (pow c 2) (pow b 3))) (* a (+ (* -2 (/ (pow c 3) (pow b 5))) (* -1/4 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b)))))))
(* -2 (/ (* a c) b))
(* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3)))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3)))))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -2 (/ (pow c 2) (pow b 3))) (* a (+ (* -4 (/ (pow c 3) (pow b 5))) (* -1/2 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b))))))))
b
(+ b (* -2 (/ (* a c) b)))
(+ b (* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3))))))
(+ b (* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3))))))))
(pow b 2)
(+ (* -4 (* a c)) (pow b 2))
(* 1/2 (* (sqrt (/ c a)) (sqrt -4)))
(+ (* -1/2 (/ b a)) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))
(+ (* -1/2 (/ b a)) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4)))))
(+ (* -1/2 (/ b a)) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))))
(* (sqrt (* a c)) (sqrt -4))
(* a (+ (* -1 (/ b a)) (* (sqrt (/ c a)) (sqrt -4))))
(* a (- (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))) (/ b a)))
(* a (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))) (/ b a)))
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))))
(* -4 (* a c))
(* a (- (/ (pow b 2) a) (* 4 c)))
(* -1 (* (sqrt (/ c a)) (sqrt -1)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1/2 (/ b a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* 1/8 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) (* 1/2 b)) a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1)))) (* 1/128 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1))))) a)) (* 1/2 b)) a)))
(* -2 (* (sqrt (* a c)) (sqrt -1)))
(* -1 (* a (+ (* 2 (* (sqrt (/ c a)) (sqrt -1))) (/ b a))))
(* -1 (* a (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1))))) a)) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1)))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))))
(* -1 (* a (- (* -1 (/ (pow b 2) a)) (* -4 c))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ b (sqrt -4)))) (* 1/2 (/ 1 a)))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* b (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ 1 (sqrt -4)))))) (* 1/2 (/ 1 a)))))
(+ (* -1 b) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* 1/2 (* (sqrt (/ 1 (* a c))) (/ b (sqrt -4)))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* b (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(* -1 b)
(+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (* a c)) (sqrt -4)))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ 1 (pow (sqrt -4) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 2) (pow (sqrt -4) 5)))))))))
(- (pow b 2) (* 4 (* a c)))
(/ (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2)))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2))))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (+ (* -1 (/ (* a (pow c 2)) (pow b 2))) (* -1/4 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (* a (pow b 6))))))) b)
(/ (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2)))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (+ (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))) (* -1/2 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (pow b 6)))))) b)
(* b (+ 1 (* -2 (/ (* a c) (pow b 2)))))
(* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))
(* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* (pow b 2) (+ 1 (* -4 (/ (* a c) (pow b 2)))))
(* -1 (/ b a))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (/ 1 a))))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a)))))
(* -1 (* b (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 6))) (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a))))))
(* -2 b)
(* -1 (* b (+ 2 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 2 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 2 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* -1 (* b (+ 1 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* c (- (* -1 (/ (* a c) (pow b 3))) (/ 1 b)))
(* c (- (* c (+ (* -2 (/ (* (pow a 2) c) (pow b 5))) (* -1 (/ a (pow b 3))))) (/ 1 b)))
(* c (- (* c (+ (* -1 (/ a (pow b 3))) (* c (+ (* -2 (/ (pow a 2) (pow b 5))) (* -1/4 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) (* a b))))))) (/ 1 b)))
(* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3)))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3)))))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -2 (/ (pow a 2) (pow b 3))) (* c (+ (* -4 (/ (pow a 3) (pow b 5))) (* -1/2 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) b))))))))
(+ b (* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3))))))
(+ b (* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3))))))))
(* c (+ (* -1/2 (/ b (* a c))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4))))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))))
(* c (+ (* -1 (/ b c)) (* (sqrt (/ a c)) (sqrt -4))))
(* c (- (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))) (/ b c)))
(* c (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))) (/ b c)))
(* c (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))))
(* c (- (/ (pow b 2) c) (* 4 a)))
(* -1 (* c (+ (* 1/2 (/ b (* a c))) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1/2 (/ b a)) (* -1/8 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1))))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/128 (* (sqrt (/ 1 (* (pow a 5) c))) (* (pow b 4) (sqrt -1)))) (* 1/8 (* (sqrt (/ c (pow a 3))) (* (pow b 2) (sqrt -1))))) c)) (* -1/2 (/ b a))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* 2 (* (sqrt (/ a c)) (sqrt -1))) (/ b c))))
(* -1 (* c (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ c a)) (* (pow b 2) (sqrt -1))))) c)) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1)))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))))
(* -1 (* c (- (* -1 (/ (pow b 2) c)) (* -4 a))))
Calls

9 calls:

TimeVariablePointExpression
3.0ms
b
@inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
3.0ms
a
@inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
3.0ms
c
@-inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
2.0ms
a
@-inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
2.0ms
b
@0
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (neg b) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))

simplify2.0ms (0.1%)

Memory
4.2MiB live, 4.1MiB allocated
Algorithm
egg-herbie
Counts
98 → 5
Calls
Call 1
Inputs
(* -1 (/ c b))
(+ (* -1 (/ c b)) (* -1 (/ (* a (pow c 2)) (pow b 3))))
(+ (* -1 (/ c b)) (* a (+ (* -2 (/ (* a (pow c 3)) (pow b 5))) (* -1 (/ (pow c 2) (pow b 3))))))
(+ (* -1 (/ c b)) (* a (+ (* -1 (/ (pow c 2) (pow b 3))) (* a (+ (* -2 (/ (pow c 3) (pow b 5))) (* -1/4 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b)))))))
(* -2 (/ (* a c) b))
(* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3)))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3)))))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -2 (/ (pow c 2) (pow b 3))) (* a (+ (* -4 (/ (pow c 3) (pow b 5))) (* -1/2 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b))))))))
b
(+ b (* -2 (/ (* a c) b)))
(+ b (* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3))))))
(+ b (* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3))))))))
(pow b 2)
(+ (* -4 (* a c)) (pow b 2))
(* 1/2 (* (sqrt (/ c a)) (sqrt -4)))
(+ (* -1/2 (/ b a)) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))
(+ (* -1/2 (/ b a)) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4)))))
(+ (* -1/2 (/ b a)) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))))
(* (sqrt (* a c)) (sqrt -4))
(* a (+ (* -1 (/ b a)) (* (sqrt (/ c a)) (sqrt -4))))
(* a (- (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))) (/ b a)))
(* a (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))) (/ b a)))
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))))
(* -4 (* a c))
(* a (- (/ (pow b 2) a) (* 4 c)))
(* -1 (* (sqrt (/ c a)) (sqrt -1)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1/2 (/ b a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* 1/8 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) (* 1/2 b)) a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1)))) (* 1/128 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1))))) a)) (* 1/2 b)) a)))
(* -2 (* (sqrt (* a c)) (sqrt -1)))
(* -1 (* a (+ (* 2 (* (sqrt (/ c a)) (sqrt -1))) (/ b a))))
(* -1 (* a (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1))))) a)) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1)))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))))
(* -1 (* a (- (* -1 (/ (pow b 2) a)) (* -4 c))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ b (sqrt -4)))) (* 1/2 (/ 1 a)))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* b (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ 1 (sqrt -4)))))) (* 1/2 (/ 1 a)))))
(+ (* -1 b) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* 1/2 (* (sqrt (/ 1 (* a c))) (/ b (sqrt -4)))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* b (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(* -1 b)
(+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (* a c)) (sqrt -4)))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ 1 (pow (sqrt -4) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 2) (pow (sqrt -4) 5)))))))))
(- (pow b 2) (* 4 (* a c)))
(/ (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2)))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2))))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (+ (* -1 (/ (* a (pow c 2)) (pow b 2))) (* -1/4 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (* a (pow b 6))))))) b)
(/ (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2)))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (+ (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))) (* -1/2 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (pow b 6)))))) b)
(* b (+ 1 (* -2 (/ (* a c) (pow b 2)))))
(* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))
(* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* (pow b 2) (+ 1 (* -4 (/ (* a c) (pow b 2)))))
(* -1 (/ b a))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (/ 1 a))))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a)))))
(* -1 (* b (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 6))) (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a))))))
(* -2 b)
(* -1 (* b (+ 2 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 2 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 2 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* -1 (* b (+ 1 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* c (- (* -1 (/ (* a c) (pow b 3))) (/ 1 b)))
(* c (- (* c (+ (* -2 (/ (* (pow a 2) c) (pow b 5))) (* -1 (/ a (pow b 3))))) (/ 1 b)))
(* c (- (* c (+ (* -1 (/ a (pow b 3))) (* c (+ (* -2 (/ (pow a 2) (pow b 5))) (* -1/4 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) (* a b))))))) (/ 1 b)))
(* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3)))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3)))))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -2 (/ (pow a 2) (pow b 3))) (* c (+ (* -4 (/ (pow a 3) (pow b 5))) (* -1/2 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) b))))))))
(+ b (* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3))))))
(+ b (* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3))))))))
(* c (+ (* -1/2 (/ b (* a c))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4))))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))))
(* c (+ (* -1 (/ b c)) (* (sqrt (/ a c)) (sqrt -4))))
(* c (- (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))) (/ b c)))
(* c (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))) (/ b c)))
(* c (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))))
(* c (- (/ (pow b 2) c) (* 4 a)))
(* -1 (* c (+ (* 1/2 (/ b (* a c))) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1/2 (/ b a)) (* -1/8 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1))))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/128 (* (sqrt (/ 1 (* (pow a 5) c))) (* (pow b 4) (sqrt -1)))) (* 1/8 (* (sqrt (/ c (pow a 3))) (* (pow b 2) (sqrt -1))))) c)) (* -1/2 (/ b a))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* 2 (* (sqrt (/ a c)) (sqrt -1))) (/ b c))))
(* -1 (* c (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ c a)) (* (pow b 2) (sqrt -1))))) c)) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1)))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))))
(* -1 (* c (- (* -1 (/ (pow b 2) c)) (* -4 a))))
Outputs
(* -1 (/ c b))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
(+ (* -1 (/ c b)) (* -1 (/ (* a (pow c 2)) (pow b 3))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(+ (* -1 (/ c b)) (* a (+ (* -2 (/ (* a (pow c 3)) (pow b 5))) (* -1 (/ (pow c 2) (pow b 3))))))
(neg.f64 b)
(+ (* -1 (/ c b)) (* a (+ (* -1 (/ (pow c 2) (pow b 3))) (* a (+ (* -2 (/ (pow c 3) (pow b 5))) (* -1/4 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b)))))))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(* -2 (/ (* a c) b))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))

rewrite0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))

eval1.0ms (0%)

Memory
2.0MiB live, 2.0MiB allocated
Compiler

Compiled 226 to 31 computations (86.3% saved)

prune1.0ms (0%)

Memory
2.4MiB live, 2.4MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New8210
Fresh000
Picked011
Done000
Total8311
Accuracy
21.3%
Counts
11 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
17.6%
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
5.1%
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
8.6%
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Compiler

Compiled 68 to 53 computations (22.1% saved)

simplify1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
cost-diff0
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
cost-diff0
(neg.f64 b)
cost-diff0
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
cost-diff0
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
cost-diff0
(neg.f64 b)
cost-diff0
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Calls
Call 1
Inputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
(neg.f64 b)
b
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
(*.f64 b b)
(*.f64 (*.f64 #s(literal 4 binary64) a) c)
(*.f64 #s(literal 4 binary64) a)
#s(literal 4 binary64)
a
c
Outputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
(neg.f64 b)
b
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(neg.f64 b)
b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
(*.f64 b b)
(*.f64 (*.f64 #s(literal 4 binary64) a) c)
(*.f64 #s(literal 4 binary64) a)
#s(literal 4 binary64)
a
c

localize61.0ms (2.1%)

Memory
-1.8MiB live, 80.3MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.0390625
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
accuracy0.06478500976844201
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
accuracy52.682716987208536
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
accuracy57.3576491704459
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
accuracy0.0
(neg.f64 b)
accuracy58.46572206121157
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Samples
46.0ms213×1valid
4.0ms43×0valid
Compiler

Compiled 191 to 40 computations (79.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
ival-mult: 7.0ms (28.4% of total)
adjust: 4.0ms (16.2% of total)
ival-sqrt: 4.0ms (16.2% of total)
ival-div: 3.0ms (12.2% of total)
ival-add: 2.0ms (8.1% of total)
ival-sub: 2.0ms (8.1% of total)
ival-neg: 1.0ms (4.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series13.0ms (0.4%)

Memory
-27.3MiB live, 10.0MiB allocated
Counts
6 → 98
Calls
Call 1
Inputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
(neg.f64 b)
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
Outputs
(* -1 (/ c b))
(+ (* -1 (/ c b)) (* -1 (/ (* a (pow c 2)) (pow b 3))))
(+ (* -1 (/ c b)) (* a (+ (* -2 (/ (* a (pow c 3)) (pow b 5))) (* -1 (/ (pow c 2) (pow b 3))))))
(+ (* -1 (/ c b)) (* a (+ (* -1 (/ (pow c 2) (pow b 3))) (* a (+ (* -2 (/ (pow c 3) (pow b 5))) (* -1/4 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b)))))))
(* -2 (/ (* a c) b))
(* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3)))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3)))))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -2 (/ (pow c 2) (pow b 3))) (* a (+ (* -4 (/ (pow c 3) (pow b 5))) (* -1/2 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b))))))))
b
(+ b (* -2 (/ (* a c) b)))
(+ b (* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3))))))
(+ b (* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3))))))))
(pow b 2)
(+ (* -4 (* a c)) (pow b 2))
(* 1/2 (* (sqrt (/ c a)) (sqrt -4)))
(+ (* -1/2 (/ b a)) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))
(+ (* -1/2 (/ b a)) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4)))))
(+ (* -1/2 (/ b a)) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))))
(* (sqrt (* a c)) (sqrt -4))
(* a (+ (* -1 (/ b a)) (* (sqrt (/ c a)) (sqrt -4))))
(* a (- (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))) (/ b a)))
(* a (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))) (/ b a)))
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))))
(* -4 (* a c))
(* a (- (/ (pow b 2) a) (* 4 c)))
(* -1 (* (sqrt (/ c a)) (sqrt -1)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1/2 (/ b a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* 1/8 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) (* 1/2 b)) a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1)))) (* 1/128 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1))))) a)) (* 1/2 b)) a)))
(* -2 (* (sqrt (* a c)) (sqrt -1)))
(* -1 (* a (+ (* 2 (* (sqrt (/ c a)) (sqrt -1))) (/ b a))))
(* -1 (* a (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1))))) a)) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1)))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))))
(* -1 (* a (- (* -1 (/ (pow b 2) a)) (* -4 c))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ b (sqrt -4)))) (* 1/2 (/ 1 a)))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* b (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ 1 (sqrt -4)))))) (* 1/2 (/ 1 a)))))
(* -1 b)
(+ (* -1 b) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* 1/2 (* (sqrt (/ 1 (* a c))) (/ b (sqrt -4)))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* b (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (* a c)) (sqrt -4)))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ 1 (pow (sqrt -4) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 2) (pow (sqrt -4) 5)))))))))
(- (pow b 2) (* 4 (* a c)))
(/ (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2)))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2))))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (+ (* -1 (/ (* a (pow c 2)) (pow b 2))) (* -1/4 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (* a (pow b 6))))))) b)
(/ (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2)))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (+ (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))) (* -1/2 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (pow b 6)))))) b)
(* b (+ 1 (* -2 (/ (* a c) (pow b 2)))))
(* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))
(* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* (pow b 2) (+ 1 (* -4 (/ (* a c) (pow b 2)))))
(* -1 (/ b a))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (/ 1 a))))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a)))))
(* -1 (* b (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 6))) (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a))))))
(* -2 b)
(* -1 (* b (+ 2 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 2 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 2 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* -1 (* b (+ 1 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* c (- (* -1 (/ (* a c) (pow b 3))) (/ 1 b)))
(* c (- (* c (+ (* -2 (/ (* (pow a 2) c) (pow b 5))) (* -1 (/ a (pow b 3))))) (/ 1 b)))
(* c (- (* c (+ (* -1 (/ a (pow b 3))) (* c (+ (* -2 (/ (pow a 2) (pow b 5))) (* -1/4 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) (* a b))))))) (/ 1 b)))
(* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3)))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3)))))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -2 (/ (pow a 2) (pow b 3))) (* c (+ (* -4 (/ (pow a 3) (pow b 5))) (* -1/2 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) b))))))))
(+ b (* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3))))))
(+ b (* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3))))))))
(* c (+ (* -1/2 (/ b (* a c))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4))))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))))
(* c (+ (* -1 (/ b c)) (* (sqrt (/ a c)) (sqrt -4))))
(* c (- (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))) (/ b c)))
(* c (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))) (/ b c)))
(* c (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))))
(* c (- (/ (pow b 2) c) (* 4 a)))
(* -1 (* c (+ (* 1/2 (/ b (* a c))) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1/2 (/ b a)) (* -1/8 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1))))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/128 (* (sqrt (/ 1 (* (pow a 5) c))) (* (pow b 4) (sqrt -1)))) (* 1/8 (* (sqrt (/ c (pow a 3))) (* (pow b 2) (sqrt -1))))) c)) (* -1/2 (/ b a))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* 2 (* (sqrt (/ a c)) (sqrt -1))) (/ b c))))
(* -1 (* c (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ c a)) (* (pow b 2) (sqrt -1))))) c)) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1)))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))))
(* -1 (* c (- (* -1 (/ (pow b 2) c)) (* -4 a))))
Calls

9 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
1.0ms
b
@inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
1.0ms
c
@-inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
1.0ms
a
@inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))
0.0ms
a
@-inf
((/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg b) (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (sqrt (- (* b b) (* (* 4 a) c))) (- (* b b) (* (* 4 a) c)))

simplify2.0ms (0.1%)

Memory
5.2MiB live, 5.2MiB allocated
Algorithm
egg-herbie
Counts
98 → 6
Calls
Call 1
Inputs
(* -1 (/ c b))
(+ (* -1 (/ c b)) (* -1 (/ (* a (pow c 2)) (pow b 3))))
(+ (* -1 (/ c b)) (* a (+ (* -2 (/ (* a (pow c 3)) (pow b 5))) (* -1 (/ (pow c 2) (pow b 3))))))
(+ (* -1 (/ c b)) (* a (+ (* -1 (/ (pow c 2) (pow b 3))) (* a (+ (* -2 (/ (pow c 3) (pow b 5))) (* -1/4 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b)))))))
(* -2 (/ (* a c) b))
(* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3)))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3)))))))
(* a (+ (* -2 (/ c b)) (* a (+ (* -2 (/ (pow c 2) (pow b 3))) (* a (+ (* -4 (/ (pow c 3) (pow b 5))) (* -1/2 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b))))))))
b
(+ b (* -2 (/ (* a c) b)))
(+ b (* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3))))))
(+ b (* a (+ (* -2 (/ c b)) (* a (+ (* -4 (/ (* a (pow c 3)) (pow b 5))) (* -2 (/ (pow c 2) (pow b 3))))))))
(pow b 2)
(+ (* -4 (* a c)) (pow b 2))
(* 1/2 (* (sqrt (/ c a)) (sqrt -4)))
(+ (* -1/2 (/ b a)) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))
(+ (* -1/2 (/ b a)) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4)))))
(+ (* -1/2 (/ b a)) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ c a)) (sqrt -4))))))
(* (sqrt (* a c)) (sqrt -4))
(* a (+ (* -1 (/ b a)) (* (sqrt (/ c a)) (sqrt -4))))
(* a (- (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))) (/ b a)))
(* a (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))) (/ b a)))
(* a (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4)))))
(* a (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* (pow a 3) c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ c a)) (sqrt -4))))))
(* -4 (* a c))
(* a (- (/ (pow b 2) a) (* 4 c)))
(* -1 (* (sqrt (/ c a)) (sqrt -1)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1/2 (/ b a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* 1/8 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) (* 1/2 b)) a)))
(+ (* -1 (* (sqrt (/ c a)) (sqrt -1))) (* -1 (/ (+ (* -1 (/ (+ (* -1/8 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1)))) (* 1/128 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1))))) a)) (* 1/2 b)) a)))
(* -2 (* (sqrt (* a c)) (sqrt -1)))
(* -1 (* a (+ (* 2 (* (sqrt (/ c a)) (sqrt -1))) (/ b a))))
(* -1 (* a (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ a c)) (* (pow b 2) (sqrt -1))))) a)) b) a)) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1)))))))
(* -1 (* a (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 7) (pow c 5)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ c a)) (sqrt -1))))))))
(* -1 (* a (- (* -1 (/ (pow b 2) a)) (* -4 c))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ b (sqrt -4)))) (* 1/2 (/ 1 a)))))
(+ (* 1/2 (* (sqrt (/ c a)) (sqrt -4))) (* b (- (* b (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/4 (* (sqrt (/ 1 (* (pow a 3) c))) (/ 1 (sqrt -4)))))) (* 1/2 (/ 1 a)))))
(* -1 b)
(+ (* -1 b) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* 1/2 (* (sqrt (/ 1 (* a c))) (/ b (sqrt -4)))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(+ (* b (- (* b (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))) 1)) (* (sqrt (* a c)) (sqrt -4)))
(+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (* a c)) (sqrt -4)))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (pow (sqrt -4) 3)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))))))
(+ (* (sqrt (* a c)) (sqrt -4)) (* (pow b 2) (+ (* 1/2 (* (sqrt (/ 1 (* a c))) (/ 1 (sqrt -4)))) (* (pow b 2) (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ 1 (pow (sqrt -4) 3)))) (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 2) (pow (sqrt -4) 5)))))))))
(- (pow b 2) (* 4 (* a c)))
(/ (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2)))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (* -1 (/ (* a (pow c 2)) (pow b 2))))) b)
(/ (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 4))) (+ (* -1 c) (+ (* -1 (/ (* a (pow c 2)) (pow b 2))) (* -1/4 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (* a (pow b 6))))))) b)
(/ (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2)))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))))) b)
(/ (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 4))) (+ (* -2 (* a c)) (+ (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 2))) (* -1/2 (/ (+ (* 4 (* (pow a 4) (pow c 4))) (* 16 (* (pow a 4) (pow c 4)))) (pow b 6)))))) b)
(* b (+ 1 (* -2 (/ (* a c) (pow b 2)))))
(* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))
(* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* (pow b 2) (+ 1 (* -4 (/ (* a c) (pow b 2)))))
(* -1 (/ b a))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (/ 1 a))))
(* -1 (* b (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a)))))
(* -1 (* b (+ (* -2 (/ (* (pow a 2) (pow c 3)) (pow b 6))) (+ (* -1 (/ c (pow b 2))) (+ (* -1 (/ (* a (pow c 2)) (pow b 4))) (/ 1 a))))))
(* -2 b)
(* -1 (* b (+ 2 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 2 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 2 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* -1 (* b (+ 1 (* -2 (/ (* a c) (pow b 2))))))
(* -1 (* b (+ 1 (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4)))))))
(* -1 (* b (+ 1 (+ (* -4 (/ (* (pow a 3) (pow c 3)) (pow b 6))) (+ (* -2 (/ (* a c) (pow b 2))) (* -2 (/ (* (pow a 2) (pow c 2)) (pow b 4))))))))
(* c (- (* -1 (/ (* a c) (pow b 3))) (/ 1 b)))
(* c (- (* c (+ (* -2 (/ (* (pow a 2) c) (pow b 5))) (* -1 (/ a (pow b 3))))) (/ 1 b)))
(* c (- (* c (+ (* -1 (/ a (pow b 3))) (* c (+ (* -2 (/ (pow a 2) (pow b 5))) (* -1/4 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) (* a b))))))) (/ 1 b)))
(* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3)))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3)))))))
(* c (+ (* -2 (/ a b)) (* c (+ (* -2 (/ (pow a 2) (pow b 3))) (* c (+ (* -4 (/ (pow a 3) (pow b 5))) (* -1/2 (/ (* c (+ (* 4 (/ (pow a 4) (pow b 6))) (* 16 (/ (pow a 4) (pow b 6))))) b))))))))
(+ b (* c (+ (* -2 (/ a b)) (* -2 (/ (* (pow a 2) c) (pow b 3))))))
(+ b (* c (+ (* -2 (/ a b)) (* c (+ (* -4 (/ (* (pow a 3) c) (pow b 5))) (* -2 (/ (pow a 2) (pow b 3))))))))
(* c (+ (* -1/2 (/ b (* a c))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4))))))
(* c (+ (* -1/2 (/ b (* a c))) (+ (* -1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/4 (* (sqrt (/ 1 (* (pow a 3) (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* 1/2 (* (sqrt (/ 1 (* a c))) (sqrt -4)))))))
(* c (+ (* -1 (/ b c)) (* (sqrt (/ a c)) (sqrt -4))))
(* c (- (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))) (/ b c)))
(* c (- (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))) (/ b c)))
(* c (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4)))))
(* c (+ (* -1/8 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (/ (pow b 4) (pow (sqrt -4) 3)))) (+ (* 1/16 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (/ (pow b 6) (pow (sqrt -4) 5)))) (+ (* 1/2 (* (sqrt (/ 1 (* a (pow c 3)))) (/ (pow b 2) (sqrt -4)))) (* (sqrt (/ a c)) (sqrt -4))))))
(* c (- (/ (pow b 2) c) (* 4 a)))
(* -1 (* c (+ (* 1/2 (/ b (* a c))) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1/2 (/ b a)) (* -1/8 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 2) (sqrt -1))))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* -1 (/ (+ (* -1 (/ (+ (* -1/128 (* (sqrt (/ 1 (* (pow a 5) c))) (* (pow b 4) (sqrt -1)))) (* 1/8 (* (sqrt (/ c (pow a 3))) (* (pow b 2) (sqrt -1))))) c)) (* -1/2 (/ b a))) c)) (* (sqrt (/ 1 (* a c))) (sqrt -1)))))
(* -1 (* c (+ (* 2 (* (sqrt (/ a c)) (sqrt -1))) (/ b c))))
(* -1 (* c (+ (* -1 (/ (- (* -1/4 (* (sqrt (/ 1 (* a c))) (* (pow b 2) (sqrt -1)))) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1 (/ (- (* -1 (/ (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) c))) (* (pow b 4) (sqrt -1)))) (* 1/4 (* (sqrt (/ c a)) (* (pow b 2) (sqrt -1))))) c)) b) c)) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1)))))))
(* -1 (* c (+ (* -1/64 (* (sqrt (/ 1 (* (pow a 3) (pow c 5)))) (* (pow b 4) (sqrt -1)))) (+ (* 1/512 (* (sqrt (/ 1 (* (pow a 5) (pow c 7)))) (* (pow b 6) (sqrt -1)))) (+ (* 1/4 (* (sqrt (/ 1 (* a (pow c 3)))) (* (pow b 2) (sqrt -1)))) (* 2 (* (sqrt (/ a c)) (sqrt -1))))))))
(* -1 (* c (- (* -1 (/ (pow b 2) c)) (* -4 a))))
Outputs
(* -1 (/ c b))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
(+ (* -1 (/ c b)) (* -1 (/ (* a (pow c 2)) (pow b 3))))
(neg.f64 b)
(+ (* -1 (/ c b)) (* a (+ (* -2 (/ (* a (pow c 3)) (pow b 5))) (* -1 (/ (pow c 2) (pow b 3))))))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(+ (* -1 (/ c b)) (* a (+ (* -1 (/ (pow c 2) (pow b 3))) (* a (+ (* -2 (/ (pow c 3) (pow b 5))) (* -1/4 (/ (* a (+ (* 4 (/ (pow c 4) (pow b 6))) (* 16 (/ (pow c 4) (pow b 6))))) b)))))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(* -2 (/ (* a c) b))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(* a (+ (* -2 (/ c b)) (* -2 (/ (* a (pow c 2)) (pow b 3)))))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))

rewrite0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Counts
6 → 6
Calls
Call 1
Inputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
(neg.f64 b)
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
Outputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
(neg.f64 b)
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))

eval1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
Compiler

Compiled 365 to 30 computations (91.8% saved)

prune3.0ms (0.1%)

Memory
4.5MiB live, 4.5MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New11011
Fresh000
Picked022
Done011
Total11314
Accuracy
21.3%
Counts
14 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
17.6%
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
5.1%
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
8.6%
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Compiler

Compiled 136 to 80 computations (41.2% saved)

regimes7.0ms (0.2%)

Memory
15.9MiB live, 15.9MiB allocated
Counts
3 → 2
Calls
Call 1
Inputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Outputs
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Calls

4 calls:

2.0ms
c
2.0ms
a
2.0ms
b
2.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Results
AccuracySegmentsBranch
17.6%1a
17.6%1b
17.6%1c
21.3%2(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Compiler

Compiled 20 to 23 computations (-15% saved)

regimes10.0ms (0.3%)

Memory
-26.8MiB live, 11.3MiB allocated
Accuracy

Total -2.4b remaining (-4.1%)

Threshold costs -2.4b (-4.1%)

Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))))
Outputs
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Calls

4 calls:

6.0ms
b
1.0ms
a
1.0ms
c
1.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Results
AccuracySegmentsBranch
8.6%1b
8.6%1c
8.6%1a
8.6%1(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a))
Compiler

Compiled 20 to 23 computations (-15% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
-1.8832072068085154e-34
0.0
Compiler

Compiled 20 to 20 computations (0% saved)

simplify5.0ms (0.2%)

Memory
11.1MiB live, 11.1MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(if (<=.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a)) #s(literal -4676805239458889/46768052394588893382517914646921056628989841375232 binary64)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a)) #s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b)))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Outputs
(if (<=.f64 (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a)) #s(literal -4676805239458889/46768052394588893382517914646921056628989841375232 binary64)) (/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))) (*.f64 #s(literal 2 binary64) a)) #s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b)))
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))

soundness1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Stop Event
done
Compiler

Compiled 77 to 29 computations (62.3% saved)

preprocess24.0ms (0.8%)

Memory
-7.1MiB live, 39.9MiB allocated
Compiler

Compiled 188 to 86 computations (54.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...