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

Time bar (total: 4.5s)

analyze0.0ms (0%)

Memory
0.5MiB live, 0.5MiB 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)

sample551.0ms (12.1%)

Memory
0.2MiB live, 1 075.0MiB allocated
Samples
389.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 189.0ms
ival-mult: 175.0ms (92.4% of total)
ival-true: 6.0ms (3.2% of total)
exact: 5.0ms (2.6% of total)
ival-assert: 3.0ms (1.6% of total)
Bogosity

preprocess84.0ms (1.9%)

Memory
3.8MiB live, 41.7MiB allocated
Algorithm
egg-herbie
Rules
622×unsub-neg
248×associate-*r*
198×distribute-lft-in
196×distribute-lft-neg-in
162×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01844
16542
220042
363142
498242
5143342
6145342
7145342
8145542
067
1137
2287
3457
4457
0457
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(* (* (* x 3) y) y)
Outputs
(* (* (* x 3) y) y)
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
Call 2
Inputs
(* (* (* x 3) y) y)
(* (* (* (neg x) 3) y) y)
(* (* (* x 3) (neg y)) (neg y))
(neg (* (* (* (neg x) 3) y) y))
(neg (* (* (* x 3) (neg y)) (neg y)))
(* (* (* y 3) x) x)
Outputs
(* (* (* x 3) y) y)
(* x (* y (* 3 y)))
(* (* (* (neg x) 3) y) y)
(* x (* y (* y -3)))
(* (* (* x 3) (neg y)) (neg y))
(* x (* y (* 3 y)))
(neg (* (* (* (neg x) 3) y) y))
(* x (* y (* 3 y)))
(neg (* (* (* x 3) (neg y)) (neg y)))
(* x (* y (* y -3)))
(* (* (* y 3) x) x)
(* x (* (* x 3) y))
Symmetry

(abs y)

(negabs x)

explain64.0ms (1.4%)

Memory
10.0MiB live, 127.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
22.0ms512×0valid
Compiler

Compiled 58 to 28 computations (51.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 9.0ms (91.5% 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.3MiB live, 0.3MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB 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
5.9MiB live, 5.9MiB 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×*-lowering-*.f32
62×*-lowering-*.f64
28×associate-*r*
22×*-commutative
16×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
11318
22818
34518
44518
04518
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* (* (* x 3) y) y)
(* (* x 3) y)
(* x 3)
x
3
y
Outputs
(* (* (* x 3) y) y)
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
(* (* x 3) y)
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(* x 3)
(*.f64 x #s(literal 3 binary64))
x
3
#s(literal 3 binary64)
y

localize23.0ms (0.5%)

Memory
-1.2MiB live, 36.4MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 20 to 8 computations (60% saved)

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

series9.0ms (0.2%)

Memory
-21.6MiB live, 15.8MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#<alt (* (* (* x 3) y) y)>
#<alt (* (* x 3) y)>
#<alt (* x 3)>
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
2.0ms
x
@-inf
(* x 3)
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
@inf
(* (* (* x 3) y) y)

rewrite129.0ms (2.8%)

Memory
16.9MiB live, 185.9MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×pow-lowering-pow.f64
2 096×pow-lowering-pow.f32
1 412×prod-exp
1 264×*-lowering-*.f32
1 264×*-lowering-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
0621
11321
23021
35421
47021
514221
64409
722359
822609
923839
1036099
086009
Stop Event
iter limit
node limit
Counts
3 → 12
Calls
Call 1
Inputs
(* (* (* x 3) y) y)
(* (* x 3) y)
(* x 3)
Outputs
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))

simplify10.0ms (0.2%)

Memory
-13.0MiB live, 25.6MiB allocated
Algorithm
egg-herbie
Rules
62×*-lowering-*.f32
62×*-lowering-*.f64
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)

eval6.0ms (0.1%)

Memory
15.9MiB live, 15.9MiB allocated
Compiler

Compiled 494 to 21 computations (95.7% saved)

prune7.0ms (0.2%)

