Falkner and Boettcher, Appendix A

Time bar (total: 2.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze230.0ms (11.2%)

Memory
9.8MiB live, 404.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%49.9%49.9%0.1%0%0%0%3
50%49.9%49.9%0.1%0%0%0%4
50%49.9%49.9%0.1%0%0%0%5
50%49.9%49.9%0.1%0%0%0%6
50%49.9%49.9%0.1%0%0%0%7
50%49.9%49.9%0.1%0%0%0%8
50%49.9%49.9%0.1%0%0%0%9
50.8%49.9%48.4%0.1%0%1.6%0%10
50.8%49.9%48.4%0.1%0%1.6%0%11
51.6%49.9%46.8%0.1%0%3.1%0%12
Compiler

Compiled 17 to 14 computations (17.6% saved)

sample1.4s (65.6%)

Memory
2.7MiB live, 1 814.7MiB allocated
Samples
707.0ms8 256×0valid
231.0ms3 169×0invalid
Precisions
Click to see histograms. Total time spent on operations: 624.0ms
ival-mult: 213.0ms (34.1% of total)
ival-pow: 198.0ms (31.7% of total)
ival-add: 108.0ms (17.3% of total)
ival-div: 83.0ms (13.3% of total)
exact: 10.0ms (1.6% of total)
ival-true: 8.0ms (1.3% of total)
ival-assert: 4.0ms (0.6% of total)
Bogosity

explain140.0ms (6.8%)

Memory
11.9MiB live, 220.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
230-0-(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
00-0-k
00-0-a
00-0-#s(literal 1 binary64)
00-0-(*.f64 a (pow.f64 k m))
00-0-(*.f64 #s(literal 10 binary64) k)
00-0-(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
00-0-(*.f64 k k)
00-0-(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
00-0-(pow.f64 k m)
00-0-m
00-0-#s(literal 10 binary64)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))o/o170
(*.f64 a (pow.f64 k m))overflow70
(pow.f64 k m)overflow70
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))overflow63
(*.f64 k k)overflow63
/.f64(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))n/o60
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))overflow63
(*.f64 k k)overflow63
Confusion
Predicted +Predicted -
+230
-0233
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+2300
-00233
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0233
123
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
43.0ms468×0valid
11.0ms18×2valid
4.0ms26×1valid
Compiler

