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

Time bar (total: 4.6s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze0.0ms (0%)

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

sample810.0ms (17.5%)

Memory
-94.6MiB live, 884.4MiB allocated
Samples
608.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 459.0ms
ival-mult: 446.0ms (97.1% of total)
ival-true: 5.0ms (1.1% of total)
exact: 5.0ms (1.1% of total)
ival-assert: 3.0ms (0.7% of total)
Bogosity

explain115.0ms (2.5%)

Memory
-17.7MiB live, 65.1MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-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
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
*.f64(*.f64 (*.f64 x #s(literal 3 binary64)) y)n*o10
Confusion
Predicted +Predicted -
+10
-0255
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-00255
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0255
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
46.0ms512×0valid
Compiler

Compiled 49 to 22 computations (55.1% saved)

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

preprocess78.0ms (1.7%)

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

Useful iterations: 0 (0.0ms)

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

(abs y)

(negabs x)

Compiler

Compiled 9 to 6 computations (33.3% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

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

Compiled 9 to 6 computations (33.3% saved)

simplify5.0ms (0.1%)

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

Found 3 expressions of interest:

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

Useful iterations: 0 (0.0ms)

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

localize37.0ms (0.8%)

Memory
-7.8MiB live, 29.5MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x #s(literal 3 binary64))
accuracy0.10546875
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
accuracy0.39588409220086385
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
Samples
30.0ms256×0valid
Compiler

Compiled 20 to 8 computations (60% saved)

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

series7.0ms (0.2%)

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

15 calls:

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

simplify9.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

rewrite101.0ms (2.2%)

Memory
23.6MiB live, 134.9MiB allocated
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 264×lower-*.f32
1 260×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

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

eval6.0ms (0.1%)

Memory
18.9MiB live, 18.9MiB allocated
Compiler

Compiled 554 to 21 computations (96.2% saved)

prune7.0ms (0.2%)

Memory
-22.6MiB live, 10.0MiB 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.3%
(*.f64 (*.f64 (*.f64 x #s(literal 3 binary64)) y) y)
30.5%
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
99.7%
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
5.0%
(*.f64 x #s(literal 3 binary64))
99.7%
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
Compiler

Compiled 41 to 27 computations (34.1% saved)

simplify5.0ms (0.1%)

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

Found 11 expressions of interest:

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

Useful iterations: 0 (0.0ms)

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

localize63.0ms (1.4%)

Memory
-21.4MiB live, 105.4MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x #s(literal 3 binary64))
accuracy0.39588409220086385
(*.f64 (*.f64 x #s(literal 3 binary64)) y)
accuracy0
(*.f64 x y)
accuracy0
#s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))
accuracy0.10546875
(*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)
accuracy0.27734375
(*.f64 #s(literal 3 binary64) (*.f64 x y))
accuracy0
(*.f64 x #s(literal 3 binary64))
accuracy0
(*.f64 x y)
accuracy0
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))
accuracy0.10546875
(*.f64 y (*.f64 x y))
accuracy0.18359375
(*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))
Samples
27.0ms256×0valid
Compiler

Compiled 66 to 12 computations (81.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 10.0ms (96.9% 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
6.2MiB live, 6.2MiB allocated
Counts
9 → 204
Calls
Call 1
Inputs
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y))))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 y (*.f64 x y)))>
#<alt (*.f64 y (*.f64 x y))>
#<alt (*.f64 x y)>
#<alt (*.f64 x #s(literal 3 binary64))>
#<alt (*.f64 #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y))) y)>
#<alt #s(approx (* (* x 3) y) (*.f64 #s(literal 3 binary64) (*.f64 x y)))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 x y))>
#<alt (*.f64 (*.f64 x #s(literal 3 binary64)) y)>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x (pow y 2))>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 x)>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
Calls

51 calls:

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

simplify11.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

rewrite130.0ms (2.8%)

Memory
-15.5MiB live, 76.6MiB allocated
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 268×lower-*.f32
1 256×lower-*.f64
Iterations

Useful iterations: 7 (0.0ms)

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

eval60.0ms (1.3%)

Memory
9.7MiB live, 45.7MiB allocated
Compiler

Compiled 2 140 to 34 computations (98.4% saved)

prune11.0ms (0.2%)

Memory
-10.6MiB live, 25.2MiB allocated
Pruning

7 alts after pruning (2 fresh and 5 done)

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

Compiled 59 to 38 computations (35.6% saved)

simplify6.0ms (0.1%)

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

Found 7 expressions of interest:

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

Useful iterations: 0 (0.0ms)

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

localize40.0ms (0.9%)

Memory
-14.2MiB live, 68.8MiB allocated
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 y y)
accuracy0
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))
accuracy0.1484375
(*.f64 #s(literal 3 binary64) (*.f64 y y))
accuracy8.047827407312871
(*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))
accuracy0
(*.f64 y x)
accuracy0.27734375
(*.f64 #s(literal 3 binary64) (*.f64 y x))
accuracy44.48501187790491
#s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))
Samples
28.0ms256×0valid
Compiler

Compiled 45 to 13 computations (71.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-mult: 12.0ms (100.2% 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
6.3MiB live, 6.3MiB allocated
Counts
7 → 144
Calls
Call 1
Inputs
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 #s(literal 3 binary64) (*.f64 y x)))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 y x))>
#<alt (*.f64 y x)>
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y))))>
#<alt (*.f64 x (*.f64 #s(literal 3 binary64) (*.f64 y y)))>
#<alt (*.f64 #s(literal 3 binary64) (*.f64 y y))>
#<alt (*.f64 y y)>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* x y)>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (* 3 (pow y 2))>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
#<alt (pow y 2)>
Calls

36 calls:

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

simplify8.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

rewrite112.0ms (2.4%)

Memory
-4.5MiB live, 180.6MiB allocated
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 264×lower-*.f32
1 258×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

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

eval15.0ms (0.3%)

Memory
4.2MiB live, 39.7MiB allocated
Compiler

Compiled 1 234 to 23 computations (98.1% saved)

prune5.0ms (0.1%)

Memory
15.3MiB live, 15.3MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

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

Compiled 67 to 43 computations (35.8% saved)

simplify8.0ms (0.2%)

Memory
-19.1MiB live, 16.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

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

Useful iterations: 0 (0.0ms)

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

localize27.0ms (0.6%)

Memory
12.7MiB live, 60.1MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 #s(literal 3 binary64) y)
accuracy0.20703125
(*.f64 x (*.f64 #s(literal 3 binary64) y))
accuracy44.48501187790491
#s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))
Samples
20.0ms256×0valid
Compiler

Compiled 20 to 10 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 14.0ms
ival-mult: 14.0ms (100% 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
4.3MiB live, 4.3MiB allocated
Counts
3 → 60
Calls
Call 1
Inputs
#<alt #s(approx (* (* (* x 3) y) y) (*.f64 x (*.f64 #s(literal 3 binary64) y)))>
#<alt (*.f64 x (*.f64 #s(literal 3 binary64) y))>
#<alt (*.f64 #s(literal 3 binary64) y)>
Outputs
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x (pow y 2)))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 (* x y))>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
#<alt (* 3 y)>
Calls

15 calls:

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

simplify7.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

rewrite107.0ms (2.3%)

Memory
-8.7MiB live, 129.1MiB allocated
Rules
2 096×lower-pow.f64
2 096×lower-pow.f32
1 412×prod-exp
1 264×lower-*.f32
1 262×lower-*.f64
Iterations

Useful iterations: 6 (0.0ms)

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

eval7.0ms (0.2%)

Memory
18.3MiB live, 18.3MiB allocated
Compiler

Compiled 474 to 14 computations (97% saved)

prune5.0ms (0.1%)

Memory
-18.9MiB live, 18.7MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

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

Compiled 120 to 61 computations (49.2% saved)

regimes14.0ms (0.3%)

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

4 calls:

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

Compiled 20 to 14 computations (30% saved)

regimes13.0ms (0.3%)

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

4 calls:

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

Compiled 20 to 14 computations (30% saved)

regimes15.0ms (0.3%)

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

4 calls:

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

Compiled 20 to 14 computations (30% saved)

regimes6.0ms (0.1%)

Memory
18.7MiB live, 18.7MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

4 calls:

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

Compiled 20 to 14 computations (30% saved)

simplify6.0ms (0.1%)

Memory
18.7MiB live, 18.7MiB allocated
Algorithm
egg-herbie
Rules
12×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

soundness2.7s (58.3%)

Memory
-30.5MiB live, 168.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: 6 (0.0ms)

IterNodesCost
010324
118324
233324
344324
044324
0615
0921
11621
23321
35721
47321
514521
64339
722579
822839
924069
1036289
085819
01567
02183
13783
25583
36983
48583
516183
646739
7235435
8238235
9250535
10372635
0872435
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
saturated
Compiler

Compiled 54 to 27 computations (50% saved)

preprocess60.0ms (1.3%)

Memory
15.6MiB live, 171.4MiB allocated
Remove

(negabs x)

(abs y)

Compiler

Compiled 210 to 114 computations (45.7% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...