Diagrams.Segment:$catParam from diagrams-lib-1.3.0.3, B

Time bar (total: 4.8s)

analyze0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample633.0ms (13.2%)

Memory
18.8MiB live, 895.5MiB allocated
Samples
412.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 193.0ms
ival-mult: 180.0ms (93.5% of total)
ival-true: 6.0ms (3.1% of total)
exact: 4.0ms (2.1% of total)
ival-assert: 3.0ms (1.6% of total)
Bogosity

preprocess41.0ms (0.9%)

Memory
-3.7MiB live, 33.6MiB allocated
Algorithm
egg-herbie
Rules
530×unsub-neg
244×associate-*r*
192×distribute-lft-neg-in
178×distribute-lft-in
142×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
15935
218835
360635
493335
5128935
6132135
7132335
8132335
9132535
067
097
1167
2317
3487
4487
0487
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Outputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y y))
Symmetry

(abs y)

(negabs x)

explain69.0ms (1.4%)

Memory
3.4MiB live, 122.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(*.f64 (*.f64 x #s(literal 3 binary64)) y)
00-0-y
00-0-#s(literal 3 binary64)
00-0-(*.f64 x #s(literal 3 binary64))
00-0-(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
36.0ms512×0valid
Compiler

Compiled 58 to 28 computations (51.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-mult: 16.0ms (94.9% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Compiler

Compiled 9 to 6 computations (33.3% saved)

simplify5.0ms (0.1%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
cost-diff0
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Rules
62×lower-*.f32
56×lower-*.f64
28×associate-*r*
22×*-commutative
16×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11618
23118
34818
44818
04818
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y
Outputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y y))
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y

localize20.0ms (0.4%)

Memory
1.4MiB live, 39.0MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 x #s(literal 3 binary64))
accuracy99.7%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
accuracy99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Samples
13.0ms256×0valid
Compiler

Compiled 20 to 8 computations (60% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 5.0ms (95.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.2%)

Memory
-21.4MiB live, 16.9MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#<alt (*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)>
#<alt (*.f64 (*.f64 x #s(literal 3 binary64)) y)>
#<alt (*.f64 x #s(literal 3 binary64))>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
Calls

15 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(* (* (* x 3) y) y)
1.0ms
x
@0
(* (* (* x 3) y) y)
1.0ms
x
@inf
(* (* x 3) y)
1.0ms
y
@0
(* (* (* x 3) y) y)
1.0ms
x
@0
(* (* x 3) y)

simplify6.0ms (0.1%)

Memory
13.2MiB live, 13.2MiB allocated
Algorithm
egg-herbie
Rules
62×lower-*.f64
62×lower-*.f32
24×associate-*l*
20×associate-*r*
14×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010324
118324
233324
344324
044324
Stop Event
iter limit
saturated
Counts
60 → 60
Calls
Call 1
Inputs
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
Outputs
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)

rewrite184.0ms (3.8%)

Memory
-21.4MiB live, 219.4MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 264×lower-*.f32
1 260×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0615
0921
11621
23321
35721
47321
514521
64339
722579
822839
924069
1036289
085819
Stop Event
iter limit
node limit
iter limit
Counts
3 → 12
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 x #s(literal 3 binary64))
Outputs
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) x)
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) x)
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) x)
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))

eval14.0ms (0.3%)

Memory
36.9MiB live, 36.9MiB allocated
Compiler

Compiled 554 to 21 computations (96.2% saved)

prune7.0ms (0.1%)

