sqrt sqr

Time bar (total: 3.2s)

analyze2.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
50%50%50%0%0%0%0%2
75%75%25%0%0%0%0%3
87.5%87.5%12.5%0%0%0%0%4
93.8%93.7%6.2%0%0%0%0%5
96.9%96.8%3.1%0%0%0%0%6
98.4%98.4%1.6%0%0%0%0%7
99.2%99.2%0.8%0%0%0%0%8
99.6%99.6%0.4%0%0%0%0%9
99.8%99.8%0.2%0%0%0%0%10
99.9%99.9%0.1%0%0%0%0%11
100%99.9%0%0%0%0%0%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0ms
ival-div: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
const: 0.0ms (0% of total)
ival-sqrt: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

sample2.1s (65.1%)

Results
1.4s4208×2valid
337.0ms4048×0valid
Precisions
Click to see histograms. Total time spent on operations: 1.1s
ival-div: 300.0ms (26.1% of total)
ival-mult: 256.0ms (22.3% of total)
backward-pass: 198.0ms (17.2% of total)
ival-sub: 190.0ms (16.5% of total)
ival-sqrt: 185.0ms (16.1% of total)
const: 18.0ms (1.6% of total)
Bogosity

preprocess65.0ms (2%)

Algorithm
egg-herbie
Rules
286×fnmadd-define
258×fnmadd-define
240×fnmsub-define
240×fmsub-define
222×fma-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01624
16718
213918
326918
452818
581818
698518
7102418
8103218
087
1246
2476
3856
41326
51946
62676
73066
83936
94756
104836
115046
126456
139136
149626
159746
09746
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(- (/ x x) (* (/ 1 x) (sqrt (* x x))))
Outputs
(- (/ x x) (* (/ 1 x) (sqrt (* x x))))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
Call 2
Inputs
(- (/ x x) (* (/ 1 x) (sqrt (* x x))))
(- (/ (neg x) (neg x)) (* (/ 1 (neg x)) (sqrt (* (neg x) (neg x)))))
(neg (- (/ (neg x) (neg x)) (* (/ 1 (neg x)) (sqrt (* (neg x) (neg x))))))
Outputs
(- (/ x x) (* (/ 1 x) (sqrt (* x x))))
(fnmsub (recip x) (fabs x) -1)
(- (/ (neg x) (neg x)) (* (/ 1 (neg x)) (sqrt (* (neg x) (neg x)))))
(fmsub (recip x) (fabs x) -1)
(neg (- (/ (neg x) (neg x)) (* (/ 1 (neg x)) (sqrt (* (neg x) (neg x))))))
(fnmsub (recip x) (fabs x) 1)

