Quadratic roots, medium range

Time bar (total: 3.0s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze254.0ms (8.4%)

Memory
1.3MiB live, 396.5MiB 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.4s (79%)

Memory
-100.2MiB live, 3 245.8MiB allocated
Samples
1.1s5 198×1valid
392.0ms3 058×0valid
158.0ms1 240×0invalid
Precisions
Click to see histograms. Total time spent on operations: 1.3s
ival-mult: 277.0ms (22% of total)
const: 216.0ms (17.1% of total)
adjust: 137.0ms (10.9% of total)
ival-<: 132.0ms (10.5% of total)
ival-sqrt: 110.0ms (8.7% of total)
ival-div: 108.0ms (8.6% of total)
ival-add: 90.0ms (7.1% of total)
ival-sub: 79.0ms (6.3% of total)
ival-neg: 58.0ms (4.6% of total)
ival-and: 34.0ms (2.7% of total)
exact: 15.0ms (1.2% of total)
ival-assert: 4.0ms (0.3% of total)
Bogosity

explain193.0ms (6.4%)

Memory
-14.0MiB live, 305.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
2451(1.0546535014232492e-13 1.852242394655347e-6 0.034824053192775865)1(3.1681450842219827 1348010257.0507185 3282579077800708.5)(+.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))))cancellation2452
Confusion
Predicted +Predicted -
+2441
-110
Precision
0.9959183673469387
Recall
0.9959183673469387
Confusion?
Predicted +Predicted MaybePredicted -
+24401
-128
Precision?
0.9878542510121457
Recall?
0.9959183673469387
Freqs
test
numberfreq
011
1245
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
55.0ms320×1valid
21.0ms192×0valid
Compiler

Compiled 231 to 60 computations (74% saved)

Precisions
Click to see histograms. Total time spent on operations: 47.0ms
ival-mult: 14.0ms (29.6% of total)
ival-sub: 8.0ms (16.9% of total)
adjust: 6.0ms (12.7% of total)
ival-div: 6.0ms (12.7% of total)
ival-sqrt: 6.0ms (12.7% of total)
ival-add: 4.0ms (8.4% of total)
ival-neg: 2.0ms (4.2% of total)
exact: 1.0ms (2.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess3.0ms (0.1%)

Memory
7.5MiB live, 7.5MiB 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
34.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))
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)

localize49.0ms (1.6%)

Memory
-8.8MiB live, 79.8MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.07421875
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
accuracy0.16796875
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
accuracy0.28515625
(/.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))
accuracy42.17859327114422
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
Samples
27.0ms160×1valid
12.0ms96×0valid
Compiler

Compiled 142 to 30 computations (78.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-mult: 7.0ms (32.8% of total)
adjust: 3.0ms (14% of total)
ival-div: 3.0ms (14% of total)
ival-sqrt: 3.0ms (14% of total)
ival-add: 2.0ms (9.4% of total)
ival-sub: 2.0ms (9.4% of total)
ival-neg: 1.0ms (4.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series23.0ms (0.8%)

Memory
-1.4MiB live, 37.7MiB 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
5.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
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
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
2.6MiB live, 2.6MiB 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
1.0MiB live, 1.0MiB 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.9MiB live, 2.9MiB allocated
Compiler

Compiled 226 to 31 computations (86.3% saved)

prune3.0ms (0.1%)

Memory
-36.1MiB live, 2.7MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New8210
Fresh000
Picked011
Done000
Total8311
Accuracy
36.7%
Counts
11 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
34.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))
7.9%
#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)))))
10.5%
#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

localize47.0ms (1.6%)

Memory
29.5MiB live, 70.5MiB allocated
Localize:

Found 6 expressions of interest:

NewMetricScoreProgram
accuracy0.07421875
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c)))
accuracy0.16796875
(-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))
accuracy42.17859327114422
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 #s(literal 4 binary64) a) c))))
accuracy56.300067192006765
#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)
accuracy57.28533333903049
#s(approx (/ (+ (neg b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (neg.f64 b))
Samples
28.0ms160×1valid
9.0ms96×0valid
Compiler

Compiled 191 to 40 computations (79.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-mult: 7.0ms (32.8% of total)
adjust: 3.0ms (14% of total)
ival-div: 3.0ms (14% of total)
ival-sqrt: 3.0ms (14% of total)
ival-add: 2.0ms (9.4% of total)
ival-sub: 2.0ms (9.4% of total)
ival-neg: 1.0ms (4.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series10.0ms (0.3%)

Memory
-25.1MiB live, 13.4MiB 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
4.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
b
@0
((/ (+ (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)))

simplify2.0ms (0.1%)

Memory
3.2MiB live, 3.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.9MiB live, 0.9MiB 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.9MiB live, 2.9MiB allocated
Compiler

Compiled 365 to 30 computations (91.8% saved)

prune3.0ms (0.1%)

Memory
5.8MiB live, 5.8MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New11011
Fresh000
Picked022
Done011
Total11314
Accuracy
36.7%
Counts
14 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
34.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))
7.9%
#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)))))
10.5%
#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
16.0MiB live, 16.0MiB 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
(/.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))
2.0ms
a
2.0ms
c
2.0ms
b
Results
AccuracySegmentsBranch
34.0%1a
34.0%1b
34.0%1c
36.7%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)

regimes7.0ms (0.2%)

Memory
-25.3MiB live, 13.6MiB allocated
Accuracy

Total -2.1b remaining (-3.7%)

Threshold costs -2.1b (-3.7%)

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:

3.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))
1.0ms
a
1.0ms
b
Results
AccuracySegmentsBranch
10.5%1a
10.5%1b
10.5%1c
10.5%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.632894459443197e-21
0.0
Compiler

Compiled 20 to 20 computations (0% saved)

simplify5.0ms (0.2%)

Memory
9.4MiB live, 9.4MiB 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 -5316911983139663/5316911983139663491615228241121378304 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 -5316911983139663/5316911983139663491615228241121378304 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
0.9MiB live, 0.9MiB allocated
Stop Event
done
Compiler

Compiled 77 to 29 computations (62.3% saved)

preprocess21.0ms (0.7%)

Memory
-2.6MiB live, 36.3MiB allocated
Compiler

Compiled 188 to 86 computations (54.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...