Memory
-19.8MiB live, 13.2MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New68472
Fresh000
Picked011
Done000
Total68573
Accuracy
99.9%
Counts
73 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
28.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
4.9%
(*.f64 x #s(literal 3 binary64))
99.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
Compiler

Compiled 41 to 27 computations (34.1% saved)

simplify7.0ms (0.1%)

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

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
cost-diff0
(*.f64 x y)
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 x y))
cost-diff0
#s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
cost-diff0
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
cost-diff0
(*.f64 x #s(literal 3 binary64))
cost-diff0
(*.f64 x y)
cost-diff0
(*.f64 y (*.f64 x y))
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
cost-diff0
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
Rules
66×lower-*.f32
52×lower-*.f64
28×associate-*r*
20×*-commutative
20×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01584
02184
13784
25384
35984
05984
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
#s(literal 3 binary64)
(*.f64 y (*.f64 x y))
y
(*.f64 x y)
x
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
#s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
#s(literal 3 binary64)
(*.f64 x y)
x
y
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
#s(literal 3 binary64)
(*.f64 y (*.f64 x y))
(*.f64 x (*.f64 y y))
y
(*.f64 x y)
x
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
(*.f64 y #s(approx (* (* x 3) y) (*.f64 x (*.f64 #s(literal 3 binary64) y))))
#s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
#s(approx (* (* x 3) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
#s(literal 3 binary64)
(*.f64 x y)
x
y
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y

localize47.0ms (1%)

Memory
-17.7MiB live, 102.8MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 x #s(literal 3 binary64))
accuracy99.7%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
accuracy100.0%
(*.f64 x y)
accuracy100.0%
#s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
accuracy99.7%
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
accuracy99.6%
(*.f64 #s(literal 3 binary64) (*.f64 x y))
accuracy100.0%
(*.f64 x #s(literal 3 binary64))
accuracy100.0%
(*.f64 x y)
accuracy100.0%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
accuracy99.8%
(*.f64 y (*.f64 x y))
accuracy99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
Samples
24.0ms256×0valid
Compiler

Compiled 66 to 12 computations (81.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 11.0ms (93.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
8.7MiB live, 8.7MiB allocated
Counts
9 → 204
Calls
Call 1
Inputs
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))>
#<alt (*.f64 y (*.f64 x y))>
#<alt (*.f64 x y)>
#<alt (*.f64 x #s(literal 3 binary64))>
#<alt (*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)>
#<alt #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 x y))>
#<alt (*.f64 (*.f64 x #s(literal 3 binary64)) y)>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
Calls

51 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(* y (* x y))
0.0ms
x
@-inf
(* x y)
0.0ms
y
@-inf
(* x y)
0.0ms
x
@inf
(* (* x 3) y)
0.0ms
y
@-inf
(* 3 (* y (* x y)))

simplify12.0ms (0.3%)

Memory
-11.4MiB live, 26.5MiB allocated
Algorithm
egg-herbie
Rules
62×lower-*.f64
62×lower-*.f32
24×associate-*l*
20×associate-*r*
14×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0101092
1181092
2331092
3441092
0441092
Stop Event
iter limit
saturated
Counts
204 → 204
Calls
Call 1
Inputs
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x (pow y 2))
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
Outputs
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x (pow y 2))
(*.f64 x (*.f64 y y))
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 x)
(*.f64 #s(literal 3 binary64) x)
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x (pow y 2)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))

rewrite133.0ms (2.8%)

Memory
32.0MiB live, 182.6MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 268×lower-*.f32
1 256×lower-*.f64
Iterations

Useful iterations: 7 (0.0ms)

IterNodesCost
01567
02183
13783
25583
36983
48583
516183
646739
7235435
8238235
9250535
10372635
0872435
Stop Event
iter limit
node limit
iter limit
Counts
9 → 31
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(*.f64 y (*.f64 x y))
(*.f64 x y)
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
#s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(literal 1 binary64) #s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64))))
(*.f64 #s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64))) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
x
(*.f64 x #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) x)
x
(*.f64 x #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
#s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(literal 1 binary64) #s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64))))
(*.f64 #s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64))) #s(literal 1 binary64))
#s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(literal 1 binary64) #s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64))))
(*.f64 #s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64))) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))

eval42.0ms (0.9%)

Memory
-18.9MiB live, 54.1MiB allocated
Compiler

Compiled 2 140 to 34 computations (98.4% saved)

prune9.0ms (0.2%)

Memory
35.5MiB live, 35.5MiB allocated
Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New2762278
Fresh000
Picked044
Done011
Total2767283
Accuracy
100.0%
Counts
283 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
28.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
4.9%
(*.f64 x #s(literal 3 binary64))
88.9%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
99.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Compiler

Compiled 59 to 38 computations (35.6% saved)

simplify14.0ms (0.3%)

Memory
-20.7MiB live, 19.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 y y)
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 y y))
cost-diff0
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
cost-diff0
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
cost-diff0
(*.f64 y x)
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 y x))
cost-diff0
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Rules
62×lower-*.f32
52×lower-*.f64
24×associate-*r*
20×*-commutative
18×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01357
01857
13157
24557
35157
05157
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
(*.f64 #s(literal 3 binary64) (*.f64 y x))
#s(literal 3 binary64)
(*.f64 y x)
y
x
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
x
(*.f64 #s(literal 3 binary64) (*.f64 y y))
#s(literal 3 binary64)
(*.f64 y y)
y
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 #s(literal 3 binary64) (*.f64 y x))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
#s(literal 3 binary64)
(*.f64 y x)
(*.f64 x y)
y
x
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
#s(approx (* (* (* x 3) y) y) (*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y y)))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 y y))
x
(*.f64 #s(literal 3 binary64) (*.f64 y y))
#s(literal 3 binary64)
(*.f64 y y)
y

localize36.0ms (0.8%)

Memory
6.3MiB live, 81.2MiB allocated
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 y y)
accuracy100.0%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
accuracy99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y y))
accuracy88.9%
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
accuracy100.0%
(*.f64 y x)
accuracy99.6%
(*.f64 #s(literal 3 binary64) (*.f64 y x))
accuracy28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Samples
24.0ms256×0valid
Compiler

Compiled 45 to 13 computations (71.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 11.0ms (93.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series2.0ms (0.1%)

Memory
5.0MiB live, 5.0MiB allocated
Counts
7 → 144
Calls
Call 1
Inputs
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 y x))>
#<alt (*.f64 y x)>
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))>
#<alt (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 y y))>
#<alt (*.f64 y y)>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
Calls

