FastMath repmul

Time bar (total: 10.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

Compiled 9 to 6 computations (33.3% saved)

sample667.0ms (6.6%)

Memory
22.4MiB live, 767.8MiB allocated
Samples
440.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 205.0ms
ival-mult: 198.0ms (96.4% of total)
ival-true: 5.0ms (2.4% of total)
ival-assert: 3.0ms (1.5% of total)
Bogosity

explain88.0ms (0.9%)

Memory
11.1MiB live, 130.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-d1
00-0-(*.f64 (*.f64 d1 d1) d1)
00-0-(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
00-0-(*.f64 d1 d1)
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
50.0ms512×0valid
Compiler

Compiled 44 to 16 computations (63.6% saved)

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

preprocess19.0ms (0.2%)

Memory
4.5MiB live, 40.9MiB allocated
Algorithm
egg-herbie
Rules
46×associate-*r*
36×distribute-lft-neg-in
24×unsub-neg
24×distribute-lft-neg-out
20×distribute-lft-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0615
12813
21049
32017
42317
52437
047
077
1105
2123
3163
4183
0183
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
Symmetry

(abs d1)

Compiler

Compiled 8 to 4 computations (50% saved)

eval0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 8 to 4 computations (50% saved)

simplify6.0ms (0.1%)

Memory
-28.4MiB live, 7.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 d1 d1)
cost-diff0
(*.f64 (*.f64 d1 d1) d1)
cost-diff0
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Rules
12×lower-*.f32
lower-*.f64
lift-*.f64
lower-pow.f64
lower-pow.f32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0416
0716
11012
21210
31610
41810
01810
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 d1)
d1
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 (*.f64 d1 d1))
(*.f64 d1 d1)
d1

localize16.0ms (0.2%)

Memory
4.1MiB live, 42.6MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 d1 d1)
accuracy0.0546875
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
accuracy0.1015625
(*.f64 (*.f64 d1 d1) d1)
Samples
10.0ms256×0valid
Compiler

Compiled 18 to 6 computations (66.7% saved)

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

series3.0ms (0%)

