abs(x)-x

Time bar (total: 2.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze0.0ms (0%)

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

Compiled 12 to 9 computations (25% saved)

sample842.0ms (40.5%)

Memory
18.6MiB live, 417.0MiB allocated
Samples
391.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 196.0ms
ival-fabs: 58.0ms (29.6% of total)
ival-<=: 56.0ms (28.6% of total)
ival-sub: 50.0ms (25.5% of total)
ival-and: 14.0ms (7.1% of total)
exact: 14.0ms (7.1% of total)
ival-assert: 4.0ms (2% of total)
Bogosity

explain43.0ms (2.1%)

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

Compiled 22 to 13 computations (40.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 7.0ms
ival-sub: 3.0ms (46.1% of total)
ival-fabs: 3.0ms (46.1% of total)
ival-true: 1.0ms (15.4% of total)
ival-assert: 0.0ms (0% of total)

preprocess22.0ms (1.1%)

Memory
5.2MiB live, 5.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511
1149
2459
3969
41219
51349
61349
034
054
174
2124
3184
4264
5414
6744
71044
81534
91694
101804
01804
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(-.f64 (fabs.f64 x) x)
Outputs
(-.f64 (fabs.f64 x) x)
Compiler

Compiled 4 to 3 computations (25% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (fabs.f64 x) x)
Compiler

Compiled 4 to 3 computations (25% saved)

simplify6.0ms (0.3%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fabs.f64 x)
cost-diff0
(-.f64 (fabs.f64 x) x)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037
057
177
2127
3187
4267
5417
6747
71047
81537
91697
101807
01807
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(-.f64 (fabs.f64 x) x)
(fabs.f64 x)
x
Outputs
(-.f64 (fabs.f64 x) x)
(fabs.f64 x)
x

localize12.0ms (0.6%)

Memory
4.8MiB live, 4.8MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(-.f64 (fabs.f64 x) x)
accuracy0.0
(fabs.f64 x)
Samples
8.0ms256×0valid
Compiler

Compiled 9 to 5 computations (44.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-fabs: 2.0ms (64.4% of total)
ival-sub: 1.0ms (32.2% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series1.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Counts
2 → 5
Calls
Call 1
Inputs
(-.f64 (fabs.f64 x) x)
(fabs.f64 x)
Outputs
(fabs x)
(+ (fabs x) (* -1 x))
(* -1 x)
(* x (- (/ (fabs x) x) 1))
(* -1 (* x (+ 1 (* -1 (/ (fabs x) x)))))
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
((- (fabs x) x) (fabs x))
0.0ms
x
@-inf
((- (fabs x) x) (fabs x))
0.0ms
x
@0
((- (fabs x) x) (fabs x))

simplify142.0ms (6.8%)

Memory
11.8MiB live, 11.8MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01319
13616
29516
324916
458916
5125916
6181916
7232016
8249716
9260116
10291016
11396916
12462116
13515216
14563016
15582316
16611516
17717316
0832116
Stop Event
iter limit
node limit
Counts
5 → 5
Calls
Call 1
Inputs
(fabs x)
(+ (fabs x) (* -1 x))
(* -1 x)
(* x (- (/ (fabs x) x) 1))
(* -1 (* x (+ 1 (* -1 (/ (fabs x) x)))))
Outputs
(fabs x)
(fabs.f64 x)
(+ (fabs x) (* -1 x))
(-.f64 (fabs.f64 x) x)
(* -1 x)
(neg.f64 x)
(* x (- (/ (fabs x) x) 1))
(-.f64 (fabs.f64 x) x)
(* -1 (* x (+ 1 (* -1 (/ (fabs x) x)))))
(-.f64 (fabs.f64 x) x)

rewrite60.0ms (2.9%)

Memory
7.1MiB live, 7.1MiB allocated
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
036
056
1216
21483
018253
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
2 → 5
Calls
Call 1
Inputs
(-.f64 (fabs.f64 x) x)
(fabs.f64 x)
Outputs
#s(literal 0 binary64)
(*.f64 #s(literal 1 binary64) (fabs.f64 x))
(fabs.f64 (-.f64 x #s(literal 0 binary64)))
(fabs.f64 (neg.f64 x))
(fabs.f64 x)

eval21.0ms (1%)

Memory
-76.0MiB live, 0.6MiB allocated
Compiler

Compiled 45 to 18 computations (60% saved)

prune23.0ms (1.1%)

Memory
1.0MiB live, 1.0MiB allocated
Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New628
Fresh000
Picked011
Done000
Total639
Accuracy
100.0%
Counts
9 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (fabs.f64 x) x)
11.9%
#s(approx (- (fabs x) x) (neg.f64 x))
53.2%
#s(literal 0 binary64)
Compiler

Compiled 12 to 10 computations (16.7% saved)

simplify7.0ms (0.3%)

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

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f64 x)
cost-diff0
#s(approx (- (fabs x) x) (neg.f64 x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0611
0711
11111
21611
32311
43211
54911
67611
710311
815011
916611
1017711
017711
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(literal 0 binary64)
#s(approx (- (fabs x) x) (neg.f64 x))
(neg.f64 x)
x
Outputs
#s(literal 0 binary64)
#s(approx (- (fabs x) x) (neg.f64 x))
(neg.f64 x)
x

localize15.0ms (0.7%)

Memory
5.9MiB live, 5.9MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(neg.f64 x)
accuracy56.36687052405122
#s(approx (- (fabs x) x) (neg.f64 x))
Samples
11.0ms256×0valid
Compiler

Compiled 10 to 7 computations (30% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-fabs: 2.0ms (40% of total)
ival-sub: 1.0ms (20% of total)
ival-true: 1.0ms (20% of total)
ival-neg: 1.0ms (20% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series1.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Counts
2 → 5
Calls
Call 1
Inputs
#s(approx (- (fabs x) x) (neg.f64 x))
(neg.f64 x)
Outputs
(fabs x)
(+ (fabs x) (* -1 x))
(* -1 x)
(* x (- (/ (fabs x) x) 1))
(* -1 (* x (+ 1 (* -1 (/ (fabs x) x)))))
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
((- (fabs x) x) (neg x))
0.0ms
x
@-inf
((- (fabs x) x) (neg x))
0.0ms
x
@0
((- (fabs x) x) (neg x))

simplify141.0ms (6.8%)

Memory
12.0MiB live, 12.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01319
13616
29516
324916
458916
5125916
6181916
7232016
8249716
9260116
10291016
11396916
12462116
13515216
14563016
15582316
16611516
17717316
0832116
Stop Event
iter limit
node limit
Counts
5 → 5
Calls
Call 1
Inputs
(fabs x)
(+ (fabs x) (* -1 x))
(* -1 x)
(* x (- (/ (fabs x) x) 1))
(* -1 (* x (+ 1 (* -1 (/ (fabs x) x)))))
Outputs
(fabs x)
(fabs.f64 x)
(+ (fabs x) (* -1 x))
(-.f64 (fabs.f64 x) x)
(* -1 x)
(neg.f64 x)
(* x (- (/ (fabs x) x) 1))
(-.f64 (fabs.f64 x) x)
(* -1 (* x (+ 1 (* -1 (/ (fabs x) x)))))
(-.f64 (fabs.f64 x) x)

rewrite50.0ms (2.4%)

Memory
1.9MiB live, 1.9MiB allocated
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
059
069
1259
21664
020054
Stop Event
iter limit
iter limit
iter limit
unsound
iter limit
Counts
2 → 37
Calls
Call 1
Inputs
#s(approx (- (fabs x) x) (neg.f64 x))
(neg.f64 x)
Outputs
#s(approx (- (fabs x) x) x)
(*.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 4 binary64))) (*.f64 x x))
(*.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (pow.f64 x #s(literal 4 binary64)))
(*.f64 (pow.f64 x #s(literal 3/2 binary64)) (/.f64 (pow.f64 x #s(literal 3/2 binary64)) (*.f64 x x)))
(*.f64 #s(literal 1 binary64) x)
(*.f64 #s(literal -1 binary64) x)
(*.f64 (*.f64 x x) (/.f64 x (*.f64 x x)))
(*.f64 (*.f64 x x) (/.f64 #s(literal 1 binary64) x))
(*.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 x x) #s(literal -1 binary64)))
(*.f64 x (/.f64 (*.f64 x x) (*.f64 x x)))
(*.f64 x #s(literal 1 binary64))
(*.f64 x #s(literal -1 binary64))
(/.f64 (-.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 0 binary64)) (*.f64 x x))
(/.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 0 binary64)) (*.f64 x x))
(/.f64 #s(literal 1 binary64) (/.f64 x (*.f64 x x)))
(/.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (pow.f64 x #s(literal 3 binary64))))
(/.f64 (*.f64 x x) x)
(/.f64 (pow.f64 x #s(literal 3 binary64)) (*.f64 x x))
(neg.f64 x)
(fma.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 4 binary64))) (*.f64 x x) #s(literal 0 binary64))
(fma.f64 (/.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 x #s(literal 6 binary64))) (pow.f64 x #s(literal 4 binary64)) #s(literal 0 binary64))
(fma.f64 (pow.f64 x #s(literal 3/2 binary64)) (/.f64 (pow.f64 x #s(literal 3/2 binary64)) (*.f64 x x)) #s(literal 0 binary64))
(fma.f64 #s(literal 1 binary64) x #s(literal 0 binary64))
(fma.f64 #s(literal -1 binary64) x #s(literal 0 binary64))
(fma.f64 (*.f64 x x) (/.f64 x (*.f64 x x)) #s(literal 0 binary64))
(fma.f64 (*.f64 x x) (/.f64 #s(literal 1 binary64) x) #s(literal 0 binary64))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (pow.f64 (*.f64 x x) #s(literal -1 binary64)) #s(literal 0 binary64))
(fma.f64 x (/.f64 (*.f64 x x) (*.f64 x x)) #s(literal 0 binary64))
(fma.f64 x #s(literal 1 binary64) #s(literal 0 binary64))
(fma.f64 x #s(literal -1 binary64) #s(literal 0 binary64))
(-.f64 (/.f64 #s(literal 0 binary64) x) x)
(-.f64 #s(literal 0 binary64) x)
(-.f64 x #s(literal 0 binary64))
(fabs.f64 x)
(+.f64 #s(literal 0 binary64) x)
(+.f64 x #s(literal 0 binary64))
x

eval4.0ms (0.2%)

Memory
2.9MiB live, 2.9MiB allocated
Compiler

Compiled 449 to 102 computations (77.3% saved)

prune2.0ms (0.1%)

Memory
2.5MiB live, 2.5MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New40040
Fresh000
Picked022
Done011
Total40343
Accuracy
100.0%
Counts
43 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 (fabs.f64 x) x)
11.9%
#s(approx (- (fabs x) x) (neg.f64 x))
53.2%
#s(literal 0 binary64)
Compiler

Compiled 24 to 18 computations (25% saved)

regimes3.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
#s(literal 0 binary64)
#s(approx (- (fabs x) x) (neg.f64 x))
(-.f64 (fabs.f64 x) x)
Outputs
(-.f64 (fabs.f64 x) x)
Calls

2 calls:

1.0ms
x
1.0ms
(-.f64 (fabs.f64 x) x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (fabs.f64 x) x)
Compiler

Compiled 5 to 4 computations (20% saved)

regimes3.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Counts
2 → 2
Calls
Call 1
Inputs
#s(literal 0 binary64)
#s(approx (- (fabs x) x) (neg.f64 x))
Outputs
#s(literal 0 binary64)
#s(approx (- (fabs x) x) (neg.f64 x))
Calls

2 calls:

1.0ms
x
1.0ms
(-.f64 (fabs.f64 x) x)
Results
AccuracySegmentsBranch
59.7%2x
59.7%2(-.f64 (fabs.f64 x) x)
Compiler

Compiled 5 to 4 computations (20% saved)

regimes2.0ms (0.1%)

Memory
2.7MiB live, 2.7MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(literal 0 binary64)
Outputs
#s(literal 0 binary64)
Calls

2 calls:

1.0ms
x
1.0ms
(-.f64 (fabs.f64 x) x)
Results
AccuracySegmentsBranch
53.2%1x
53.2%1(-.f64 (fabs.f64 x) x)
Compiler

Compiled 5 to 4 computations (20% saved)

bsearch0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
1.721625341822144e-308
Compiler

Compiled 7 to 7 computations (0% saved)

simplify57.0ms (2.7%)

Memory
9.6MiB live, 9.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
11720
22720
34820
49620
519420
626820
744020
850020
970220
1087620
11183620
12276420
13673720
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (fabs.f64 x) x)
(if (<=.f64 (-.f64 (fabs.f64 x) x) #s(literal 0 binary64)) #s(literal 0 binary64) #s(approx (- (fabs x) x) (neg.f64 x)))
#s(literal 0 binary64)
Outputs
(-.f64 (fabs.f64 x) x)
(if (<=.f64 (-.f64 (fabs.f64 x) x) #s(literal 0 binary64)) #s(literal 0 binary64) #s(approx (- (fabs x) x) (neg.f64 x)))
#s(literal 0 binary64)

soundness608.0ms (29.2%)

Memory
2.4MiB live, 2.4MiB allocated
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01319
13616
29516
324916
458916
5125916
6181916
7232016
8249716
9260116
10291016
11396916
12462116
13515216
14563016
15582316
16611516
17717316
0832116
036
056
1216
21483
018253
Stop Event
done
iter limit
iter limit
iter limit
unsound
iter limit
iter limit
node limit
Compiler

Compiled 32 to 20 computations (37.5% saved)

preprocess17.0ms (0.8%)

Memory
11.7MiB live, 11.7MiB allocated
Compiler

Compiled 48 to 26 computations (45.8% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...