Memory
-31.3MiB live, 12.6MiB 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)
31.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x y)) y)
4.9%
(*.f64 x #s(literal 3 binary64))
99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
Compiler

Compiled 39 to 27 computations (30.8% saved)

simplify5.0ms (0.1%)

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

Found 9 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
(*.f64 (*.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)))
Rules
62×*-lowering-*.f32
62×*-lowering-*.f64
30×associate-*r*
24×associate-*l*
16×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01052
12352
23952
34852
44852
04852
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* 3 (* y (* x y)))
3
(* y (* x y))
y
(* x y)
x
(* x 3)
x
3
(* (* 3 (* x y)) y)
(* 3 (* x y))
3
(* x y)
x
y
(* (* x 3) y)
(* x 3)
x
3
y
Outputs
(* 3 (* y (* x y)))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
3
#s(literal 3 binary64)
(* y (* x y))
(*.f64 x (*.f64 y y))
y
(* x y)
(*.f64 y x)
x
(* x 3)
(*.f64 #s(literal 3 binary64) x)
x
3
#s(literal 3 binary64)
(* (* 3 (* x y)) y)
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
(* 3 (* x y))
(*.f64 #s(literal 3 binary64) (*.f64 y x))
3
#s(literal 3 binary64)
(* x y)
(*.f64 y x)
x
y
(* (* x 3) y)
(*.f64 #s(literal 3 binary64) (*.f64 y x))
(* x 3)
(*.f64 #s(literal 3 binary64) x)
x
3
#s(literal 3 binary64)
y

localize36.0ms (0.8%)

Memory
11.0MiB live, 87.4MiB allocated
Localize:

Found 9 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)
accuracy99.8%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x y)) y)
accuracy99.7%
(*.f64 #s(literal 3 binary64) (*.f64 x y))
accuracy100.0%
(*.f64 x #s(literal 3 binary64))
accuracy100.0%
(*.f64 x y)
accuracy99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
accuracy99.8%
(*.f64 y (*.f64 x y))
Samples
21.0ms256×0valid
Compiler

Compiled 54 to 12 computations (77.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 10.0ms (96.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
5.8MiB live, 5.8MiB allocated
Counts
7 → 156
Calls
Call 1
Inputs
#<alt (* 3 (* y (* x y)))>
#<alt (* y (* x y))>
#<alt (* x y)>
#<alt (* x 3)>
#<alt (* (* 3 (* x y)) y)>
#<alt (* 3 (* x y))>
#<alt (* (* x 3) 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 (* 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))>
Calls

39 calls:

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

rewrite104.0ms (2.3%)

Memory
18.0MiB live, 172.1MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×pow-lowering-pow.f64
2 096×pow-lowering-pow.f32
1 412×prod-exp
1 264×*-lowering-*.f32
1 264×*-lowering-*.f64
Iterations

Useful iterations: 8 (0.0ms)

IterNodesCost
01045
12345
23945
35045
45745
57345
614545
744021
8224117
9226617
10238917
11360117
0852717
Stop Event
iter limit
node limit
Counts
7 → 26
Calls
Call 1
Inputs
(* 3 (* y (* x y)))
(* y (* x y))
(* x y)
(* x 3)
(* (* 3 (* x y)) y)
(* 3 (* x y))
(* (* x 3) y)
Outputs
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 #s(literal 3 binary64) x) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
(*.f64 x #s(literal 3 binary64))

simplify29.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
010804
118804
233804
344804
044804
Stop Event
iter limit
saturated
Counts
156 → 156
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)))
(* 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))
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)))
(* 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))

eval22.0ms (0.5%)

Memory
-7.8MiB live, 62.5MiB allocated
Compiler

Compiled 1 389 to 34 computations (97.6% saved)

prune5.0ms (0.1%)

