sqrt sqr

Time bar (total: 2.7s)

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)

sample1.8s (65.6%)

Results
1.1s4149×2valid
346.0ms4107×0valid
Precisions
Click to see histograms. Total time spent on operations: 977.0ms
ival-div: 314.0ms (32.1% of total)
ival-mult: 287.0ms (29.4% of total)
ival-sqrt: 181.0ms (18.5% of total)
ival-sub: 99.0ms (10.1% of total)
backward-pass: 81.0ms (8.3% of total)
const: 15.0ms (1.5% of total)
Bogosity

preprocess53.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
16318
213518
326418
452318
581318
698018
7101918
8102718
087
1226
2456
3826
41296
51916
62646
73036
83906
94726
104806
115016
126416
139096
149586
159706
09706
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)

explain204.0ms (7.5%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1200-1(2.3231123272126144e-158)(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
107.0ms272×2valid
22.0ms240×0valid
Compiler

Compiled 87 to 26 computations (70.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 86.0ms
ival-div: 48.0ms (55.8% of total)
ival-mult: 15.0ms (17.4% of total)
ival-sqrt: 9.0ms (10.5% of total)
backward-pass: 8.0ms (9.3% of total)
ival-sub: 6.0ms (7% of total)
const: 1.0ms (1.2% 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)

simplify23.0ms (0.9%)

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
1133714
1259614
1375414
1479914
1586814
1688414
088414
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

localize22.0ms (0.8%)

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
15.0ms256×0valid
Compiler

Compiled 16 to 6 computations (62.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-div: 2.0ms (37.4% of total)
ival-fabs: 2.0ms (37.4% of total)
ival-sub: 1.0ms (18.7% 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
0.0ms
x
@-inf
(- 1 (/ (fabs x) x))
0.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
(/ (fabs x) x)

rewrite244.0ms (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
223412
3483212
0805512
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 #s(literal 0 binary64) (/.f64 (fabs.f64 x) x)))
(+.f64 (-.f64 #s(literal 0 binary64) (/.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))))) (neg.f64 (/.f64 (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(fma.f64 #s(literal 1 binary64) (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 #s(literal 0 binary64) (/.f64 (fabs.f64 x) 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)))) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (neg.f64 (/.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x))) (+.f64 (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) x)) #s(literal -1 binary64))))
(neg.f64 (/.f64 (+.f64 #s(literal -1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x))) (+.f64 (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) x)) #s(literal -1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (pow.f64 (/.f64 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 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 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) (pow.f64 (/.f64 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64)))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64)))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 x x)))))))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x)))) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x)))))) #s(literal 1 binary64)) (*.f64 (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 x x))))) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x)))) #s(literal 1 binary64)) (*.f64 (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 x x))) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))))
(/.f64 (neg.f64 (+.f64 #s(literal -1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)))) (neg.f64 (+.f64 (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))))
(/.f64 (-.f64 (/.f64 (*.f64 x x) (*.f64 x x)) #s(literal 1 binary64)) (+.f64 (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x))) (/.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64)) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 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 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) (pow.f64 (/.f64 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x)) #s(literal 3/2 binary64))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 x x))))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))) (+.f64 #s(literal 1 binary64) (*.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (+.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 x x))))))
(/.f64 (*.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 (*.f64 x x) (*.f64 x x)) (/.f64 (*.f64 x x) (*.f64 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 x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x))) (/.f64 #s(literal 1 binary64) (+.f64 (-.f64 #s(literal 0 binary64) (/.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 #s(literal 1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x))))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 x x))) (-.f64 #s(literal 1 binary64) (/.f64 (*.f64 x x) (*.f64 x x)))) (-.f64 #s(literal 1 binary64) (/.f64 (fabs.f64 x) x)))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 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 (*.f64 x x) (*.f64 x x))) (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 (*.f64 x x) (*.f64 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 #s(literal 0 binary64) (/.f64 (fabs.f64 x) x)))
(-.f64 (/.f64 #s(literal 0 binary64) (-.f64 #s(literal 0 binary64) x)) (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) x)))
(neg.f64 (-.f64 #s(literal 0 binary64) (/.f64 (fabs.f64 x) 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 #s(literal 0 binary64) (/.f64 x (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 #s(literal 0 binary64) (/.f64 (fabs.f64 x) 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)))

simplify66.0ms (2.4%)

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
81018133
91261133
101283133
111337133
121356133
131364133
01364133
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)

eval12.0ms (0.4%)

Compiler

Compiled 2883 to 267 computations (90.7% saved)

prune122.0ms (4.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))
10.5%
#s(literal 1 binary64)
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify3.0ms (0.1%)

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)

localize6.0ms (0.2%)

Results
4.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

rewrite16.0ms (0.6%)

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)

prune2.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))
10.5%
#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
1.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)

regimes1.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
10.5%1x
Compiler

Compiled 2 to 1 computations (50% saved)

simplify7.0ms (0.3%)

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)

soundness105.0ms (3.9%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
087
1226
2456
3826
41296
51916
62646
73036
83906
94726
104806
115016
126416
139096
149586
159706
09706
09133
120133
232133
349133
476133
5129133
6210133
7419133
81018133
91261133
101283133
111337133
121356133
131364133
01364133
Stop Event
done
iter limit
saturated
iter limit
saturated
Compiler

Compiled 24 to 17 computations (29.2% saved)

preprocess33.0ms (1.2%)

Compiler

Compiled 56 to 36 computations (35.7% saved)

end0.0ms (0%)

Profiling

Loading profile data...