FastMath repmul

Time bar (total: 1.7s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated; 0ms collecting garbage
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)

sample859.0ms (51.6%)

Memory
70.1MiB live, 1 203.5MiB allocated; 371ms collecting garbage
Samples
494.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 179.0ms
ival-mult: 169.0ms (94.2% of total)
ival-true: 5.0ms (2.8% of total)
ival-assert: 3.0ms (1.7% of total)
adjust: 2.0ms (1.1% of total)
Bogosity

explain126.0ms (7.6%)

Memory
-29.5MiB live, 218.3MiB allocated; 91ms collecting garbage
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
21.0ms512×0valid
Compiler

Compiled 43 to 16 computations (62.8% saved)

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

preprocess240.0ms (14.4%)

Memory
5.9MiB live, 240.8MiB allocated; 35ms collecting garbage
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0615
12513
21159
32337
43057
53097
63197
73517
85347
921577
1052927
047
077
1145
2553
31863
42783
52823
62923
73243
85073
921283
1052773
080503
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(pow.f64 d1 #s(literal 4 binary64))
Symmetry

(abs d1)

Compiler

Compiled 7 to 4 computations (42.9% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.8%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 7 to 4 computations (42.9% saved)

series4.0ms (0.2%)

Memory
9.8MiB live, 9.8MiB allocated; 0ms collecting garbage
Counts
4 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 d1)
d1
Outputs
(pow d1 4)
(pow d1 3)
(pow d1 2)
d1
Calls

3 calls:

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

simplify133.0ms (8%)

Memory
2.2MiB live, 144.6MiB allocated; 13ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11210
22210
34810
411210
525810
6123110
7399210
0801310
Stop Event
iter limit
node limit
Counts
4 → 3
Calls
Call 1
Inputs
(pow d1 4)
(pow d1 3)
(pow d1 2)
d1
Outputs
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 3)
(pow.f64 d1 #s(literal 3 binary64))
(pow d1 2)
(*.f64 d1 d1)
d1

rewrite29.0ms (1.8%)

Memory
8.4MiB live, 54.5MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0416
0712
11810
07810
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
4 → 40
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) (neg.f64 d1)) (neg.f64 d1))
(*.f64 (*.f64 (*.f64 d1 d1) (fabs.f64 d1)) (fabs.f64 d1))
(*.f64 (*.f64 (neg.f64 d1) (fabs.f64 d1)) (*.f64 (neg.f64 d1) (fabs.f64 d1)))
(*.f64 (*.f64 (neg.f64 d1) d1) (*.f64 (neg.f64 d1) d1))
(*.f64 (*.f64 (fabs.f64 d1) (neg.f64 d1)) (*.f64 (fabs.f64 d1) (neg.f64 d1)))
(*.f64 (*.f64 (fabs.f64 d1) d1) (*.f64 (fabs.f64 d1) d1))
(*.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (neg.f64 d1)))
(*.f64 (*.f64 d1 (fabs.f64 d1)) (*.f64 d1 (fabs.f64 d1)))
(*.f64 (neg.f64 (*.f64 d1 d1)) (neg.f64 (*.f64 d1 d1)))
(*.f64 (neg.f64 d1) (*.f64 (neg.f64 d1) (*.f64 d1 d1)))
(*.f64 (fabs.f64 d1) (*.f64 (fabs.f64 d1) (*.f64 d1 d1)))
(*.f64 (pow.f64 d1 #s(literal 3 binary64)) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 #s(literal 3 binary64)))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 (*.f64 d1 (neg.f64 d1)) (neg.f64 d1))
(*.f64 (*.f64 d1 (fabs.f64 d1)) (fabs.f64 d1))
(*.f64 (pow.f64 d1 #s(literal 3/2 binary64)) (pow.f64 d1 #s(literal 3/2 binary64)))
(*.f64 (neg.f64 d1) (*.f64 (neg.f64 d1) d1))
(*.f64 (fabs.f64 d1) (*.f64 (fabs.f64 d1) d1))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 d1 (*.f64 d1 d1))
(pow.f64 d1 #s(literal 3 binary64))
(exp.f64 (*.f64 (log.f64 d1) #s(literal 3 binary64)))
(*.f64 (pow.f64 d1 #s(literal 1 binary64)) (pow.f64 d1 #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 d1)) (neg.f64 (neg.f64 d1)))
(*.f64 (neg.f64 (fabs.f64 d1)) (neg.f64 (fabs.f64 d1)))
(*.f64 (fabs.f64 (fabs.f64 d1)) (fabs.f64 (fabs.f64 d1)))
(*.f64 (neg.f64 d1) (neg.f64 d1))
(*.f64 (fabs.f64 d1) (fabs.f64 d1))
(*.f64 d1 d1)
(pow.f64 (neg.f64 d1) #s(literal 2 binary64))
(pow.f64 (fabs.f64 d1) #s(literal 2 binary64))
(pow.f64 d1 #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 d1) d1))
(neg.f64 (*.f64 d1 (neg.f64 d1)))
(fabs.f64 (*.f64 d1 d1))
(exp.f64 (*.f64 (log.f64 d1) #s(literal 2 binary64)))
d1

eval4.0ms (0.2%)

Memory
11.8MiB live, 11.8MiB allocated; 0ms collecting garbage
Compiler

Compiled 387 to 109 computations (71.8% saved)

prune3.0ms (0.2%)

Memory
7.3MiB live, 7.3MiB allocated; 0ms collecting garbage
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New44246
Fresh000
Picked011
Done000
Total44347
Accuracy
100.0%
Counts
47 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.8%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 17 to 10 computations (41.2% saved)

series11.0ms (0.7%)

Memory
-31.5MiB live, 17.5MiB allocated; 7ms collecting garbage
Counts
5 → 3
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 d1)
d1
(pow.f64 d1 #s(literal 4 binary64))
#s(literal 4 binary64)
Outputs
(pow d1 4)
(pow d1 2)
d1
Calls

3 calls:

TimeVariablePointExpression
10.0ms
d1
@-inf
((* (* d1 d1) (* d1 d1)) (* d1 d1) d1 (pow d1 4) 4)
1.0ms
d1
@inf
((* (* d1 d1) (* d1 d1)) (* d1 d1) d1 (pow d1 4) 4)
0.0ms
d1
@0
((* (* d1 d1) (* d1 d1)) (* d1 d1) d1 (pow d1 4) 4)

simplify151.0ms (9%)

Memory
-2.7MiB live, 132.7MiB allocated; 13ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
187
2177
3357
4747
51647
66417
750227
083167
Stop Event
iter limit
node limit
Counts
3 → 2
Calls
Call 1
Inputs
(pow d1 4)
(pow d1 2)
d1
Outputs
(pow d1 4)
(pow.f64 d1 #s(literal 4 binary64))
(pow d1 2)
(*.f64 d1 d1)
d1

rewrite20.0ms (1.2%)

Memory
40.0MiB live, 40.0MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0515
0811
12711
010911
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
5 → 63
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 d1)
d1
(pow.f64 d1 #s(literal 4 binary64))
#s(literal 4 binary64)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) (neg.f64 d1)) (neg.f64 d1))
(*.f64 (*.f64 (*.f64 d1 d1) (fabs.f64 d1)) (fabs.f64 d1))
(*.f64 (*.f64 (neg.f64 d1) (fabs.f64 d1)) (*.f64 (neg.f64 d1) (fabs.f64 d1)))
(*.f64 (*.f64 (fabs.f64 d1) (neg.f64 d1)) (*.f64 (fabs.f64 d1) (neg.f64 d1)))
(*.f64 (*.f64 (fabs.f64 d1) d1) (*.f64 (fabs.f64 d1) d1))
(*.f64 (*.f64 d1 (fabs.f64 d1)) (*.f64 d1 (fabs.f64 d1)))
(*.f64 (pow.f64 (*.f64 d1 d1) #s(literal 1 binary64)) (pow.f64 (*.f64 d1 d1) #s(literal 1 binary64)))
(*.f64 (pow.f64 d1 #s(literal 3 binary64)) d1)
(*.f64 (*.f64 (neg.f64 d1) d1) (*.f64 (neg.f64 d1) d1))
(*.f64 (neg.f64 d1) (*.f64 (neg.f64 d1) (*.f64 d1 d1)))
(*.f64 (fabs.f64 d1) (*.f64 (fabs.f64 d1) (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 #s(literal 3 binary64)))
(pow.f64 (exp.f64 (log.f64 d1)) #s(literal 4 binary64))
(pow.f64 (*.f64 (neg.f64 d1) d1) #s(literal 2 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 d1 #s(literal 4 binary64))
(neg.f64 (*.f64 (*.f64 (neg.f64 d1) d1) (*.f64 d1 d1)))
(neg.f64 (*.f64 (*.f64 d1 d1) (*.f64 (neg.f64 d1) d1)))
(fabs.f64 (pow.f64 d1 #s(literal 4 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 d1 d1)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64))) (sinh.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64))))
(*.f64 (pow.f64 d1 #s(literal 1 binary64)) (pow.f64 d1 #s(literal 1 binary64)))
(*.f64 (neg.f64 (neg.f64 d1)) (neg.f64 (neg.f64 d1)))
(*.f64 (neg.f64 (fabs.f64 d1)) (neg.f64 (fabs.f64 d1)))
(*.f64 (fabs.f64 (fabs.f64 d1)) (fabs.f64 (fabs.f64 d1)))
(*.f64 (neg.f64 d1) (neg.f64 d1))
(*.f64 (fabs.f64 d1) (fabs.f64 d1))
(*.f64 d1 d1)
(pow.f64 (neg.f64 d1) #s(literal 2 binary64))
(pow.f64 (fabs.f64 d1) #s(literal 2 binary64))
(pow.f64 d1 #s(literal 2 binary64))
(neg.f64 (*.f64 (neg.f64 d1) d1))
(sqrt.f64 (pow.f64 d1 #s(literal 4 binary64)))
(fabs.f64 (*.f64 (neg.f64 d1) d1))
(fabs.f64 (*.f64 d1 d1))
(exp.f64 (*.f64 (log.f64 d1) #s(literal 2 binary64)))
d1
(*.f64 (*.f64 (*.f64 d1 d1) (neg.f64 d1)) (neg.f64 d1))
(*.f64 (*.f64 (*.f64 d1 d1) (fabs.f64 d1)) (fabs.f64 d1))
(*.f64 (*.f64 (neg.f64 d1) (fabs.f64 d1)) (*.f64 (neg.f64 d1) (fabs.f64 d1)))
(*.f64 (*.f64 (fabs.f64 d1) (neg.f64 d1)) (*.f64 (fabs.f64 d1) (neg.f64 d1)))
(*.f64 (*.f64 (fabs.f64 d1) d1) (*.f64 (fabs.f64 d1) d1))
(*.f64 (*.f64 d1 (fabs.f64 d1)) (*.f64 d1 (fabs.f64 d1)))
(*.f64 (pow.f64 (*.f64 d1 d1) #s(literal 1 binary64)) (pow.f64 (*.f64 d1 d1) #s(literal 1 binary64)))
(*.f64 (pow.f64 d1 #s(literal 3 binary64)) d1)
(*.f64 (*.f64 (neg.f64 d1) d1) (*.f64 (neg.f64 d1) d1))
(*.f64 (neg.f64 d1) (*.f64 (neg.f64 d1) (*.f64 d1 d1)))
(*.f64 (fabs.f64 d1) (*.f64 (fabs.f64 d1) (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 #s(literal 3 binary64)))
(pow.f64 (exp.f64 (log.f64 d1)) #s(literal 4 binary64))
(pow.f64 (*.f64 (neg.f64 d1) d1) #s(literal 2 binary64))
(pow.f64 (*.f64 d1 d1) #s(literal 2 binary64))
(pow.f64 d1 #s(literal 4 binary64))
(neg.f64 (*.f64 (*.f64 (neg.f64 d1) d1) (*.f64 d1 d1)))
(neg.f64 (*.f64 (*.f64 d1 d1) (*.f64 (neg.f64 d1) d1)))
(fabs.f64 (pow.f64 d1 #s(literal 4 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 d1 d1)) #s(literal 2 binary64)))
(exp.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64)))
(+.f64 (cosh.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64))) (sinh.f64 (*.f64 (log.f64 d1) #s(literal 4 binary64))))
#s(literal 4 binary64)

eval40.0ms (2.4%)

Memory
-16.9MiB live, 30.7MiB allocated; 42ms collecting garbage
Compiler

Compiled 514 to 104 computations (79.8% saved)

prune3.0ms (0.2%)

Memory
7.8MiB live, 7.8MiB allocated; 0ms collecting garbage
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New62062
Fresh000
Picked022
Done011
Total62365
Accuracy
100.0%
Counts
65 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 #s(literal 4 binary64))
99.8%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 34 to 17 computations (50% saved)

regimes3.0ms (0.2%)

Memory
9.5MiB live, 9.5MiB allocated; 0ms collecting garbage
Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(pow.f64 d1 #s(literal 4 binary64))
Outputs
(pow.f64 d1 #s(literal 4 binary64))
Calls

2 calls:

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

Compiled 8 to 5 computations (37.5% saved)

regimes2.0ms (0.1%)

Memory
7.0MiB live, 7.0MiB allocated; 0ms collecting garbage
Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Calls

2 calls:

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

Compiled 8 to 5 computations (37.5% saved)

regimes4.0ms (0.2%)

Memory
-43.3MiB live, 6.0MiB allocated; 3ms collecting garbage
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Calls

2 calls:

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

Compiled 8 to 5 computations (37.5% saved)

simplify9.0ms (0.5%)

Memory
23.3MiB live, 23.3MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
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))
Outputs
(pow.f64 d1 #s(literal 4 binary64))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))

derivations2.0ms (0.1%)

Memory
4.9MiB live, 4.9MiB allocated; 0ms collecting garbage
Stop Event
done
Compiler

Compiled 17 to 7 computations (58.8% saved)

preprocess20.0ms (1.2%)

Memory
1.6MiB live, 48.0MiB allocated; 3ms collecting garbage
Remove

(abs d1)

Compiler

Compiled 66 to 40 computations (39.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...