36 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(* y y)
0.0ms
y
@inf
(* 3 (* y y))
0.0ms
y
@0
(* 3 (* y y))
0.0ms
y
@inf
(* x (* 3 (* y y)))
0.0ms
y
@inf
(* 3 (* y x))

simplify10.0ms (0.2%)

Memory
-15.3MiB live, 22.0MiB allocated
Algorithm
egg-herbie
Rules
62×lower-*.f64
62×lower-*.f32
22×associate-*r*
20×*-commutative
20×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010792
119792
235792
345792
045792
Stop Event
iter limit
saturated
Counts
144 → 144
Calls
Call 1
Inputs
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* x y)
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(* 3 (pow y 2))
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
(pow y 2)
Outputs
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* 3 (* x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* x y)
(*.f64 x y)
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(* 3 (pow y 2))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)
(pow y 2)
(*.f64 y y)

rewrite118.0ms (2.5%)

Memory
-7.9MiB live, 166.2MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 264×lower-*.f32
1 258×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01351
01851
13351
25451
37651
414851
544325
6225323
7228023
8240323
9363023
0861023
Stop Event
iter limit
node limit
iter limit
Counts
7 → 16
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
(*.f64 #s(literal 3 binary64) (*.f64 y x))
(*.f64 y x)
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
(*.f64 y y)
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) x)
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
#s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) x)
#s(literal 3 binary64)
#s(literal 1 binary64)
y

eval22.0ms (0.5%)

Memory
3.4MiB live, 45.2MiB allocated
Compiler

Compiled 1 234 to 23 computations (98.1% saved)

prune5.0ms (0.1%)