Memory
16.6MiB live, 16.6MiB allocated
Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New2223225
Fresh000
Picked044
Done011
Total2228230
Accuracy
100.0%
Counts
230 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
31.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x y)) y)
86.7%
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
4.9%
(*.f64 x #s(literal 3 binary64))
99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
31.8%
(*.f64 #s(literal 3 binary64) (*.f64 y x))
86.8%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
Compiler

Compiled 64 to 44 computations (31.3% saved)

simplify5.0ms (0.1%)

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

Found 8 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
(*.f64 y x)
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 y x))
cost-diff0
(*.f64 y y)
cost-diff0
(*.f64 x (*.f64 y y))
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
Rules
62×*-lowering-*.f32
62×*-lowering-*.f64
20×*-commutative
20×associate-*r*
18×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01047
12547
24247
34347
04347
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* 3 (* x (* y y)))
3
(* x (* y y))
x
(* y y)
y
(* 3 (* y x))
3
(* y x)
y
x
(* x (* 3 (* y y)))
x
(* 3 (* y y))
3
(* y y)
y
Outputs
(* 3 (* x (* y y)))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
3
#s(literal 3 binary64)
(* x (* y y))
(*.f64 x (*.f64 y y))
x
(* y y)
(*.f64 y y)
y
(* 3 (* y x))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
3
#s(literal 3 binary64)
(* y x)
(*.f64 x y)
y
x
(* x (* 3 (* y y)))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
x
(* 3 (* y y))
(*.f64 #s(literal 3 binary64) (*.f64 y y))
3
#s(literal 3 binary64)
(* y y)
(*.f64 y y)
y

localize48.0ms (1.1%)

Memory
-51.2MiB live, 87.7MiB allocated
Localize:

Found 8 expressions of interest:

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

Compiled 49 to 12 computations (75.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 10.0ms (98.3% 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
4.8MiB live, 4.8MiB allocated
Counts
7 → 144
Calls
Call 1
Inputs
#<alt (* 3 (* x (* y y)))>
#<alt (* x (* y y))>
#<alt (* y y)>
#<alt (* 3 (* y x))>
#<alt (* y x)>
#<alt (* x (* 3 (* y y)))>
#<alt (* 3 (* 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 (* 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 (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 (* 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 (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))>
Calls

36 calls:

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

rewrite143.0ms (3.2%)

Memory
1.7MiB live, 160.4MiB allocated
Algorithm
batch-egg-rewrite
Rules
2 096×pow-lowering-pow.f64
2 096×pow-lowering-pow.f32
1 412×prod-exp
1 264×*-lowering-*.f32
1 264×*-lowering-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01039
12739
25139
36839
414039
543817
6222413
7224913
8237213
9356713
0853013
Stop Event
iter limit
node limit
Counts
7 → 21
Calls
Call 1
Inputs
(* 3 (* x (* y y)))
(* x (* y y))
(* y y)
(* 3 (* y x))
(* y x)
(* x (* 3 (* y y)))
(* 3 (* y y))
Outputs
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
#s(literal 1 binary64)
y
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
x
(*.f64 #s(literal 1 binary64) x)
(*.f64 x #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
(*.f64 (*.f64 x #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 3 binary64) x)
#s(literal 3 binary64)

simplify15.0ms (0.3%)

Memory
4.0MiB live, 43.1MiB allocated
Algorithm
egg-herbie
Rules
62×*-lowering-*.f32
62×*-lowering-*.f64
22×associate-*r*
20×*-commutative
20×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010744
119744
235744
345744
045744
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)))
(* 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))
(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)
(* 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 (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))
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)))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x y))
(* x (pow y 2))
(*.f64 y (*.f64 x 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)
(* 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 (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))

eval15.0ms (0.3%)

Memory
1.5MiB live, 39.8MiB allocated
Compiler

Compiled 1 095 to 25 computations (97.7% saved)

prune4.0ms (0.1%)

Memory
11.4MiB live, 11.4MiB allocated
Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New1781179
Fresh000
Picked033
Done055
Total1789187
Accuracy
100.0%
Counts
187 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
31.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x y)) y)
86.7%
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
32.2%
(*.f64 x (*.f64 #s(literal 3 binary64) y))
4.9%
(*.f64 x #s(literal 3 binary64))
99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
31.8%
(*.f64 #s(literal 3 binary64) (*.f64 y x))
86.8%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
Compiler

Compiled 71 to 49 computations (31% saved)

simplify4.0ms (0.1%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 3 binary64) y)
cost-diff0
(*.f64 x (*.f64 #s(literal 3 binary64) y))
Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
1911
21611
31811
01811
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(* x (* 3 y))
x
(* 3 y)
3
y
Outputs
(* x (* 3 y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
x
(* 3 y)
(*.f64 #s(literal 3 binary64) y)
3
#s(literal 3 binary64)
y

localize17.0ms (0.4%)

Memory
-7.6MiB live, 34.0MiB allocated
Localize:

Found 2 expressions of interest:

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

Compiled 13 to 7 computations (46.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 4.0ms
ival-mult: 3.0ms (79.4% 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
2.3MiB live, 2.3MiB allocated
Counts
2 → 36
Calls
Call 1
Inputs
#<alt (* x (* 3 y))>
#<alt (* 3 y)>
Outputs
#<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

9 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))

rewrite10.0ms (0.2%)

Memory
-22.5MiB live, 16.3MiB allocated
Algorithm
batch-egg-rewrite
Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058
198
2168
3188
0188
Stop Event
iter limit
saturated
Counts
2 → 8
Calls
Call 1
Inputs
(* x (* 3 y))
(* 3 y)
Outputs
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 y (*.f64 x #s(literal 3 binary64)))
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 (*.f64 x y) #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
(*.f64 y #s(literal 3 binary64))

simplify5.0ms (0.1%)

Memory
12.8MiB live, 12.8MiB allocated
Algorithm
egg-herbie
Rules
24×*-lowering-*.f32
24×*-lowering-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06156
111156
216156
016156
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(* 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 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 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)

eval4.0ms (0.1%)

Memory
12.5MiB live, 12.5MiB allocated
Compiler

Compiled 222 to 14 computations (93.7% saved)

prune6.0ms (0.1%)

Memory
-24.9MiB live, 14.0MiB allocated
Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New44044
Fresh000
Picked011
Done088
Total44953
Accuracy
100.0%
Counts
53 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.7%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
31.8%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x y)) y)
86.7%
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
32.2%
(*.f64 x (*.f64 #s(literal 3 binary64) y))
4.9%
(*.f64 x #s(literal 3 binary64))
99.8%
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
31.8%
(*.f64 #s(literal 3 binary64) (*.f64 y x))
86.8%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
Compiler

Compiled 126 to 69 computations (45.2% saved)

regimes17.0ms (0.4%)

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

4 calls:

7.0ms
x
4.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
25.2MiB live, 25.2MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 x #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) (*.f64 y x))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
Outputs
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 y y)))
Calls

4 calls:

3.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
86.8%1x
86.8%1y
86.8%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
86.8%1(*.f64 x #s(literal 3 binary64))
Compiler

Compiled 20 to 14 computations (30% saved)

regimes12.0ms (0.3%)

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

4 calls:

5.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
32.2%1x
32.2%1y
32.2%1(*.f64 x #s(literal 3 binary64))
32.2%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
Compiler

Compiled 20 to 14 computations (30% saved)

regimes7.0ms (0.1%)

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

4 calls:

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

Compiled 20 to 14 computations (30% saved)

regimes6.0ms (0.1%)

Memory
-19.9MiB live, 19.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%1x
4.9%1(*.f64 x #s(literal 3 binary64))
4.9%1(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
4.9%1y
Compiler

Compiled 20 to 14 computations (30% saved)

simplify8.0ms (0.2%)

Memory
20.7MiB live, 20.7MiB allocated
Algorithm
egg-herbie
Rules
18×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

soundness3.0s (67.2%)

Memory
-38.9MiB live, 282.8MiB allocated
Rules
2 096×pow-lowering-pow.f64
2 096×pow-lowering-pow.f32
2 096×pow-lowering-pow.f64
2 096×pow-lowering-pow.f32
2 096×pow-lowering-pow.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01045
12345
23945
35045
45745
57345
614545
744021
8224117
9226617
10238917
11360117
0852717
010804
118804
233804
344804
044804
010324
118324
233324
344324
044324
01039
12739
25139
36839
414039
543817
6222413
7224913
8237213
9356713
0853013
0621
11321
23021
35421
47021
514221
64409
722359
822609
923839
1036099
086009
Stop Event
done
iter limit
node limit
iter limit
node limit
iter limit
saturated
iter limit
saturated
iter limit
node limit
Compiler

Compiled 90 to 54 computations (40% saved)

preprocess59.0ms (1.3%)

Memory
27.9MiB live, 184.7MiB allocated
Remove

(negabs x)

(abs y)

Compiler

Compiled 202 to 122 computations (39.6% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...