explain217.0ms (6.9%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1300-0-(sqrt.f64 (*.f64 x x))
00-0-x
00-0-(/.f64 x x)
00-0-(*.f64 (/.f64 #s(literal 1 binary64) x) (sqrt.f64 (*.f64 x x)))
00-0-(*.f64 x x)
00-0-(-.f64 (/.f64 x x) (*.f64 (/.f64 #s(literal 1 binary64) x) (sqrt.f64 (*.f64 x x))))
00-0-(/.f64 #s(literal 1 binary64) x)
00-0-#s(literal 1 binary64)
Results
130.0ms290×2valid
42.0ms222×0valid
Compiler

Compiled 87 to 26 computations (70.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 67.0ms
ival-div: 19.0ms (28.2% of total)
ival-mult: 16.0ms (23.8% of total)
ival-sqrt: 12.0ms (17.8% of total)
backward-pass: 12.0ms (17.8% of total)
ival-sub: 7.0ms (10.4% of total)
const: 1.0ms (1.5% of total)

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
Compiler

Compiled 7 to 5 computations (28.6% saved)

simplify27.0ms (0.8%)

Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fabs.f64 x)
cost-diff0
(/.f64 (fabs.f64 x) x)
cost-diff0
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
Rules
230×fmsub-define
228×fnmadd-define
208×fnmsub-define
190×fmm-def
158×sum3-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0514
1914
21714
32714
44414
56314
69614
712214
815014
919314
1023414
1133914
1260014
1375814
1480314
1587214
1688814
088814
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(- 1 (/ (fabs x) x))
1
(/ (fabs x) x)
(fabs x)
x
Outputs
(- 1 (/ (fabs x) x))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
1
#s(literal 1 binary64)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(fabs x)
(fabs.f64 x)
x

localize45.0ms (1.4%)

Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(/.f64 (fabs.f64 x) x)
accuracy100.0%
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
accuracy100.0%
(fabs.f64 x)
Results
18.0ms256×0valid
Compiler

Compiled 16 to 6 computations (62.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 6.0ms
ival-div: 2.0ms (36% of total)
ival-fabs: 2.0ms (36% of total)
ival-sub: 1.0ms (18% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series2.0ms (0.1%)

Counts
3 → 36
Calls
Call 1
Inputs
#<alt (- 1 (/ (fabs x) x))>
#<alt (/ (fabs x) x)>
#<alt (fabs x)>
Outputs
#<alt (* -1 (/ (fabs x) x))>
#<alt (/ (- x (fabs x)) x)>
#<alt (/ (- x (fabs x)) x)>
#<alt (/ (- x (fabs x)) x)>
#<alt 1>
#<alt (+ 1 (* -1 (/ (fabs x) x)))>
#<alt (+ 1 (* -1 (/ (fabs x) x)))>
#<alt (+ 1 (* -1 (/ (fabs x) x)))>
#<alt 1>
#<alt (+ 1 (* -1 (/ (fabs x) x)))>
#<alt (+ 1 (* -1 (/ (fabs x) x)))>
#<alt (+ 1 (* -1 (/ (fabs x) x)))>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (/ (fabs x) x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
#<alt (fabs x)>
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(- 1 (/ (fabs x) x))
0.0ms
x
@0
(- 1 (/ (fabs x) x))
0.0ms
x
@-inf
(/ (fabs x) x)
0.0ms
x
@inf
(- 1 (/ (fabs x) x))
0.0ms
x
@inf
(/ (fabs x) x)

rewrite406.0ms (12.9%)

Algorithm
batch-egg-rewrite
Rules
2596×fma-lowering-fma.f32
2596×fma-lowering-fma.f64
1550×fma-define
1498×*-lowering-*.f32
1498×*-lowering-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0512
13012
223712
3486312
0824912
Stop Event
iter limit
node limit
Counts
3 → 97
Calls
Call 1
Inputs
(- 1 (/ (fabs x) x))
(/ (fabs x) x)
(fabs x)
Outputs
(+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)))
(+.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal 1 binary64))
(+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (neg.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (neg.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(-.f64 #s(literal 0 binary64) (-.f64 (/.f64 (fabs.f64 x) x) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(fma.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (neg.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(fma.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (neg.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(fma.f64 (fabs.f64 x) (/.f64 #s(literal -1 binary64) x) #s(literal 1 binary64))
(fma.f64 (/.f64 (fabs.f64 x) x) #s(literal -1 binary64) #s(literal 1 binary64))
(fma.f64 (-.f64 #s(literal 0 binary64) (fabs.f64 x)) (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
(fma.f64 (/.f64 #s(literal 1 binary64) x) (-.f64 #s(literal 0 binary64) (fabs.f64 x)) #s(literal 1 binary64))
(fma.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal -1 binary64) (/.f64 (fabs.f64 x) x) #s(literal 1 binary64))
(fma.f64 (/.f64 #s(literal -1 binary64) x) (fabs.f64 x) #s(literal 1 binary64))
(fma.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)))) (+.f64 #s(literal 1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x x) x) (fabs.f64 x)) x)) (neg.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(fma.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x)))) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (neg.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(fma.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) #s(literal 3 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) (-.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) #s(literal 1 binary64)))) (neg.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(fma.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) #s(literal 2 binary64)))) (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))) (neg.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(neg.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (+.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(neg.f64 (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (+.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal -1 binary64))))
(neg.f64 (/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(neg.f64 (/.f64 (+.f64 #s(literal -1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))
(/.f64 #s(literal -1 binary64) (neg.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (+.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(/.f64 (+.f64 #s(literal -1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (+.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal -1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))))) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))) (+.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))) (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x)))))))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (+.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x)))))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)))) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))))) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 (neg.f64 (+.f64 #s(literal -1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)))) (neg.f64 (+.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(/.f64 (neg.f64 (+.f64 #s(literal -1 binary64) (/.f64 x (/.f64 (*.f64 x x) x)))) (neg.f64 (+.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal -1 binary64))))
(/.f64 (-.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) #s(literal 3 binary64))) (+.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))) (+.f64 (*.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))))
(/.f64 (-.f64 (pow.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) #s(literal 3 binary64)) (pow.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) #s(literal 3 binary64))) (+.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))) (+.f64 (*.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))) (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))))
(/.f64 (-.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 1 binary64)) (+.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal -1 binary64)))
(/.f64 (-.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))) (*.f64 (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))) (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (/.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(/.f64 (-.f64 (*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))) (*.f64 (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))) (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))) (+.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))) (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x))))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (+.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 x (/.f64 (*.f64 x x) x)) (/.f64 x (/.f64 (*.f64 x x) x)))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))) (+.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))))
(pow.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) #s(literal -1 binary64))
(*.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))
(*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))))
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(*.f64 (+.f64 #s(literal -1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (neg.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))))
(*.f64 (+.f64 #s(literal -1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (/.f64 #s(literal 1 binary64) (+.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)) #s(literal -1 binary64))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))))) (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))))
(*.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x)))) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) #s(literal 3 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) (-.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) #s(literal 1 binary64)))))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64))) (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x))) #s(literal 2 binary64)))) (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (fabs.f64 x) (/.f64 (*.f64 x x) x)))))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 x (/.f64 (*.f64 x x) x))) (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 x (/.f64 (*.f64 x x) x)) #s(literal 3/2 binary64)))) (+.f64 #s(literal 1 binary64) (/.f64 (-.f64 (/.f64 (*.f64 x x) x) (fabs.f64 x)) x)))
(exp.f64 (*.f64 (log.f64 (/.f64 x (fabs.f64 x))) #s(literal -1 binary64)))
(-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)))
(-.f64 (/.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) x)) (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)))
(neg.f64 (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)))
(/.f64 #s(literal 1 binary64) (/.f64 x (fabs.f64 x)))
(/.f64 (fabs.f64 x) x)
(/.f64 (-.f64 #s(literal 0 binary64) (fabs.f64 x)) (-.f64 #s(literal 0 binary64) x))
(/.f64 (/.f64 #s(literal 1 binary64) x) (/.f64 #s(literal 1 binary64) (fabs.f64 x)))
(/.f64 #s(literal -1 binary64) (/.f64 x (-.f64 #s(literal 0 binary64) (fabs.f64 x))))
(/.f64 (/.f64 (-.f64 #s(literal 0 binary64) (fabs.f64 x)) #s(literal -1 binary64)) x)
(pow.f64 (/.f64 x (fabs.f64 x)) #s(literal -1 binary64))
(*.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(*.f64 (fabs.f64 x) (/.f64 #s(literal 1 binary64) x))
(*.f64 (/.f64 (fabs.f64 x) x) #s(literal 1 binary64))
(*.f64 (-.f64 #s(literal 0 binary64) (fabs.f64 x)) (/.f64 #s(literal -1 binary64) x))
(*.f64 (-.f64 #s(literal 0 binary64) (fabs.f64 x)) (*.f64 (/.f64 #s(literal -1 binary64) x) #s(literal 1 binary64)))
(*.f64 (/.f64 #s(literal 1 binary64) x) (fabs.f64 x))
(*.f64 (/.f64 #s(literal 1 binary64) x) (pow.f64 (/.f64 #s(literal 1 binary64) (fabs.f64 x)) #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) (/.f64 (fabs.f64 x) (-.f64 #s(literal 0 binary64) x)))
(*.f64 (/.f64 #s(literal -1 binary64) x) (-.f64 #s(literal 0 binary64) (fabs.f64 x)))
(*.f64 (pow.f64 (/.f64 x (fabs.f64 x)) #s(literal -1/2 binary64)) (pow.f64 (/.f64 x (fabs.f64 x)) #s(literal -1/2 binary64)))
(fabs.f64 x)
(fabs.f64 (-.f64 #s(literal 0 binary64) x))
(fabs.f64 (-.f64 x #s(literal 0 binary64)))
(-.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) (fabs.f64 x)))
(neg.f64 (-.f64 #s(literal 0 binary64) (fabs.f64 x)))
(*.f64 #s(literal 1 binary64) (fabs.f64 x))
(*.f64 (fabs.f64 x) #s(literal 1 binary64))
(*.f64 #s(literal -1 binary64) (-.f64 #s(literal 0 binary64) (fabs.f64 x)))

simplify41.0ms (1.3%)

Algorithm
egg-herbie
Rules
302×fmsub-define
270×fmm-def
260×fnmadd-define
236×fnmsub-define
212×fma-lowering-fma.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09133
120133
232133
349133
476133
5129133
6210133
7419133
81019133
91263133
101285133
111339133
121358133
131366133
01366133
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(* -1 (/ (fabs x) x))
(/ (- x (fabs x)) x)
(/ (- x (fabs x)) x)
(/ (- x (fabs x)) x)
1
(+ 1 (* -1 (/ (fabs x) x)))
(+ 1 (* -1 (/ (fabs x) x)))
(+ 1 (* -1 (/ (fabs x) x)))
1
(+ 1 (* -1 (/ (fabs x) x)))
(+ 1 (* -1 (/ (fabs x) x)))
(+ 1 (* -1 (/ (fabs x) x)))
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(/ (fabs x) x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
(fabs x)
Outputs
(* -1 (/ (fabs x) x))
(-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) x))
(/ (- x (fabs x)) x)
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(/ (- x (fabs x)) x)
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(/ (- x (fabs x)) x)
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
1
#s(literal 1 binary64)
(+ 1 (* -1 (/ (fabs x) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(+ 1 (* -1 (/ (fabs x) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(+ 1 (* -1 (/ (fabs x) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
1
#s(literal 1 binary64)
(+ 1 (* -1 (/ (fabs x) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(+ 1 (* -1 (/ (fabs x) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(+ 1 (* -1 (/ (fabs x) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(/ (fabs x) x)
(/.f64 (fabs.f64 x) x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)
(fabs x)
(fabs.f64 x)

eval14.0ms (0.4%)

Compiler

Compiled 2883 to 268 computations (90.7% saved)

prune16.0ms (0.5%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1321133
Fresh000
Picked011
Done000
Total1322134
Accuracy
100.0%
Counts
134 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
9.9%
#s(literal 1 binary64)
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Rules
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011
131
031
Stop Event
saturated
saturated
Calls
Call 1
Inputs
1
Outputs
1
#s(literal 1 binary64)

localize9.0ms (0.3%)

Results
6.0ms256×0valid
Compiler

Compiled 3 to 3 computations (0% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series0.0ms (0%)

Counts
0 → 0
Calls
Call 1
Inputs
Outputs

rewrite13.0ms (0.4%)

Algorithm
batch-egg-rewrite
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
000
Stop Event
saturated
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
000
Stop Event
saturated
saturated
Counts
0 → 0
Calls
Call 1
Inputs
Outputs

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune5.0ms (0.1%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done011
Total022
Accuracy
100.0%
Counts
2 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
9.9%
#s(literal 1 binary64)
Compiler

Compiled 29 to 18 computations (37.9% saved)

regimes4.0ms (0.1%)

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

2 calls:

2.0ms
x
2.0ms
(-.f64 (/.f64 x x) (*.f64 (/.f64 #s(literal 1 binary64) x) (sqrt.f64 (*.f64 x x))))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (/.f64 x x) (*.f64 (/.f64 #s(literal 1 binary64) x) (sqrt.f64 (*.f64 x x))))
Compiler

Compiled 15 to 9 computations (40% saved)

regimes2.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

1 calls:

1.0ms
x
Results
AccuracySegmentsBranch
9.9%1x
Compiler

Compiled 2 to 1 computations (50% saved)

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1107
2187
3247
4297
5317
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
#s(literal 1 binary64)
Outputs
(-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))
#s(literal 1 binary64)

soundness185.0ms (5.8%)

Rules
302×fmsub-define
286×fnmadd-define
270×fmm-def
260×fnmadd-define
236×fnmsub-define
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
087
1246
2476
3856
41326
51946
62676
73066
83936
94756
104836
115046
126456
139136
149626
159746
09746
09133
120133
232133
349133
476133
5129133
6210133
7419133
81019133
91263133
101285133
111339133
121358133
131366133
01366133
Stop Event
done
iter limit
saturated
iter limit
saturated
Compiler

Compiled 24 to 17 computations (29.2% saved)

preprocess35.0ms (1.1%)

Compiler

Compiled 56 to 36 computations (35.7% saved)

end0.0ms (0%)

Profiling

Loading profile data...