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

Time bar (total: 5.6s)

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)

sample1.5s (27.3%)

Memory
-45.9MiB live, 1 060.4MiB allocated
Samples
1.0s8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 361.0ms
ival-mult: 349.0ms (96.6% of total)
ival-true: 5.0ms (1.4% of total)
exact: 4.0ms (1.1% of total)
ival-assert: 3.0ms (0.8% of total)
Bogosity

preprocess239.0ms (4.3%)

Memory
-25.5MiB live, 53.2MiB allocated
Algorithm
egg-herbie
Rules
562×unsub-neg
218×associate-*r*
214×distribute-lft-in
188×distribute-lft-neg-in
136×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
15635
218735
355035
498335
5139235
6140635
7140635
8140935
067
097
1157
2297
3457
4497
0497
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
Outputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 x y))
Symmetry

(abs x)

(negabs y)

explain80.0ms (1.4%)

Memory
20.7MiB live, 102.9MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
260-0-(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
00-0-(*.f64 (*.f64 x #s(literal 3 binary64)) x)
00-0-y
00-0-#s(literal 3 binary64)
00-0-(*.f64 x #s(literal 3 binary64))
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
*.f64(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)n*o180
*.f64(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)n*u80
Confusion
Predicted +Predicted -
+260
-0230
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+2600
-00230
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0230
126
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.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.7% 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.5MiB live, 0.5MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

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

Compiled 9 to 6 computations (33.3% saved)

simplify18.0ms (0.3%)

Memory
-25.1MiB live, 13.8MiB 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)) x)
cost-diff0
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
Rules
62×lower-*.f32
56×lower-*.f64
32×associate-*r*
24×associate-*l*
14×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
0918
11518
22918
34518
44918
04918
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y
Outputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) (*.f64 x y))
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
(*.f64 x (*.f64 x #s(literal 3 binary64)))
(*.f64 x #s(literal 3 binary64))
x
#s(literal 3 binary64)
y

localize25.0ms (0.5%)

Memory
-3.0MiB live, 36.5MiB allocated
Localize:

Found 3 expressions of interest:

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

Compiled 20 to 8 computations (60% saved)

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

series5.0ms (0.1%)

Memory
8.4MiB live, 8.4MiB allocated
Counts
3 → 48
Calls
Call 1
Inputs
#<alt (*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)>
#<alt (*.f64 (*.f64 x #s(literal 3 binary64)) x)>
#<alt (*.f64 x #s(literal 3 binary64))>
Outputs
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<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

12 calls:

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

rewrite170.0ms (3%)

Memory
-12.5MiB live, 145.8MiB 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: 7 (0.0ms)

IterNodesCost
0615
0917
11517
22917
34717
45817
57417
614617
74445
822555
922815
1024045
1136205
085845
Stop Event
iter limit
node limit
iter limit
Counts
3 → 6
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
(*.f64 (*.f64 x #s(literal 3 binary64)) x)
(*.f64 x #s(literal 3 binary64))
Outputs
(*.f64 #s(literal 1 binary64) (*.f64 y #s(literal 3 binary64)))
(*.f64 (*.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 y #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
#s(literal 3 binary64)
#s(literal 3 binary64)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
09264
115264
227264
347264
448264
048264
Stop Event
iter limit
saturated
Counts
48 → 48
Calls
Call 1
Inputs
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 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 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(* 3 (pow x 2))
(*.f64 #s(literal 3 binary64) (*.f64 x 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)
(*.f64 #s(literal 3 binary64) x)

eval4.0ms (0.1%)

Memory
11.6MiB live, 11.6MiB allocated
Compiler

Compiled 362 to 18 computations (95% saved)

prune3.0ms (0.1%)

Memory
7.3MiB live, 7.3MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New50454
Fresh000
Picked011
Done000
Total50555
Accuracy
99.9%
Counts
55 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
90.5%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
90.5%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
29.6%
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
5.0%
(*.f64 y #s(literal 3 binary64))
99.7%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
Compiler

Compiled 39 to 27 computations (30.8% saved)

simplify36.0ms (0.6%)

Memory
-26.1MiB live, 15.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 x x))
cost-diff0
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
cost-diff0
(*.f64 #s(literal 3 binary64) x)
cost-diff0
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
cost-diff0
(*.f64 y #s(literal 3 binary64))
cost-diff0
(*.f64 x y)
cost-diff0
(*.f64 x (*.f64 x y))
cost-diff0
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
Rules
62×lower-*.f32
44×lower-*.f64
18×lift-*.f64
16×*-commutative
16×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01252
02152
13352
24452
04452
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
#s(literal 3 binary64)
(*.f64 x (*.f64 x y))
x
(*.f64 x y)
y
(*.f64 y #s(literal 3 binary64))
y
#s(literal 3 binary64)
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
(*.f64 #s(literal 3 binary64) x)
#s(literal 3 binary64)
x
y
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
(*.f64 #s(literal 3 binary64) (*.f64 x x))
#s(literal 3 binary64)
(*.f64 x x)
x
y
Outputs
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x x)))
#s(literal 3 binary64)
(*.f64 x (*.f64 x y))
(*.f64 y (*.f64 x x))
x
(*.f64 x y)
y
(*.f64 y #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
y
#s(literal 3 binary64)
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 #s(literal 3 binary64) x)
#s(literal 3 binary64)
x
y
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x x)))
(*.f64 #s(literal 3 binary64) (*.f64 x x))
#s(literal 3 binary64)
(*.f64 x x)
x
y

localize129.0ms (2.3%)

Memory
-8.6MiB live, 69.5MiB allocated
Localize:

Found 9 expressions of interest:

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

Compiled 54 to 14 computations (74.1% saved)

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

series6.0ms (0.1%)

Memory
13.3MiB live, 13.3MiB allocated
Counts
9 → 168
Calls
Call 1
Inputs
#<alt (*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))>
#<alt (*.f64 x (*.f64 x y))>
#<alt (*.f64 x y)>
#<alt (*.f64 y #s(literal 3 binary64))>
#<alt (*.f64 (*.f64 #s(literal 3 binary64) x) y)>
#<alt (*.f64 #s(literal 3 binary64) x)>
#<alt (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 x x))>
#<alt (*.f64 x x)>
Outputs
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) y)>
#<alt (* (pow x 2) 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 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 (* 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)>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (* (pow x 2) y))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (* 3 (pow x 2))>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
Calls

42 calls:

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

rewrite150.0ms (2.7%)

Memory
-7.2MiB live, 192.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 258×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01241
02147
13547
25347
36947
414147
543521
6225617
7228217
8240517
9361617
0857217
Stop Event
iter limit
node limit
iter limit
Counts
9 → 26
Calls
Call 1
Inputs
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(*.f64 x (*.f64 x y))
(*.f64 x y)
(*.f64 y #s(literal 3 binary64))
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
(*.f64 #s(literal 3 binary64) x)
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
(*.f64 #s(literal 3 binary64) (*.f64 x x))
(*.f64 x x)
Outputs
(*.f64 #s(literal 1 binary64) (*.f64 y #s(literal 3 binary64)))
(*.f64 y #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
(*.f64 (*.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))
y
(*.f64 #s(literal 1 binary64) y)
(*.f64 y #s(literal 1 binary64))
y
(*.f64 #s(literal 1 binary64) y)
(*.f64 y #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 y #s(literal 3 binary64)))
(*.f64 y #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
(*.f64 (*.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 y #s(literal 3 binary64)))
(*.f64 y #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
(*.f64 (*.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))
#s(literal 3 binary64)
(*.f64 #s(literal 1 binary64) (*.f64 y #s(literal 3 binary64)))
(*.f64 y #s(literal 3 binary64))
(*.f64 #s(literal 3 binary64) y)
(*.f64 (*.f64 y #s(literal 3 binary64)) #s(literal 1 binary64))
#s(literal 3 binary64)
#s(literal 1 binary64)
x

simplify10.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
012816
122816
232816
336816
036816
Stop Event
iter limit
saturated
Counts
168 → 168
Calls
Call 1
Inputs
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) y)
(* (pow x 2) 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 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 y)
(* 3 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)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 x)
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (* (pow x 2) y))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(* 3 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.f64 x y))
(* (pow x 2) y)
(*.f64 x (*.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)
(* x y)
(*.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)
(* 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)
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (* (pow x 2) y))
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(* 3 (pow x 2))
(*.f64 x (*.f64 #s(literal 3 binary64) x))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)

eval41.0ms (0.7%)

Memory
-26.4MiB live, 53.9MiB allocated
Compiler

Compiled 1 170 to 29 computations (97.5% saved)

prune4.0ms (0.1%)

Memory
9.5MiB live, 9.5MiB allocated
Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New1931194
Fresh000
Picked044
Done011
Total1936199
Accuracy
99.9%
Counts
199 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
90.5%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
90.5%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
29.6%
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
5.0%
(*.f64 y #s(literal 3 binary64))
99.7%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
29.6%
(*.f64 #s(literal 3 binary64) (*.f64 x y))
Compiler

Compiled 46 to 32 computations (30.4% saved)

simplify5.0ms (0.1%)

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

Found 2 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
0711
11111
21811
32011
02011
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 #s(literal 3 binary64) (*.f64 x y))
#s(literal 3 binary64)
(*.f64 x y)
x
y
Outputs
(*.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

localize33.0ms (0.6%)

Memory
6.1MiB live, 44.4MiB allocated
Localize:

Found 2 expressions of interest:

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

Compiled 13 to 7 computations (46.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
ival-mult: 21.0ms (95.7% 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.4MiB live, 2.5MiB allocated
Counts
2 → 48
Calls
Call 1
Inputs
#<alt (*.f64 #s(literal 3 binary64) (*.f64 x y))>
#<alt (*.f64 x 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 (* 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)>
Calls

12 calls:

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

rewrite11.0ms (0.2%)

Memory
-10.6MiB live, 28.3MiB allocated
Algorithm
batch-egg-rewrite
Rules
24×lower-*.f32
20×lower-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058
078
1118
2188
3208
0208
Stop Event
iter limit
saturated
iter limit
Counts
2 → 8
Calls
Call 1
Inputs
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 x y)
Outputs
(*.f64 #s(literal 3 binary64) (*.f64 x y))
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 x y) #s(literal 3 binary64))
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
(*.f64 x y)
(*.f64 y x)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
05192
19192
216192
318192
018192
Stop Event
iter limit
saturated
Counts
48 → 48
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))
(* 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)
Outputs
(* 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)

eval8.0ms (0.1%)

Memory
-29.0MiB live, 12.1MiB allocated
Compiler

Compiled 282 to 14 computations (95% saved)

prune3.0ms (0.1%)

Memory
8.0MiB live, 8.0MiB allocated
Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New55156
Fresh000
Picked011
Done055
Total55762
Accuracy
99.9%
Counts
62 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
90.5%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
90.5%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
29.6%
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
29.6%
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
5.0%
(*.f64 y #s(literal 3 binary64))
99.7%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
29.6%
(*.f64 #s(literal 3 binary64) (*.f64 x y))
Compiler

Compiled 53 to 37 computations (30.2% saved)

simplify5.0ms (0.1%)

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

Found 2 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
0711
11111
21811
32011
02011
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
(*.f64 #s(literal 3 binary64) y)
#s(literal 3 binary64)
y
x
Outputs
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(*.f64 #s(literal 3 binary64) y)
#s(literal 3 binary64)
y
x

localize16.0ms (0.3%)

Memory
-3.1MiB live, 34.7MiB allocated
Localize:

Found 2 expressions of interest:

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

Compiled 13 to 7 computations (46.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-mult: 5.0ms (101.6% 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
1.3MiB live, 1.3MiB allocated
Counts
2 → 36
Calls
Call 1
Inputs
#<alt (*.f64 (*.f64 #s(literal 3 binary64) y) x)>
#<alt (*.f64 #s(literal 3 binary64) 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) x)
0.0ms
y
@-inf
(* (* 3 y) x)
0.0ms
y
@0
(* (* 3 y) x)
0.0ms
x
@-inf
(* (* 3 y) x)
0.0ms
x
@inf
(* (* 3 y) x)

rewrite11.0ms (0.2%)

Memory
-18.6MiB live, 19.3MiB allocated
Algorithm
batch-egg-rewrite
Rules
24×lower-*.f32
20×lower-*.f64
10×*-commutative
associate-*r*
associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058
078
1118
2188
3208
0208
Stop Event
iter limit
saturated
iter limit
Counts
2 → 8
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
(*.f64 #s(literal 3 binary64) y)
Outputs
(*.f64 #s(literal 3 binary64) (*.f64 y x))
(*.f64 y (*.f64 #s(literal 3 binary64) x))
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
(*.f64 x (*.f64 #s(literal 3 binary64) y))
(*.f64 (*.f64 y x) #s(literal 3 binary64))
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
(*.f64 #s(literal 3 binary64) y)
(*.f64 y #s(literal 3 binary64))

simplify4.0ms (0.1%)

Memory
9.5MiB live, 9.5MiB allocated
Algorithm
egg-herbie
Rules
24×lower-*.f64
24×lower-*.f32
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
9.2MiB live, 9.2MiB allocated
Compiler

Compiled 222 to 16 computations (92.8% saved)

prune4.0ms (0.1%)

Memory
11.8MiB live, 11.8MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New44044
Fresh000
Picked011
Done066
Total44751
Accuracy
99.9%
Counts
51 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
90.5%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) x) y)
90.5%
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x x)) y)
29.6%
(*.f64 (*.f64 #s(literal 3 binary64) y) x)
29.6%
(*.f64 (*.f64 #s(literal 3 binary64) x) y)
5.0%
(*.f64 y #s(literal 3 binary64))
99.7%
(*.f64 #s(literal 3 binary64) (*.f64 x (*.f64 x y)))
29.6%
(*.f64 #s(literal 3 binary64) (*.f64 x y))
Compiler

Compiled 94 to 55 computations (41.5% saved)

regimes13.0ms (0.2%)

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

4 calls:

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

Compiled 22 to 15 computations (31.8% saved)

regimes14.0ms (0.2%)

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

4 calls:

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

Compiled 22 to 15 computations (31.8% saved)

regimes5.0ms (0.1%)

Memory
16.4MiB live, 16.4MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

4 calls:

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

Compiled 22 to 15 computations (31.8% saved)

simplify7.0ms (0.1%)

Memory
-23.6MiB live, 15.4MiB allocated
Algorithm
egg-herbie
Rules
10×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

soundness3.0s (52.7%)

Memory
2.2MiB live, 158.0MiB allocated
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
Iterations

Useful iterations: 7 (0.0ms)

IterNodesCost
0615
0917
11517
22917
34717
45817
57417
614617
74445
822555
922815
1024045
1136205
085845
09264
115264
227264
347264
448264
048264
01241
02147
13547
25347
36947
414147
543521
6225617
7228217
8240517
9361617
0857217
Stop Event
done
iter limit
node limit
iter limit
iter limit
saturated
iter limit
node limit
iter limit
Compiler

Compiled 35 to 20 computations (42.9% saved)

preprocess43.0ms (0.8%)

Memory
32.3MiB live, 108.3MiB allocated
Remove

(negabs y)

(abs x)

Compiler

Compiled 142 to 88 computations (38% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...