Compiled 163 to 52 computations (68.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 38.0ms
ival-add: 12.0ms (31.6% of total)
ival-mult: 10.0ms (26.4% of total)
ival-pow: 10.0ms (26.4% of total)
ival-div: 4.0ms (10.5% of total)
adjust: 1.0ms (2.6% of total)
exact: 1.0ms (2.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess3.0ms (0.2%)

Memory
7.1MiB live, 7.1MiB allocated
Algorithm
egg-herbie
Calls
Call 1
Inputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Outputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Compiler

Compiled 15 to 12 computations (20% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 3 computations (-∞% saved)

prune3.0ms (0.1%)

Memory
-37.1MiB live, 1.0MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
91.1%
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify0.0ms (0%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
cost-diff0
(pow.f64 k m)
cost-diff0
(*.f64 a (pow.f64 k m))
cost-diff0
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Calls
Call 1
Inputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(*.f64 a (pow.f64 k m))
a
(pow.f64 k m)
k
m
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
#s(literal 1 binary64)
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
(*.f64 k k)
Outputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(*.f64 a (pow.f64 k m))
a
(pow.f64 k m)
k
m
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
#s(literal 1 binary64)
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
(*.f64 k k)

localize34.0ms (1.6%)

Memory
13.3MiB live, 51.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.01171875
(*.f64 a (pow.f64 k m))
accuracy0.015625
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
accuracy0.0859375
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
accuracy5.159320253027888
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Samples
22.0ms234×0valid
2.0ms13×1valid
2.0ms2valid
Compiler

Compiled 98 to 26 computations (73.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-pow: 6.0ms (37.1% of total)
ival-mult: 5.0ms (30.9% of total)
ival-add: 3.0ms (18.5% of total)
ival-div: 2.0ms (12.4% of total)
adjust: 1.0ms (6.2% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series98.0ms (4.7%)

Memory
-0.1MiB live, 153.9MiB allocated
Counts
5 → 37
Calls
Call 1
Inputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(*.f64 a (pow.f64 k m))
(pow.f64 k m)
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
Outputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(* a (pow k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(pow k m)
1
(+ 1 (* 10 k))
(+ 1 (* k (+ 10 k)))
(/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -10 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* -10 (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))))) (pow k 3))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (+ (* -100 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))) (+ (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))))) (pow k 2))
(* a (exp (* -1 (* m (log (/ 1 k))))))
(exp (* -1 (* m (log (/ 1 k)))))
(pow k 2)
(* (pow k 2) (+ 1 (* 10 (/ 1 k))))
(* (pow k 2) (+ 1 (+ (* 10 (/ 1 k)) (/ 1 (pow k 2)))))
(* 10 k)
(* k (+ 10 (/ 1 k)))
(/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (+ (* -100 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (* -1 (/ (- (+ (* 10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* 10 (/ (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) k))) (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))
(exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))
(/ a (+ 1 (+ (* 10 k) (pow k 2))))
(+ (/ a (+ 1 (+ (* 10 k) (pow k 2)))) (/ (* a (* m (log k))) (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* 1/2 (/ (* a (* m (pow (log k) 2))) (+ 1 (+ (* 10 k) (pow k 2))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* m (+ (* 1/6 (/ (* a (* m (pow (log k) 3))) (+ 1 (+ (* 10 k) (pow k 2))))) (* 1/2 (/ (* a (pow (log k) 2)) (+ 1 (+ (* 10 k) (pow k 2))))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
a
(+ a (* a (* m (log k))))
(+ a (* m (+ (* 1/2 (* a (* m (pow (log k) 2)))) (* a (log k)))))
(+ a (* m (+ (* a (log k)) (* m (+ (* 1/6 (* a (* m (pow (log k) 3)))) (* 1/2 (* a (pow (log k) 2))))))))
(+ 1 (* m (log k)))
(+ 1 (* m (+ (log k) (* 1/2 (* m (pow (log k) 2))))))
(+ 1 (* m (+ (log k) (* m (+ (* 1/6 (* m (pow (log k) 3))) (* 1/2 (pow (log k) 2)))))))
Calls

9 calls:

TimeVariablePointExpression
41.0ms
a
@0
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* a (pow k m)) (pow k m) (+ (+ 1 (* 10 k)) (* k k)) (+ 1 (* 10 k)))
13.0ms
k
@-inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* a (pow k m)) (pow k m) (+ (+ 1 (* 10 k)) (* k k)) (+ 1 (* 10 k)))
13.0ms
k
@0
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* a (pow k m)) (pow k m) (+ (+ 1 (* 10 k)) (* k k)) (+ 1 (* 10 k)))
9.0ms
a
@inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* a (pow k m)) (pow k m) (+ (+ 1 (* 10 k)) (* k k)) (+ 1 (* 10 k)))
8.0ms
k
@inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* a (pow k m)) (pow k m) (+ (+ 1 (* 10 k)) (* k k)) (+ 1 (* 10 k)))

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Counts
37 → 5
Calls
Call 1
Inputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(* a (pow k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(pow k m)
1
(+ 1 (* 10 k))
(+ 1 (* k (+ 10 k)))
(/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -10 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* -10 (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))))) (pow k 3))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (+ (* -100 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))) (+ (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))))) (pow k 2))
(* a (exp (* -1 (* m (log (/ 1 k))))))
(exp (* -1 (* m (log (/ 1 k)))))
(pow k 2)
(* (pow k 2) (+ 1 (* 10 (/ 1 k))))
(* (pow k 2) (+ 1 (+ (* 10 (/ 1 k)) (/ 1 (pow k 2)))))
(* 10 k)
(* k (+ 10 (/ 1 k)))
(/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (+ (* -100 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (* -1 (/ (- (+ (* 10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* 10 (/ (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) k))) (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))
(exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))
(/ a (+ 1 (+ (* 10 k) (pow k 2))))
(+ (/ a (+ 1 (+ (* 10 k) (pow k 2)))) (/ (* a (* m (log k))) (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* 1/2 (/ (* a (* m (pow (log k) 2))) (+ 1 (+ (* 10 k) (pow k 2))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* m (+ (* 1/6 (/ (* a (* m (pow (log k) 3))) (+ 1 (+ (* 10 k) (pow k 2))))) (* 1/2 (/ (* a (pow (log k) 2)) (+ 1 (+ (* 10 k) (pow k 2))))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
a
(+ a (* a (* m (log k))))
(+ a (* m (+ (* 1/2 (* a (* m (pow (log k) 2)))) (* a (log k)))))
(+ a (* m (+ (* a (log k)) (* m (+ (* 1/6 (* a (* m (pow (log k) 3)))) (* 1/2 (* a (pow (log k) 2))))))))
(+ 1 (* m (log k)))
(+ 1 (* m (+ (log k) (* 1/2 (* m (pow (log k) 2))))))
(+ 1 (* m (+ (log k) (* m (+ (* 1/6 (* m (pow (log k) 3))) (* 1/2 (pow (log k) 2)))))))
Outputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(* a (pow k m))
(*.f64 a (pow.f64 k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(pow.f64 k m)
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))

rewrite0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Counts
5 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(*.f64 a (pow.f64 k m))
(pow.f64 k m)
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
Outputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(*.f64 a (pow.f64 k m))
(pow.f64 k m)
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))

eval1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Compiler

Compiled 192 to 27 computations (85.9% saved)

prune2.0ms (0.1%)

Memory
3.2MiB live, 3.2MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New7310
Fresh000
Picked011
Done000
Total7411
Accuracy
95.1%
Counts
11 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
91.1%
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
49.4%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
6.3%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
2.6%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
Compiler

Compiled 80 to 62 computations (22.5% saved)

simplify1.0ms (0%)

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

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 k m)
cost-diff0
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
cost-diff0
(*.f64 #s(literal 10 binary64) k)
cost-diff0
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
cost-diff0
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
cost-diff0
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
cost-diff0
(*.f64 #s(literal 10 binary64) k)
cost-diff0
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
cost-diff0
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
#s(literal 1 binary64)
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
k
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
#s(literal 1 binary64)
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
k
(*.f64 k k)
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(pow.f64 k m)
k
m
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
#s(literal 1 binary64)
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
k
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
#s(literal 1 binary64)
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
k
(*.f64 k k)
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(pow.f64 k m)
k
m

localize41.0ms (2%)

Memory
17.0MiB live, 57.3MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(pow.f64 k m)
accuracy32.37481179763071
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
accuracy0.0
(*.f64 #s(literal 10 binary64) k)
accuracy0.015625
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
accuracy0.0859375
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
accuracy59.95599803541578
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
accuracy0.0
(*.f64 #s(literal 10 binary64) k)
accuracy0.0859375
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
accuracy62.35249238136251
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
Samples
22.0ms234×0valid
8.0ms13×1valid
2.0ms2valid
Compiler

Compiled 190 to 36 computations (81.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
ival-pow: 11.0ms (52.5% of total)
ival-mult: 4.0ms (19.1% of total)
ival-add: 3.0ms (14.3% of total)
ival-div: 2.0ms (9.5% of total)
adjust: 1.0ms (4.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series50.0ms (2.4%)

Memory
-21.7MiB live, 94.6MiB allocated
Counts
7 → 31
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(pow.f64 k m)
Outputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(* a (pow k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
1
(+ 1 (* 10 k))
(* 10 k)
(+ 1 (* k (+ 10 k)))
(pow k m)
(/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -10 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* -10 (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))))) (pow k 3))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (+ (* -100 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))) (+ (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))))) (pow k 2))
(* k (+ 10 (/ 1 k)))
(pow k 2)
(* (pow k 2) (+ 1 (* 10 (/ 1 k))))
(* (pow k 2) (+ 1 (+ (* 10 (/ 1 k)) (/ 1 (pow k 2)))))
(exp (* -1 (* m (log (/ 1 k)))))
(/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (+ (* -100 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (* -1 (/ (- (+ (* 10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* 10 (/ (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) k))) (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))
(/ a (+ 1 (+ (* 10 k) (pow k 2))))
(+ (/ a (+ 1 (+ (* 10 k) (pow k 2)))) (/ (* a (* m (log k))) (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* 1/2 (/ (* a (* m (pow (log k) 2))) (+ 1 (+ (* 10 k) (pow k 2))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* m (+ (* 1/6 (/ (* a (* m (pow (log k) 3))) (+ 1 (+ (* 10 k) (pow k 2))))) (* 1/2 (/ (* a (pow (log k) 2)) (+ 1 (+ (* 10 k) (pow k 2))))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ 1 (* m (log k)))
(+ 1 (* m (+ (log k) (* 1/2 (* m (pow (log k) 2))))))
(+ 1 (* m (+ (log k) (* m (+ (* 1/6 (* m (pow (log k) 3))) (* 1/2 (pow (log k) 2)))))))
Calls

9 calls:

TimeVariablePointExpression
11.0ms
a
@0
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ 1 (* 10 k)) (* 10 k) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ (+ 1 (* 10 k)) (* k k)) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow k m))
8.0ms
k
@-inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ 1 (* 10 k)) (* 10 k) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ (+ 1 (* 10 k)) (* k k)) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow k m))
7.0ms
k
@inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ 1 (* 10 k)) (* 10 k) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ (+ 1 (* 10 k)) (* k k)) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow k m))
7.0ms
k
@0
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ 1 (* 10 k)) (* 10 k) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ (+ 1 (* 10 k)) (* k k)) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow k m))
7.0ms
a
@inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ 1 (* 10 k)) (* 10 k) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+ (+ 1 (* 10 k)) (* k k)) (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow k m))