Memory
13.9MiB live, 13.9MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New1591160
Fresh000
Picked022
Done055
Total1598167
Accuracy
100.0%
Counts
167 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
28.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
4.9%
(*.f64 x #s(literal 3 binary64))
88.9%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
99.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Compiler

Compiled 67 to 43 computations (35.8% saved)

simplify7.0ms (0.1%)

Memory
-29.1MiB live, 10.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 3 binary64) y)
cost-diff0
(*.f64 x (*.f64 #s(literal 3 binary64) y))
cost-diff0
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
Rules
62×lower-*.f32
58×lower-*.f64
34×associate-*r*
20×associate-*l*
16×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0924
01124
11924
23624
35224
45224
05224
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
x
(*.f64 #s(literal 3 binary64) y)
#s(literal 3 binary64)
y
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
x
(*.f64 #s(literal 3 binary64) y)
#s(literal 3 binary64)
y

localize23.0ms (0.5%)

Memory
12.2MiB live, 50.7MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(*.f64 #s(literal 3 binary64) y)
accuracy99.7%
(*.f64 x (*.f64 #s(literal 3 binary64) y))
accuracy28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
Samples
15.0ms256×0valid
Compiler

Compiled 20 to 10 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
ival-mult: 9.0ms (99.2% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series1.0ms (0%)

Memory
3.9MiB live, 3.9MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))>
#<alt (*.f64 x (*.f64 #s(literal 3 binary64) y))>
#<alt (*.f64 #s(literal 3 binary64) y)>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
Calls

15 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(* 3 y)
0.0ms
y
@-inf
(* 3 y)
0.0ms
y
@0
(* 3 y)
0.0ms
x
@0
(* x (* 3 y))
0.0ms
y
@-inf
(* x (* 3 y))

simplify6.0ms (0.1%)

Memory
11.0MiB live, 11.0MiB allocated
Algorithm
egg-herbie
Rules
62×lower-*.f64
62×lower-*.f32
18×*-commutative
18×associate-*r*
18×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010324
119324
233324
340324
040324
Stop Event
iter limit
saturated
Counts
60 → 60
Calls
Call 1
Inputs
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x (pow y 2)))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 (* x y))
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
Outputs
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x (pow y 2)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 (* x y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
(* 3 y)
(*.f64 #s(literal 3 binary64) y)

rewrite103.0ms (2.2%)

Memory
1.2MiB live, 159.0MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 264×lower-*.f32
1 262×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0921
01123
11923
23823
36223
47823
515023
644111
7225011
8227611
9239911
10363211
0857711
Stop Event
iter limit
node limit
iter limit
Counts
3 → 6
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(*.f64 #s(literal 3 binary64) y)
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 #s(literal 3 binary64) x)
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
#s(literal 3 binary64)

eval7.0ms (0.1%)

Memory
-22.9MiB live, 15.6MiB allocated
Compiler

Compiled 474 to 14 computations (97% saved)

prune5.0ms (0.1%)

Memory
13.8MiB live, 13.8MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New66066
Fresh000
Picked011
Done077
Total66874
Accuracy
100.0%
Counts
74 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
28.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
4.9%
(*.f64 x #s(literal 3 binary64))
88.9%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
99.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
28.8%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Compiler

Compiled 120 to 61 computations (49.2% saved)

regimes19.0ms (0.4%)

Memory
-0.9MiB live, 40.3MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
(*.f64 x #s(literal 3 binary64))
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
Calls

4 calls:

9.0ms
x
3.0ms
(*.f64 x #s(literal 3 binary64))
3.0ms
y
3.0ms
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Results
AccuracySegmentsBranch
99.8%1x
99.8%1y
99.8%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
99.8%1(*.f64 x #s(literal 3 binary64))
Compiler

Compiled 20 to 14 computations (30% saved)

regimes10.0ms (0.2%)

Memory
-13.9MiB live, 24.8MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 x #s(literal 3 binary64))
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
Calls

4 calls:

2.0ms
(*.f64 x #s(literal 3 binary64))
2.0ms
x
2.0ms
y
2.0ms
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Results
AccuracySegmentsBranch
28.8%1x
28.8%1y
28.8%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
28.8%1(*.f64 x #s(literal 3 binary64))
Compiler

Compiled 20 to 14 computations (30% saved)

regimes7.0ms (0.1%)

Memory
22.5MiB live, 22.5MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 x #s(literal 3 binary64))
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Calls

4 calls:

2.0ms
(*.f64 x #s(literal 3 binary64))
2.0ms
x
2.0ms
y
1.0ms
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Results
AccuracySegmentsBranch
28.8%1y
28.8%1x
28.8%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
28.8%1(*.f64 x #s(literal 3 binary64))
Compiler

Compiled 20 to 14 computations (30% saved)

regimes7.0ms (0.1%)

Memory
-20.4MiB live, 18.7MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x #s(literal 3 binary64))
Outputs
(*.f64 x #s(literal 3 binary64))
Calls

4 calls:

2.0ms
y
1.0ms
(*.f64 x #s(literal 3 binary64))
1.0ms
x
1.0ms
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Results
AccuracySegmentsBranch
4.9%1y
4.9%1x
4.9%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
4.9%1(*.f64 x #s(literal 3 binary64))
Compiler

Compiled 20 to 14 computations (30% saved)

simplify7.0ms (0.1%)

Memory
19.9MiB live, 19.9MiB allocated
Algorithm
egg-herbie
Rules
14×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01744
12444
Stop Event
saturated
Calls
Call 1
Inputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
(*.f64 x #s(literal 3 binary64))
Outputs
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
(*.f64 x #s(literal 3 binary64))

soundness3.0s (62.4%)

Memory
-18.2MiB live, 267.1MiB allocated
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
2 096×lower-pow.f64
2 096×lower-pow.f32
2 096×lower-pow.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0101092
1181092
2331092
3441092
0441092
01351
01851
13351
25451
37651
414851
544325
6225323
7228023
8240323
9363023
0861023
0615
0921
11621
23321
35721
47321
514521
64339
722579
822839
924069
1036289
085819
010324
118324
233324
344324
044324
01567
02183
13783
25583
36983
48583
516183
646739
7235435
8238235
9250535
10372635
0872435
Stop Event
done
iter limit
node limit
iter limit
iter limit
saturated
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
saturated
Compiler

Compiled 71 to 40 computations (43.7% saved)

preprocess153.0ms (3.2%)

Memory
13.4MiB live, 88.9MiB allocated
Remove

(negabs x)

(abs y)

Compiler

Compiled 166 to 92 computations (44.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...