Hyperbolic arc-(co)tangent

Time bar (total: 5.4s)

analyze4.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
0%0%50%0%0%50%0%3
50%25%25%0%0%50%0%4
75%37.5%12.5%0%0%50%0%5
87.5%43.7%6.2%0%0%50%0%6
93.8%46.9%3.1%0%0%50%0%7
96.9%48.4%1.6%0%0%50%0%8
98.4%49.2%0.8%0%0%50%0%9
99.2%49.6%0.4%0%0%50%0%10
99.6%49.8%0.2%0%0%50%0%11
99.8%49.9%0.1%0%0%50%0%12
Compiler

Compiled 14 to 12 computations (14.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 2.0ms
Operation ival-log, time spent: 1.0ms, 46.0% of total-time
Operation ival-div, time spent: 1.0ms, 46.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time

sample1.2s (22.2%)

Results
1.1s8255×0valid
0.0ms0invalid
0.0ms0valid
Precisions
Click to see histograms. Total time spent on operations: 616.0ms
Operation ival-add, time spent: 156.0ms, 25.0% of total-time
Operation ival-sub, time spent: 139.0ms, 23.0% of total-time
Operation ival-div, time spent: 134.0ms, 22.0% of total-time
Operation ival-log, time spent: 117.0ms, 19.0% of total-time
Operation ival-mult, time spent: 35.0ms, 6.0% of total-time
Operation const, time spent: 35.0ms, 6.0% of total-time
Bogosity

preprocess1.9s (35.1%)

Algorithm
egg-herbie
Rules
1946×fma-def
1402×fma-neg
1276×associate-+r+
794×distribute-lft-in
714×unsub-neg
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-x
00-0-(+.f64 1 x)
00-0-(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
00-0-(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
00-0-(/.f64 (+.f64 1 x) (-.f64 1 x))
00-0-(/.f64 1 2)
00-0-(-.f64 1 x)
00-0-2
00-0-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022144
151124
285124
3168124
4391124
5915124
62246124
73420124
84980124
95860124
106148124
116388124
126525124
136639124
146926124
157106124
167192124
177503124
187623124
197651124
207671124
217679124
227679124
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 (neg.f64 x)) (-.f64 1 (neg.f64 x)))))
(neg.f64 (*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 (neg.f64 x)) (-.f64 1 (neg.f64 x))))))
Outputs
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 (neg.f64 x)) (-.f64 1 (neg.f64 x)))))
(*.f64 1/2 (log.f64 (/.f64 (-.f64 1 x) (-.f64 1 (neg.f64 x)))))
(*.f64 1/2 (-.f64 (log1p.f64 (neg.f64 x)) (log1p.f64 x)))
(*.f64 -1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
(neg.f64 (*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 (neg.f64 x)) (-.f64 1 (neg.f64 x))))))
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
Symmetry

(negabs x)

Compiler

Compiled 95 to 75 computations (21.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.3s
Operation ival-log, time spent: 404.0ms, 32.0% of total-time
Operation ival-div, time spent: 323.0ms, 25.0% of total-time
Operation ival-add, time spent: 242.0ms, 19.0% of total-time
Operation ival-sub, time spent: 236.0ms, 19.0% of total-time
Operation const, time spent: 39.0ms, 3.0% of total-time
Operation ival-mult, time spent: 26.0ms, 2.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 19 to 15 computations (21.1% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
11.4%
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
95.6%
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
Compiler

Compiled 20 to 16 computations (20% saved)

localize1.1s (19.8%)

Compiler

Compiled 59 to 34 computations (42.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 925.0ms
Operation ival-log1p, time spent: 342.0ms, 37.0% of total-time
Operation ival-log, time spent: 198.0ms, 21.0% of total-time
Operation ival-sub, time spent: 149.0ms, 16.0% of total-time
Operation ival-add, time spent: 125.0ms, 14.0% of total-time
Operation ival-div, time spent: 56.0ms, 6.0% of total-time
Operation ival-mult, time spent: 28.0ms, 3.0% of total-time
Operation const, time spent: 19.0ms, 2.0% of total-time
Operation ival-neg, time spent: 8.0ms, 1.0% of total-time

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune3.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done000
Total022
Accuracy
98.6%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
11.4%
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
95.6%
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
Compiler

Compiled 51 to 41 computations (19.6% saved)

regimes15.0ms (0.3%)

Counts
3 → 2
Calls
Call 1
Inputs
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
Outputs
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x))))
Calls

4 calls:

5.0ms
x
3.0ms
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
3.0ms
(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
3.0ms
(/.f64 (+.f64 1 x) (-.f64 1 x))
Results
AccuracySegmentsBranch
98.6%2x
97.3%2(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
97.3%2(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
97.3%2(/.f64 (+.f64 1 x) (-.f64 1 x))
Compiler

Compiled 32 to 25 computations (21.9% saved)

regimes10.0ms (0.2%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
Outputs
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
Calls

4 calls:

4.0ms
(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
2.0ms
x
2.0ms
(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
2.0ms
(/.f64 (+.f64 1 x) (-.f64 1 x))
Results
AccuracySegmentsBranch
95.6%1(*.f64 (/.f64 1 2) (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
95.6%1(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
95.6%1(/.f64 (+.f64 1 x) (-.f64 1 x))
95.6%1x
Compiler

Compiled 32 to 25 computations (21.9% saved)

bsearch20.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
20.0ms
2.4753953991159742e-29
1.3411824532466086e-27
Results
17.0ms111×0valid
0.0ms0valid
Compiler

Compiled 171 to 140 computations (18.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
Operation ival-log, time spent: 3.0ms, 32.0% of total-time
Operation ival-sub, time spent: 2.0ms, 22.0% of total-time
Operation ival-div, time spent: 2.0ms, 22.0% of total-time
Operation ival-add, time spent: 2.0ms, 22.0% of total-time
Operation ival-mult, time spent: 1.0ms, 11.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
10×+-commutative
sub-neg
*-commutative
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024113
138113
244113
347113
448113
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 x 4549352020500247/89202980794122492566142873090593446023921664) (*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))) (*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x)))))
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
Outputs
(if (<=.f64 x 4549352020500247/89202980794122492566142873090593446023921664) (*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))) (*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x)))))
(if (<=.f64 x 4549352020500247/89202980794122492566142873090593446023921664) (*.f64 1/2 (log.f64 (/.f64 (+.f64 x 1) (-.f64 1 x)))) (*.f64 1/2 (-.f64 (log1p.f64 x) (log1p.f64 (neg.f64 x)))))
(*.f64 1/2 (log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x))))
(*.f64 1/2 (log.f64 (/.f64 (+.f64 x 1) (-.f64 1 x))))
Compiler

Compiled 34 to 27 computations (20.6% saved)

soundness1.1s (21.1%)

Rules
1946×fma-def
1946×fma-def
1402×fma-neg
1402×fma-neg
1276×associate-+r+
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022144
151124
285124
3168124
4391124
5915124
62246124
73420124
84980124
95860124
106148124
116388124
126525124
136639124
146926124
157106124
167192124
177503124
187623124
197651124
207671124
217679124
227679124
022144
151124
285124
3168124
4391124
5915124
62246124
73420124
84980124
95860124
106148124
116388124
126525124
136639124
146926124
157106124
167192124
177503124
187623124
197651124
207671124
217679124
227679124
Stop Event
node limit
node limit
Compiler

Compiled 84 to 65 computations (22.6% saved)

end0.0ms (0%)

preprocess38.0ms (0.7%)

Compiler

Compiled 184 to 146 computations (20.7% saved)

Profiling

Loading profile data...