simplify1.0ms (0%)

Memory
1.8MiB live, 1.8MiB allocated
Algorithm
egg-herbie
Counts
31 → 7
Calls
Call 1
Inputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(* a (pow k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
1
(+ 1 (* 10 k))
(* 10 k)
(+ 1 (* k (+ 10 k)))
(pow k m)
(/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -10 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* -10 (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))))) (pow k 3))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (+ (* -100 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))) (+ (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))))) (pow k 2))
(* k (+ 10 (/ 1 k)))
(pow k 2)
(* (pow k 2) (+ 1 (* 10 (/ 1 k))))
(* (pow k 2) (+ 1 (+ (* 10 (/ 1 k)) (/ 1 (pow k 2)))))
(exp (* -1 (* m (log (/ 1 k)))))
(/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (+ (* -100 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (* -1 (/ (- (+ (* 10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* 10 (/ (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) k))) (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))
(/ a (+ 1 (+ (* 10 k) (pow k 2))))
(+ (/ a (+ 1 (+ (* 10 k) (pow k 2)))) (/ (* a (* m (log k))) (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* 1/2 (/ (* a (* m (pow (log k) 2))) (+ 1 (+ (* 10 k) (pow k 2))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* m (+ (* 1/6 (/ (* a (* m (pow (log k) 3))) (+ 1 (+ (* 10 k) (pow k 2))))) (* 1/2 (/ (* a (pow (log k) 2)) (+ 1 (+ (* 10 k) (pow k 2))))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ 1 (* m (log k)))
(+ 1 (* m (+ (log k) (* 1/2 (* m (pow (log k) 2))))))
(+ 1 (* m (+ (log k) (* m (+ (* 1/6 (* m (pow (log k) 3))) (* 1/2 (pow (log k) 2)))))))
Outputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
(* a (pow k m))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(*.f64 #s(literal 10 binary64) k)
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
1
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(+ 1 (* 10 k))
(pow.f64 k m)

rewrite0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Counts
7 → 7
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(pow.f64 k m)
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(pow.f64 k m)

eval2.0ms (0.1%)

Memory
3.8MiB live, 3.8MiB allocated
Compiler

Compiled 438 to 33 computations (92.5% saved)

prune3.0ms (0.1%)

Memory
5.9MiB live, 5.9MiB allocated
Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New15116
Fresh000
Picked033
Done011
Total15520
Accuracy
95.1%
Counts
20 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
91.1%
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
49.4%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
6.3%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
2.6%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
2.9%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
Compiler

Compiled 99 to 77 computations (22.2% saved)

simplify0.0ms (0%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 10 binary64) k)
cost-diff0
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
k
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
#s(literal 10 binary64)
k

localize28.0ms (1.4%)

Memory
8.1MiB live, 49.4MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(*.f64 #s(literal 10 binary64) k)
accuracy62.11242179282894
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
Samples
22.0ms256×0valid
Compiler

Compiled 46 to 29 computations (37% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-pow: 7.0ms (46% of total)
ival-mult: 4.0ms (26.3% of total)
ival-div: 2.0ms (13.1% of total)
ival-add: 2.0ms (13.1% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series28.0ms (1.3%)

Memory
9.6MiB live, 48.1MiB allocated
Counts
2 → 18
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
Outputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(* a (pow k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(* 10 k)
(/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -10 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* -10 (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))))) (pow k 3))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (+ (* -100 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))) (+ (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))))) (pow k 2))
(/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (+ (* -100 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (* -1 (/ (- (+ (* 10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* 10 (/ (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) k))) (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ a (+ 1 (+ (* 10 k) (pow k 2))))
(+ (/ a (+ 1 (+ (* 10 k) (pow k 2)))) (/ (* a (* m (log k))) (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* 1/2 (/ (* a (* m (pow (log k) 2))) (+ 1 (+ (* 10 k) (pow k 2))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* m (+ (* 1/6 (/ (* a (* m (pow (log k) 3))) (+ 1 (+ (* 10 k) (pow k 2))))) (* 1/2 (/ (* a (pow (log k) 2)) (+ 1 (+ (* 10 k) (pow k 2))))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
Calls

9 calls:

TimeVariablePointExpression
11.0ms
a
@0
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* 10 k))
7.0ms
a
@-inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* 10 k))
7.0ms
a
@inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* 10 k))
1.0ms
m
@inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* 10 k))
1.0ms
m
@-inf
((/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (* 10 k))

simplify1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
18 → 2
Calls
Call 1
Inputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
(* a (pow k m))
(+ (* -10 (* a (* k (pow k m)))) (* a (pow k m)))
(+ (* a (pow k m)) (* k (- (* -1 (* k (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(+ (* a (pow k m)) (* k (- (* k (- (* -1 (* k (+ (* -10 (* a (pow k m))) (* -10 (+ (* -100 (* a (pow k m))) (* a (pow k m))))))) (+ (* -100 (* a (pow k m))) (* a (pow k m))))) (* 10 (* a (pow k m))))))
(* 10 k)
(/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (pow k 2))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k))) (pow k 2))
(/ (- (+ (* -1 (/ (+ (* -10 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* -10 (+ (* -100 (* a (exp (* -1 (* m (log (/ 1 k))))))) (* a (exp (* -1 (* m (log (/ 1 k))))))))) (pow k 3))) (* a (exp (* -1 (* m (log (/ 1 k))))))) (+ (* -100 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))) (+ (* 10 (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) k)) (/ (* a (exp (* -1 (* m (log (/ 1 k)))))) (pow k 2))))) (pow k 2))
(/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) (pow k 2))
(/ (+ (* -10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (+ (* -100 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ (+ (* -1 (/ (- (* -1 (/ (- (+ (* 10 (/ (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))) k)) (* 10 (/ (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) k))) (+ (* -100 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* -10 (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k))))))))) k)) (* a (exp (* m (+ (log -1) (* -1 (log (/ -1 k)))))))) (pow k 2))
(/ a (+ 1 (+ (* 10 k) (pow k 2))))
(+ (/ a (+ 1 (+ (* 10 k) (pow k 2)))) (/ (* a (* m (log k))) (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* 1/2 (/ (* a (* m (pow (log k) 2))) (+ 1 (+ (* 10 k) (pow k 2))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
(+ (* m (+ (* m (+ (* 1/6 (/ (* a (* m (pow (log k) 3))) (+ 1 (+ (* 10 k) (pow k 2))))) (* 1/2 (/ (* a (pow (log k) 2)) (+ 1 (+ (* 10 k) (pow k 2))))))) (/ (* a (log k)) (+ 1 (+ (* 10 k) (pow k 2)))))) (/ a (+ 1 (+ (* 10 k) (pow k 2)))))
Outputs
(/ (* a (pow k m)) (+ 1 (+ (* 10 k) (pow k 2))))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
(* a (pow k m))
(*.f64 #s(literal 10 binary64) k)

rewrite0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
(*.f64 #s(literal 10 binary64) k)

eval0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Compiler

Compiled 73 to 16 computations (78.1% saved)

prune5.0ms (0.3%)

Memory
-33.5MiB live, 4.8MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New303
Fresh000
Picked011
Done044
Total358
Accuracy
95.1%
Counts
8 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
91.1%
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
49.4%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
6.3%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
2.6%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
2.9%
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
Compiler

Compiled 198 to 102 computations (48.5% saved)

regimes9.0ms (0.4%)

Memory
16.3MiB live, 16.3MiB allocated
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Outputs
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Calls

4 calls:

2.0ms
k
2.0ms
a
2.0ms
m
2.0ms
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Results
AccuracySegmentsBranch
91.1%1a
93.1%2k
91.1%1m
95.1%2(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Compiler

Compiled 18 to 21 computations (-16.7% saved)

regimes8.0ms (0.4%)

Memory
14.6MiB live, 14.6MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (pow.f64 k m))
Calls

4 calls:

2.0ms
a
2.0ms
m
2.0ms
k
2.0ms
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Results
AccuracySegmentsBranch
49.4%1a
49.4%1m
49.4%1k
49.4%1(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Compiler

Compiled 18 to 21 computations (-16.7% saved)

regimes8.0ms (0.4%)

Memory
-25.4MiB live, 13.5MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Calls

4 calls:

3.0ms
a
2.0ms
m
2.0ms
k
2.0ms
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Results
AccuracySegmentsBranch
6.3%1(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
6.3%1k
6.3%1a
6.3%1m
Compiler

Compiled 18 to 21 computations (-16.7% saved)

regimes6.0ms (0.3%)

Memory
11.7MiB live, 11.7MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)))
Outputs
#s(approx (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))) (*.f64 #s(literal 10 binary64) k))
Calls

4 calls:

1.0ms
m
1.0ms
a
1.0ms
k
1.0ms
(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
Results
AccuracySegmentsBranch
2.9%1k
2.9%1(/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))
2.9%1a
2.9%1m
Compiler

Compiled 18 to 21 computations (-16.7% saved)

bsearch0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
+inf
NaN
Compiler

Compiled 18 to 18 computations (0% saved)

simplify4.0ms (0.2%)

Memory
10.4MiB live, 10.3MiB allocated

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...