Memory
8.8MiB live, 8.8MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())
#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())
Outputs
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) (patch (*.f64 (*.f64 (*.f64 d1 d1) d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
Calls

9 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(* (* (* d1 d1) d1) d1)
0.0ms
d1
@-inf
(* (* d1 d1) d1)
0.0ms
d1
@inf
(* (* (* d1 d1) d1) d1)
0.0ms
d1
@0
(* (* d1 d1) d1)
0.0ms
d1
@inf
(* (* d1 d1) d1)

simplify4.0ms (0%)

Memory
13.2MiB live, 13.2MiB allocated
Algorithm
egg-herbie
Rules
lower-*.f64
lower-pow.f64
lower-*.f32
lower-pow.f32
cube-mult
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07108
110108
212108
314108
014108
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
Outputs
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)

rewrite93.0ms (0.9%)

Memory
-14.3MiB live, 147.7MiB allocated
Rules
560×lower-*.f32
554×lower-*.f64
398×lower-fma.f64
398×lower-fma.f32
190×lower-pow.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0415
0711
1149
2349
3779
42549
010339
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
3 → 85
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 d1)
Outputs
(exp.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))
(exp.f64 (fma.f64 #s(literal 3/2 binary64) (log.f64 d1) (*.f64 (log.f64 d1) #s(literal 5/2 binary64))))
(exp.f64 (fma.f64 (log.f64 d1) #s(literal 5/2 binary64) (*.f64 #s(literal 3/2 binary64) (log.f64 d1))))
(pow.f64 d1 #s(literal 4 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 d1))) #s(literal 1 binary64))
(pow.f64 (sqrt.f64 d1) #s(literal 8 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (*.f64 #s(literal 2 binary64) (log.f64 d1)))
(pow.f64 (*.f64 (exp.f64 #s(literal 2 binary64)) (exp.f64 #s(literal 2 binary64))) (log.f64 d1))
(pow.f64 (exp.f64 #s(literal 4 binary64)) (log.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 (*.f64 d1 d1)) d1)
(*.f64 (*.f64 d1 (sqrt.f64 d1)) (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
(*.f64 (*.f64 d1 (sqrt.f64 d1)) (pow.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #s(literal 1 binary64)))
(*.f64 (sqrt.f64 d1) (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))))
(*.f64 (sqrt.f64 d1) (pow.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #s(literal 1 binary64)))
(*.f64 (pow.f64 d1 #s(literal 3/4 binary64)) (pow.f64 d1 #s(literal 13/4 binary64)))
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 (sqrt.f64 (sqrt.f64 d1)) (*.f64 (sqrt.f64 (sqrt.f64 d1)) (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))))
(*.f64 (pow.f64 d1 #s(literal 3/8 binary64)) (*.f64 (pow.f64 d1 #s(literal 3/8 binary64)) (pow.f64 d1 #s(literal 13/4 binary64))))
(*.f64 (pow.f64 d1 #s(literal 5/4 binary64)) (*.f64 (pow.f64 d1 #s(literal 5/4 binary64)) (*.f64 d1 (sqrt.f64 d1))))
(*.f64 (pow.f64 d1 #s(literal 7/4 binary64)) (pow.f64 d1 #s(literal 9/4 binary64)))
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
(*.f64 (pow.f64 d1 #s(literal 13/4 binary64)) (pow.f64 d1 #s(literal 3/4 binary64)))
(*.f64 (pow.f64 d1 #s(literal 9/4 binary64)) (pow.f64 d1 #s(literal 7/4 binary64)))
(*.f64 (pow.f64 (pow.f64 d1 #s(literal 3/4 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 d1 #s(literal 13/4 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #s(literal 1 binary64)) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 (pow.f64 (pow.f64 d1 #s(literal 13/4 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 d1 #s(literal 3/4 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #s(literal 1 binary64)) (sqrt.f64 d1))
(*.f64 (*.f64 (*.f64 d1 (sqrt.f64 d1)) (pow.f64 d1 #s(literal 5/4 binary64))) (pow.f64 d1 #s(literal 5/4 binary64)))
(*.f64 (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 (sqrt.f64 d1))) (sqrt.f64 (sqrt.f64 d1)))
(*.f64 (*.f64 (pow.f64 d1 #s(literal 13/4 binary64)) (pow.f64 d1 #s(literal 3/8 binary64))) (pow.f64 d1 #s(literal 3/8 binary64)))
(exp.f64 (*.f64 #s(literal 3 binary64) (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 (exp.f64 #s(literal 3 binary64))) (log.f64 d1)))
(pow.f64 d1 #s(literal 3 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 3/2 binary64))
(pow.f64 (*.f64 d1 (*.f64 d1 d1)) #s(literal 1 binary64))
(pow.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 d1))) #s(literal 3/4 binary64))
(pow.f64 (*.f64 d1 (sqrt.f64 d1)) #s(literal 2 binary64))
(pow.f64 (sqrt.f64 d1) #s(literal 6 binary64))
(pow.f64 (pow.f64 d1 #s(literal 3/4 binary64)) #s(literal 4 binary64))
(pow.f64 (exp.f64 #s(literal 3 binary64)) (log.f64 d1))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (*.f64 #s(literal 3/2 binary64) (log.f64 d1)))
(pow.f64 (pow.f64 (exp.f64 #s(literal 3 binary64)) #s(literal 1 binary64)) (log.f64 d1))
(*.f64 d1 (*.f64 d1 d1))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 d1 (sqrt.f64 d1)) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 (sqrt.f64 d1) (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
(*.f64 (sqrt.f64 d1) (pow.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #s(literal 1 binary64)))
(*.f64 (pow.f64 d1 #s(literal 3/4 binary64)) (pow.f64 d1 #s(literal 9/4 binary64)))
(*.f64 (pow.f64 d1 #s(literal 3/4 binary64)) (pow.f64 (*.f64 d1 (sqrt.f64 d1)) #s(literal 3/2 binary64)))
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (sqrt.f64 d1))
(*.f64 (sqrt.f64 (sqrt.f64 d1)) (*.f64 (sqrt.f64 (sqrt.f64 d1)) (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))))
(*.f64 (pow.f64 d1 #s(literal 3/8 binary64)) (*.f64 (pow.f64 d1 #s(literal 3/8 binary64)) (pow.f64 d1 #s(literal 9/4 binary64))))
(*.f64 (pow.f64 d1 #s(literal 9/4 binary64)) (pow.f64 d1 #s(literal 3/4 binary64)))
(*.f64 (pow.f64 (exp.f64 #s(literal 3 binary64)) (*.f64 (log.f64 d1) #s(literal 1/2 binary64))) (pow.f64 (exp.f64 #s(literal 3 binary64)) (*.f64 (log.f64 d1) #s(literal 1/2 binary64))))
(*.f64 (pow.f64 (*.f64 d1 (sqrt.f64 d1)) #s(literal 3/2 binary64)) (pow.f64 d1 #s(literal 3/4 binary64)))
(*.f64 (pow.f64 (pow.f64 d1 #s(literal 3/4 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 d1 #s(literal 9/4 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (pow.f64 d1 #s(literal 9/4 binary64)) #s(literal 1 binary64)) (pow.f64 (pow.f64 d1 #s(literal 3/4 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #s(literal 1 binary64)) (sqrt.f64 d1))
(*.f64 (pow.f64 (exp.f64 #s(literal 3 binary64)) (/.f64 (log.f64 d1) #s(literal 2 binary64))) (pow.f64 (exp.f64 #s(literal 3 binary64)) (/.f64 (log.f64 d1) #s(literal 2 binary64))))
(*.f64 (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (sqrt.f64 (sqrt.f64 d1))) (sqrt.f64 (sqrt.f64 d1)))
(*.f64 (*.f64 (pow.f64 d1 #s(literal 9/4 binary64)) (pow.f64 d1 #s(literal 3/8 binary64))) (pow.f64 d1 #s(literal 3/8 binary64)))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 (exp.f64 #s(literal 2 binary64))) (log.f64 d1)))
(exp.f64 (*.f64 (*.f64 (log.f64 d1) #s(literal 1/2 binary64)) #s(literal 4 binary64)))
(pow.f64 d1 #s(literal 2 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 1 binary64))
(pow.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 d1))) #s(literal 1/2 binary64))
(pow.f64 (sqrt.f64 d1) #s(literal 4 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 d1))
(pow.f64 (pow.f64 (exp.f64 #s(literal 2 binary64)) #s(literal 1 binary64)) (log.f64 d1))
(pow.f64 (exp.f64 #s(literal 1 binary64)) (*.f64 #s(literal 2 binary64) (log.f64 d1)))
(*.f64 d1 d1)
(*.f64 (*.f64 d1 (sqrt.f64 d1)) (sqrt.f64 d1))
(*.f64 (sqrt.f64 d1) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 (pow.f64 d1 #s(literal 3/4 binary64)) (pow.f64 d1 #s(literal 5/4 binary64)))
(*.f64 (sqrt.f64 (sqrt.f64 d1)) (*.f64 (sqrt.f64 (sqrt.f64 d1)) (*.f64 d1 (sqrt.f64 d1))))
(*.f64 (pow.f64 d1 #s(literal 5/4 binary64)) (pow.f64 d1 #s(literal 3/4 binary64)))
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 d1)) #s(literal 4 binary64)) (pow.f64 (sqrt.f64 (sqrt.f64 d1)) #s(literal 4 binary64)))
(*.f64 (pow.f64 (exp.f64 #s(literal 2 binary64)) (/.f64 (log.f64 d1) #s(literal 2 binary64))) (pow.f64 (exp.f64 #s(literal 2 binary64)) (/.f64 (log.f64 d1) #s(literal 2 binary64))))
(*.f64 (*.f64 (pow.f64 d1 #s(literal 3/4 binary64)) (sqrt.f64 (sqrt.f64 d1))) (*.f64 (pow.f64 d1 #s(literal 3/4 binary64)) (sqrt.f64 (sqrt.f64 d1))))
(*.f64 (*.f64 (sqrt.f64 (sqrt.f64 d1)) (pow.f64 d1 #s(literal 3/4 binary64))) (*.f64 (sqrt.f64 (sqrt.f64 d1)) (pow.f64 d1 #s(literal 3/4 binary64))))
(*.f64 (*.f64 (*.f64 d1 (sqrt.f64 d1)) (sqrt.f64 (sqrt.f64 d1))) (sqrt.f64 (sqrt.f64 d1)))

eval18.0ms (0.2%)

Memory
-25.5MiB live, 28.0MiB allocated
Compiler

Compiled 1 130 to 229 computations (79.7% saved)

prune21.0ms (0.2%)

Memory
24.5MiB live, 24.5MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1174121
Fresh000
Picked011
Done000
Total1175122
Accuracy
100.0%
Counts
122 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 44 to 21 computations (52.3% saved)

simplify6.0ms (0.1%)

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

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff5504
(pow.f64 d1 #s(literal 4 binary64))
cost-diff0
(*.f64 d1 (sqrt.f64 d1))
cost-diff0
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
cost-diff0
(*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
cost-diff1600
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
cost-diff0
(sqrt.f64 d1)
cost-diff0
(*.f64 d1 (sqrt.f64 d1))
cost-diff0
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
cost-diff1600
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
cost-diff0
(*.f64 d1 d1)
cost-diff0
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Rules
56×lower-*.f32
42×lower-*.f64
38×associate-*r*
28×associate-*l*
16×lower-pow.f32
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01172
02068
13658
26050
36650
47050
57544
68444
78644
08644
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 d1)
d1
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
d1
(*.f64 d1 (sqrt.f64 d1))
(sqrt.f64 d1)
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
d1
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
(*.f64 d1 (sqrt.f64 d1))
(sqrt.f64 d1)
(pow.f64 d1 #s(literal 4 binary64))
d1
#s(literal 4 binary64)
Outputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 d1 d1)
d1
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
d1
(*.f64 d1 (sqrt.f64 d1))
(sqrt.f64 d1)
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
d1
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
(*.f64 d1 (sqrt.f64 d1))
(sqrt.f64 d1)
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
d1
#s(literal 4 binary64)

localize44.0ms (0.4%)

Memory
-28.3MiB live, 85.0MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0.00390625
(pow.f64 d1 #s(literal 4 binary64))
accuracy0.0546875
(*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
accuracy0.09603500976844201
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
accuracy0.125
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
accuracy0.20703125
(*.f64 d1 (sqrt.f64 d1))
accuracy0
(sqrt.f64 d1)
accuracy0.1015625
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
accuracy0.125
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
accuracy0.20703125
(*.f64 d1 (sqrt.f64 d1))
accuracy0
(*.f64 d1 d1)
accuracy0.09765625
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Samples
29.0ms256×0valid
Compiler

Compiled 74 to 13 computations (82.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
ival-mult: 15.0ms (74.4% of total)
ival-pow: 3.0ms (14.9% of total)
ival-sqrt: 2.0ms (9.9% 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.1%)

Memory
16.1MiB live, 16.1MiB allocated
Counts
9 → 108
Calls
Call 1
Inputs
#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())
#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())
#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())
#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())
#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())
#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())
#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) (patch (*.f64 (*.f64 d1 d1) (*.f64 d1 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 5)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (patch (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor 0 d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor 0 d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor 0 d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor 0 d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 3)) (taylor inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (sqrt.f64 d1)) (patch (*.f64 d1 (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor 0 d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor 0 d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor 0 d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor 0 d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (sqrt d1) (taylor inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt d1) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt d1) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt d1) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt d1) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (sqrt.f64 d1) (patch (sqrt.f64 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow d1 4) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) (patch (*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1)) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor 0 d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (sqrt (pow d1 7)) (taylor inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2))) (taylor -inf d1) (#s(alt (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (patch (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor 0 d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow d1 4) (taylor -inf d1) (#s(alt (pow.f64 d1 #s(literal 4 binary64)) (patch (pow.f64 d1 #s(literal 4 binary64)) #<representation binary64>) () ())) ())
Calls

27 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(* (* d1 (* d1 (sqrt d1))) (* d1 (sqrt d1)))
0.0ms
d1
@0
(* d1 (* d1 (sqrt d1)))
0.0ms
d1
@0
(* d1 (* d1 (* d1 (sqrt d1))))
0.0ms
d1
@-inf
(* d1 (sqrt d1))
0.0ms
d1
@-inf
(* d1 (* d1 (sqrt d1)))

simplify55.0ms (0.6%)

Memory
2.0MiB live, 44.7MiB allocated
Algorithm
egg-herbie
Rules
342×lower-*.f64
342×lower-*.f32
336×lower-fma.f64
336×lower-fma.f32
296×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028348
157348
2152348
3286348
4646348
5872348
61025348
71068348
81070348
91070348
01070348
Stop Event
iter limit
saturated
Counts
108 → 108
Calls
Call 1
Inputs
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(sqrt (pow d1 5))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(sqrt (pow d1 3))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(sqrt d1)
(sqrt d1)
(sqrt d1)
(sqrt d1)
(sqrt d1)
(sqrt d1)
(sqrt d1)
(sqrt d1)
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(sqrt (pow d1 7))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
(pow d1 4)
Outputs
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 5))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(* -1 (* (sqrt (pow d1 5)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 5 binary64)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt (pow d1 3))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(* -1 (* (sqrt (pow d1 3)) (pow (sqrt -1) 2)))
(sqrt.f64 (*.f64 d1 (*.f64 d1 d1)))
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(sqrt d1)
(sqrt.f64 d1)
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(sqrt.f64 d1)
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(sqrt.f64 d1)
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(sqrt.f64 d1)
(* -1 (* (sqrt d1) (pow (sqrt -1) 2)))
(sqrt.f64 d1)
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(* -1 (* (pow d1 4) (pow (sqrt -1) 2)))
(pow.f64 d1 #s(literal 4 binary64))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(sqrt (pow d1 7))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(* -1 (* (sqrt (pow d1 7)) (pow (sqrt -1) 2)))
(sqrt.f64 (pow.f64 d1 #s(literal 7 binary64)))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))

rewrite168.0ms (1.7%)

Memory
-7.8MiB live, 100.8MiB allocated
Rules
1 760×lower-pow.f64
1 760×lower-pow.f32
1 664×lower-*.f64
1 664×lower-*.f32
1 602×unpow-prod-down
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01155
02027
14527
29627
322627
411419
554259
654529
754929
856319
964199
082149
Stop Event
iter limit
node limit
iter limit
Counts
9 → 18
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 d1)
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))
(*.f64 d1 (sqrt.f64 d1))
(sqrt.f64 d1)
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
(*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))))
(pow.f64 d1 #s(literal 4 binary64))
Outputs
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1

eval36.0ms (0.4%)

Memory
1.2MiB live, 45.6MiB allocated
Compiler

Compiled 1 989 to 54 computations (97.3% saved)

prune11.0ms (0.1%)

Memory
23.6MiB live, 23.6MiB allocated
Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New2222224
Fresh000
Picked044
Done011
Total2227229
Accuracy
100.0%
Counts
229 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
67.7%
(*.f64 (*.f64 d1 d1) d1)
6.0%
d1
Compiler

Compiled 52 to 25 computations (51.9% saved)

simplify4.0ms (0%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 d1 d1)
cost-diff0
(*.f64 (*.f64 d1 d1) d1)
Rules
lower-*.f32
lift-*.f64
lower-*.f64
lower-pow.f64
cube-unmult
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0310
0510
168
288
088
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
d1
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 d1)
d1
Outputs
d1
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 (*.f64 d1 d1))
(*.f64 d1 d1)
d1

localize90.0ms (0.9%)

Memory
-17.6MiB live, 21.7MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 d1 d1)
accuracy0.1015625
(*.f64 (*.f64 d1 d1) d1)
Samples
86.0ms256×0valid
Compiler

Compiled 12 to 5 computations (58.3% saved)

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

series1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
2 → 24
Calls
Call 1
Inputs
#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())
#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())
Outputs
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor 0 d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 3) (taylor -inf d1) (#s(alt (*.f64 (*.f64 d1 d1) d1) (patch (*.f64 (*.f64 d1 d1) d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(* (* d1 d1) d1)
0.0ms
d1
@inf
(* (* d1 d1) d1)
0.0ms
d1
@-inf
(* (* d1 d1) d1)
0.0ms
d1
@-inf
(* d1 d1)
0.0ms
d1
@inf
(* d1 d1)

simplify4.0ms (0%)

Memory
5.5MiB live, 5.5MiB allocated
Algorithm
egg-herbie
Rules
lower-*.f64
lower-*.f32
lower-pow.f64
lower-pow.f32
cube-mult
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0572
1872
21072
31272
01272
Stop Event
iter limit
saturated
Counts
24 → 24
Calls
Call 1
Inputs
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 3)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
Outputs
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 3)
(*.f64 d1 (*.f64 d1 d1))
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)

rewrite304.0ms (3%)

Memory
-11.8MiB live, 107.2MiB allocated
Rules
2 618×lower-*.f64
2 618×lower-*.f32
1 200×unpow-prod-down
1 030×log-prod
922×associate-*r*
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
038
056
1106
2246
3526
41666
55712
640592
741172
843542
968812
085902
Stop Event
iter limit
node limit
iter limit
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 d1)
Outputs
#s(literal 1 binary64)
d1
#s(literal 1 binary64)
d1

eval2.0ms (0%)

Memory
5.5MiB live, 5.5MiB allocated
Compiler

Compiled 153 to 6 computations (96.1% saved)

prune4.0ms (0%)

Memory
9.4MiB live, 9.4MiB allocated
Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New27128
Fresh000
Picked022
Done055
Total27835
Accuracy
100.0%
Counts
35 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
67.7%
(*.f64 (*.f64 d1 d1) d1)
50.9%
(*.f64 d1 d1)
6.0%
d1
Compiler

Compiled 56 to 27 computations (51.8% saved)

simplify4.0ms (0%)

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

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 d1 d1)
Rules
lift-*.f64
lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024
034
034
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(*.f64 d1 d1)
d1
Outputs
(*.f64 d1 d1)
d1

localize37.0ms (0.4%)

Memory
-22.3MiB live, 16.9MiB allocated
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 d1 d1)
Samples
34.0ms256×0valid
Compiler

Compiled 6 to 4 computations (33.3% saved)

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

series0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Counts
1 → 12
Calls
Call 1
Inputs
#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())
Outputs
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor 0 d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
#s(alt (pow d1 2) (taylor -inf d1) (#s(alt (*.f64 d1 d1) (patch (*.f64 d1 d1) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(* d1 d1)
0.0ms
d1
@inf
(* d1 d1)
0.0ms
d1
@-inf
(* d1 d1)

simplify3.0ms (0%)

Memory
4.8MiB live, 4.8MiB allocated
Algorithm
egg-herbie
Rules
lower-*.f64
lower-pow.f64
unpow2
lower-*.f32
lower-pow.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0336
1436
0436
Stop Event
iter limit
saturated
Counts
12 → 12
Calls
Call 1
Inputs
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
(pow d1 2)
Outputs
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)
(pow d1 2)
(*.f64 d1 d1)

rewrite120.0ms (1.2%)

Memory
-3.9MiB live, 73.4MiB allocated
Rules
2 136×lower-pow.f64
2 136×lower-pow.f32
1 588×lower-*.f64
1 588×lower-*.f32
1 412×prod-exp
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
023
033
153
2123
3283
4763
52311
615151
715401
816631
929071
082821
Stop Event
iter limit
node limit
iter limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 d1 d1)
Outputs
#s(literal 1 binary64)
d1

eval1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
Compiler

Compiled 51 to 3 computations (94.1% saved)

prune4.0ms (0%)

Memory
8.5MiB live, 8.5MiB allocated
Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New14014
Fresh000
Picked011
Done077
Total14822
Accuracy
100.0%
Counts
22 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
99.7%
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
67.7%
(*.f64 (*.f64 d1 d1) d1)
50.9%
(*.f64 d1 d1)
6.0%
d1
Compiler

Compiled 105 to 40 computations (61.9% saved)

regimes6.0ms (0.1%)

Memory
13.6MiB live, 13.6MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
d1
(*.f64 d1 d1)
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
(pow.f64 d1 #s(literal 4 binary64))
Outputs
(pow.f64 d1 #s(literal 4 binary64))
Calls

2 calls:

3.0ms
d1
3.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes19.0ms (0.2%)

Memory
-42.0MiB live, 11.7MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
d1
(*.f64 d1 d1)
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1))) (*.f64 d1 (sqrt.f64 d1)))
(*.f64 (*.f64 d1 (*.f64 d1 (*.f64 d1 (sqrt.f64 d1)))) (sqrt.f64 d1))
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Calls

2 calls:

15.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
3.0ms
d1
Results
AccuracySegmentsBranch
99.9%1d1
99.9%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes4.0ms (0%)

Memory
7.5MiB live, 7.5MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
d1
(*.f64 d1 d1)
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Calls

2 calls:

2.0ms
d1
2.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
99.8%1d1
99.8%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes4.0ms (0%)

Memory
6.8MiB live, 6.8MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
d1
(*.f64 d1 d1)
(*.f64 (*.f64 d1 d1) d1)
Outputs
(*.f64 (*.f64 d1 d1) d1)
Calls

2 calls:

2.0ms
d1
1.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
67.7%1d1
67.7%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes3.0ms (0%)

Memory
6.0MiB live, 6.0MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
d1
(*.f64 d1 d1)
Outputs
(*.f64 d1 d1)
Calls

2 calls:

2.0ms
d1
1.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
50.9%1d1
50.9%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

regimes3.0ms (0%)

Memory
5.3MiB live, 5.3MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
d1
Outputs
d1
Calls

2 calls:

1.0ms
d1
1.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
6.0%1d1
6.0%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 10 to 5 computations (50% saved)

simplify9.0ms (0.1%)

Memory
-26.0MiB live, 12.4MiB allocated
Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0726
1926
Stop Event
saturated
Calls
Call 1
Inputs
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 d1)
d1
Outputs
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 (*.f64 d1 d1))
(*.f64 d1 d1)
d1

soundness8.1s (80.8%)

Memory
13.3MiB live, 328.0MiB allocated
Rules
2 618×lower-*.f64
2 618×lower-*.f32
1 760×lower-pow.f64
1 760×lower-pow.f32
1 664×lower-*.f64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
038
056
1106
2246
3526
41666
55712
640592
741172
843542
968812
085902
01155
02027
14527
29627
322627
411419
554259
654529
754929
856319
964199
082149
0415
0711
1149
2349
3779
42549
010339
Stop Event
done
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
Compiler

Compiled 133 to 44 computations (66.9% saved)

preprocess44.0ms (0.4%)

Memory
12.3MiB live, 129.2MiB allocated
Remove

(abs d1)

Compiler

Compiled 102 to 46 computations (54.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...