Details

Time bar (total: 3.2s)

analyze4.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
25%75%0%3
62.5%37.5%0%4
81.2%18.7%0%5
90.6%9.4%0%6
95.3%4.7%0%7
97.6%2.3%0%8
98.8%1.2%0%9
99.4%0.6%0%10
99.7%0.3%0%11
99.8%0.1%0%12
Compiler

Compiled 7 to 5 computations (28.6% saved)

sample643.0ms (20.2%)

Results
630.0ms8256×body256valid

preprocess20.0ms (0.6%)

Algorithm
egg-herbie
Rules
11×sub-neg_binary64
+-commutative_binary64
fma-def_binary64
div-sub_binary64
associate-+l-_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
197
2137
3197
4277
5377
6507
7687
8817
9847
10857
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(/.f64 x (-.f64 1 x))
Outputs
(/.f64 x (-.f64 1 x))
Compiler

Compiled 7 to 5 computations (28.6% saved)

simplify8.0ms (0.3%)

Algorithm
egg-herbie
Rules
11×sub-neg_binary64
+-commutative_binary64
fma-def_binary64
div-sub_binary64
associate-+l-_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
197
2137
3197
4277
5377
6507
7687
8817
9847
10857
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(/.f64 x (-.f64 1 x))
Outputs
(/.f64 x (-.f64 1 x))

eval0.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 x (-.f64 1 x))
Compiler

Compiled 6 to 4 computations (33.3% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(/.f64 x (-.f64 1 x))
Compiler

Compiled 11 to 7 computations (36.4% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite44.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
607×pow1_binary64
568×add-log-exp_binary64
568×log1p-expm1-u_binary64
568×expm1-log1p-u_binary64
557×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11087
214737
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(/.f64 x (-.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 x (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 1 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2) (cbrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) (sqrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (/.f64 x (cbrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (cbrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 1 x))) (/.f64 x (sqrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (-.f64 1 x))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (pow.f64 x 3))) (+.f64 1 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 x) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x (neg.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 x (-.f64 1 x))))))))

simplify52.0ms (1.6%)

Algorithm
egg-herbie
Rules
698×fma-neg_binary64
597×associate-/l*_binary64
562×associate-*l*_binary64
478×cancel-sign-sub-inv_binary64
445×associate-*r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
027150
176132
2220125
3597125
41842125
55601113
Stop Event
node limit
Counts
44 → 46
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3)))
(+.f64 x (*.f64 x (fma.f64 x x x)))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 4)))
(+.f64 (+.f64 x (pow.f64 x 3)) (fma.f64 x x (pow.f64 x 4)))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (fma.f64 x x 1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(-.f64 -1 (/.f64 1 x))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(+.f64 -1 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (-.f64 -1 (/.f64 1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))) (-.f64 -1 (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (-.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(*.f64 (-.f64 1 (/.f64 -1 (*.f64 x x))) (+.f64 -1 (/.f64 -1 x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(-.f64 -1 (/.f64 1 x))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(+.f64 -1 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (-.f64 -1 (/.f64 1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))) (-.f64 -1 (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (-.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(*.f64 (-.f64 1 (/.f64 -1 (*.f64 x x))) (+.f64 -1 (/.f64 -1 x)))

eval11.0ms (0.3%)

Compiler

Compiled 447 to 308 computations (31.1% saved)

prune9.0ms (0.3%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New40646
Fresh000
Picked011
Done000
Total40747
Error
0b
Counts
47 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 x (-.f64 1 x))
33.8b
(fma.f64 x x x)
0.1b
(*.f64 (/.f64 1 (-.f64 1 x)) x)
30.5b
-1
57.1b
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
15.1b
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
33.3b
x
Compiler

Compiled 45 to 31 computations (31.1% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (-.f64 1 x))
0.1b
(*.f64 (/.f64 1 (-.f64 1 x)) x)
Compiler

Compiled 18 to 13 computations (27.8% saved)

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(/.f64 1 (-.f64 1 x))
0.0ms
x
@0
(*.f64 (/.f64 1 (-.f64 1 x)) x)
0.0ms
x
@-inf
(*.f64 (/.f64 1 (-.f64 1 x)) x)
0.0ms
x
@-inf
(/.f64 1 (-.f64 1 x))
0.0ms
x
@0
(/.f64 1 (-.f64 1 x))

rewrite53.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
666×pow1_binary64
621×add-log-exp_binary64
621×log1p-expm1-u_binary64
621×expm1-log1p-u_binary64
609×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0614
113014
2169414
Stop Event
node limit
Counts
2 → 45
Calls
Call 1
Inputs
(*.f64 (/.f64 1 (-.f64 1 x)) x)
(/.f64 1 (-.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 x (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 x) 2) (/.f64 (-.f64 1 x) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 x) (/.f64 (-.f64 1 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (neg.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (sqrt.f64 (-.f64 1 x))) (sqrt.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x 1) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (cbrt.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -1) (neg.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (-.f64 1 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (/.f64 1 (-.f64 1 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 1 (-.f64 1 x)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 x (-.f64 1 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 1 (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (-.f64 1 x))) (cbrt.f64 (pow.f64 (-.f64 1 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 1 x) -2)) (/.f64 1 (cbrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 1 x) -1/2) (pow.f64 (-.f64 1 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 1 x)) 2) -1) (pow.f64 (cbrt.f64 (-.f64 1 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (-.f64 1 x)) -1) (pow.f64 (sqrt.f64 (-.f64 1 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (pow.f64 x 3))) (+.f64 1 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) (+.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (-.f64 1 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (-.f64 1 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 x) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 1 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 (neg.f64 x))))))))

simplify44.0ms (1.4%)

Algorithm
egg-herbie
Rules
774×fma-neg_binary64
535×associate-*l*_binary64
445×fma-def_binary64
443×associate-*r*_binary64
425×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038333
1112299
2345290
31021289
42833289
Stop Event
node limit
Counts
69 → 73
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
1
(+.f64 1 x)
(+.f64 1 (+.f64 (pow.f64 x 2) x))
(+.f64 1 (+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x)))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))))
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3)))
(+.f64 (fma.f64 x x x) (pow.f64 x 3))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 4)))
(+.f64 (+.f64 (fma.f64 x x x) (pow.f64 x 3)) (pow.f64 x 4))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (fma.f64 x x 1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(-.f64 -1 (/.f64 1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)))
(+.f64 (-.f64 -1 (/.f64 1 x)) (/.f64 -1 (*.f64 x x)))
(+.f64 -1 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(+.f64 -1 (-.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (+.f64 (-.f64 -1 (/.f64 1 x)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 3)))
(-.f64 (+.f64 -1 (/.f64 (/.f64 -1 x) x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(-.f64 -1 (/.f64 1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)))
(+.f64 (-.f64 -1 (/.f64 1 x)) (/.f64 -1 (*.f64 x x)))
(+.f64 -1 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(+.f64 -1 (-.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (+.f64 (-.f64 -1 (/.f64 1 x)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 3)))
(-.f64 (+.f64 -1 (/.f64 (/.f64 -1 x) x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
1
(+.f64 1 x)
(+.f64 x 1)
(+.f64 1 (+.f64 (pow.f64 x 2) x))
(+.f64 (+.f64 x (*.f64 x x)) 1)
(+.f64 (fma.f64 x x x) 1)
(+.f64 x (fma.f64 x x 1))
(+.f64 1 (+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x)))
(+.f64 (+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3))) 1)
(+.f64 (+.f64 (fma.f64 x x x) (pow.f64 x 3)) 1)
(+.f64 (fma.f64 x (fma.f64 x x x) x) 1)
(*.f64 (+.f64 x 1) (fma.f64 x x 1))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x))
(+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)) (/.f64 1 (pow.f64 x 3)))
(+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x)) (/.f64 -1 (pow.f64 x 3)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))) (/.f64 1 (pow.f64 x 4))))
(-.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 x 3))))
(+.f64 (+.f64 (-.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x))) (/.f64 -1 x)) (/.f64 -1 (pow.f64 x 3)))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 -1 (*.f64 x x)) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x)) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x))
(+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)) (/.f64 1 (pow.f64 x 3)))
(+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x)) (/.f64 -1 (pow.f64 x 3)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))) (/.f64 1 (pow.f64 x 4))))
(-.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 x 3))))
(+.f64 (+.f64 (-.f64 (/.f64 -1 (pow.f64 x 4)) (/.f64 1 (*.f64 x x))) (/.f64 -1 x)) (/.f64 -1 (pow.f64 x 3)))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 -1 (*.f64 x x)) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 (/.f64 -1 x) x) (/.f64 -1 x)) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))))

localize11.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
14.5b
(/.f64 x (-.f64 1 (*.f64 x x)))
Compiler

Compiled 32 to 16 computations (50% saved)

series3.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 x (-.f64 1 (*.f64 x x)))
1.0ms
x
@inf
(/.f64 x (-.f64 1 (*.f64 x x)))
0.0ms
x
@-inf
(/.f64 x (-.f64 1 (*.f64 x x)))
0.0ms
x
@0
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
0.0ms
x
@-inf
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))

rewrite69.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
677×prod-diff_binary64
467×log-prod_binary64
334×pow-prod-down_binary64
298×fma-def_binary64
240×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0826
118717
2282117
Stop Event
node limit
Counts
2 → 133
Calls
Call 1
Inputs
(/.f64 x (-.f64 1 (*.f64 x x)))
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 x (-.f64 1 (*.f64 x x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 1 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (*.f64 (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (pow.f64 (-.f64 (/.f64 1 x) x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1) (/.f64 (cbrt.f64 x) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) -2) (/.f64 x (cbrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -1/2) (/.f64 x (sqrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (pow.f64 x 6))) (+.f64 1 (fma.f64 x x (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (pow.f64 x 4))) (fma.f64 x x 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (/.f64 1 x) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 x 3) (pow.f64 (-.f64 1 (*.f64 x x)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (/.f64 1 x) x) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (-.f64 1 (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (-.f64 (/.f64 1 x) x))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 1) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 x (-.f64 1 x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 x (-.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 x (-.f64 1 x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 x (-.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 x (-.f64 1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 (*.f64 x x)) (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x 1) (-.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 (fma.f64 x x 1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x -1) (*.f64 (-.f64 (/.f64 1 x) x) (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 x x x)) (neg.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 x 3))) (*.f64 (-.f64 1 (*.f64 x x)) (-.f64 (fma.f64 x x 1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 x) (+.f64 1 (pow.f64 x 3))) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 (fma.f64 x x 1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 x x -1)) (*.f64 (-.f64 1 (*.f64 x x)) (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 x) (fma.f64 x x -1)) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (+.f64 x -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) x) (*.f64 (-.f64 (fma.f64 x x 1) x) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) x) (*.f64 (+.f64 x -1) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) 1) (*.f64 (-.f64 (fma.f64 x x 1) x) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) 1) (*.f64 (+.f64 x -1) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (neg.f64 x)) (*.f64 (-.f64 (fma.f64 x x 1) x) (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) (neg.f64 x)) (*.f64 (+.f64 x -1) (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (-.f64 (/.f64 1 x) x) -3)) (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (-.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2) (*.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x x) 1) (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x x) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (cbrt.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x x) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (sqrt.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 x) (+.f64 x 1)) (neg.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (/.f64 x (-.f64 1 (*.f64 x x)))) (-.f64 (fma.f64 x x 1) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) (/.f64 x (-.f64 1 (*.f64 x x)))) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 1 (pow.f64 x 3))) (-.f64 (fma.f64 x x 1) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (fma.f64 x x -1)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 1) (neg.f64 x)) (neg.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 (*.f64 x x)) (fma.f64 x x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x))))) (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 x (-.f64 1 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 1 (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) 1) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (/.f64 1 (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) x (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 1 (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 x (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (*.f64 (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) x) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2)) (*.f64 (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) 1) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 x (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) x) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) 1) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) x (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 1 (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 2) (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1) (/.f64 (cbrt.f64 x) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) -2) (/.f64 x (cbrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (-.f64 1 (*.f64 x x)) -1/2) (/.f64 x (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (pow.f64 x 6))) (+.f64 1 (fma.f64 x x (pow.f64 x 4))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (pow.f64 x 4))) (fma.f64 x x 1) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (sqrt.f64 x)) (sqrt.f64 x) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) -2))) (/.f64 1 (cbrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (-.f64 (/.f64 1 x) x) -1/2)) (pow.f64 (-.f64 (/.f64 1 x) x) -1/2) (/.f64 x (-.f64 1 (*.f64 x x))))))))

simplify49.0ms (1.5%)

Algorithm
egg-herbie
Rules
671×associate-*l*_binary64
623×fma-neg_binary64
572×fma-def_binary64
540×associate-*r*_binary64
390×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
045342
1132312
2399303
31155303
43304303
Stop Event
node limit
Counts
157 → 160
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 3) x)
(+.f64 (pow.f64 x 5) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 5) (+.f64 (pow.f64 x 7) (+.f64 (pow.f64 x 3) x)))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 7))))))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 7))))))
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
Outputs
x
(+.f64 (pow.f64 x 3) x)
(+.f64 x (pow.f64 x 3))
(+.f64 (pow.f64 x 5) (+.f64 (pow.f64 x 3) x))
(+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 5))
(+.f64 x (+.f64 (pow.f64 x 3) (pow.f64 x 5)))
(fma.f64 (fma.f64 x x 1) x (pow.f64 x 5))
(fma.f64 x (fma.f64 x x 1) (pow.f64 x 5))
(+.f64 (pow.f64 x 5) (+.f64 (pow.f64 x 7) (+.f64 (pow.f64 x 3) x)))
(+.f64 (pow.f64 x 5) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 7)))
(+.f64 (pow.f64 x 5) (+.f64 x (+.f64 (pow.f64 x 3) (pow.f64 x 7))))
(+.f64 (pow.f64 x 5) (fma.f64 (fma.f64 x x 1) x (pow.f64 x 7)))
(+.f64 (pow.f64 x 5) (fma.f64 x (fma.f64 x x 1) (pow.f64 x 7)))
(fma.f64 x (fma.f64 x x 1) (+.f64 (pow.f64 x 5) (pow.f64 x 7)))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 5))))
(+.f64 (+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x)) (/.f64 -1 (pow.f64 x 5)))
(+.f64 (/.f64 -1 (pow.f64 x 3)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 5))))
(+.f64 (/.f64 -1 x) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 7))))))
(-.f64 (/.f64 -1 (pow.f64 x 5)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 7))))
(+.f64 (+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x)) (-.f64 (/.f64 -1 (pow.f64 x 7)) (/.f64 1 (pow.f64 x 5))))
(-.f64 (/.f64 -1 (pow.f64 x 3)) (-.f64 (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 5))) (/.f64 -1 (pow.f64 x 7))))
(+.f64 (+.f64 (/.f64 -1 x) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5)))) (/.f64 -1 (pow.f64 x 7)))
(/.f64 -1 x)
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x))))
(neg.f64 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 5))))
(+.f64 (+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x)) (/.f64 -1 (pow.f64 x 5)))
(+.f64 (/.f64 -1 (pow.f64 x 3)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 5))))
(+.f64 (/.f64 -1 x) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 7))))))
(-.f64 (/.f64 -1 (pow.f64 x 5)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 7))))
(+.f64 (+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x)) (-.f64 (/.f64 -1 (pow.f64 x 7)) (/.f64 1 (pow.f64 x 5))))
(-.f64 (/.f64 -1 (pow.f64 x 3)) (-.f64 (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 5))) (/.f64 -1 (pow.f64 x 7))))
(+.f64 (+.f64 (/.f64 -1 x) (-.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5)))) (/.f64 -1 (pow.f64 x 7)))
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (+.f64 x (pow.f64 x 3)) (*.f64 x x))
(+.f64 x (*.f64 x (fma.f64 x x x)))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 4)))
(+.f64 (+.f64 x (pow.f64 x 3)) (fma.f64 x x (pow.f64 x 4)))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (fma.f64 x x 1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 (/.f64 -1 x) x)))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 1 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(+.f64 (+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 (/.f64 -1 x) x))) (/.f64 -1 (pow.f64 x 3)))
(+.f64 -1 (+.f64 (+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 -1 x) (/.f64 (/.f64 -1 x) x)) (+.f64 -1 (/.f64 -1 (pow.f64 x 3))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 (/.f64 -1 x) x)))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 1 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(+.f64 (+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 (/.f64 -1 x) x))) (/.f64 -1 (pow.f64 x 3)))
(+.f64 -1 (+.f64 (+.f64 (/.f64 -1 (pow.f64 x 3)) (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 -1 x) (/.f64 (/.f64 -1 x) x)) (+.f64 -1 (/.f64 -1 (pow.f64 x 3))))

localize15.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 x (-.f64 1 x))
0.1b
(pow.f64 (/.f64 x (-.f64 1 x)) 3)
19.9b
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
Compiler

Compiled 29 to 21 computations (27.6% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
1.0ms
x
@-inf
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
0.0ms
x
@0
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
0.0ms
x
@inf
(pow.f64 (/.f64 x (-.f64 1 x)) 3)
0.0ms
x
@0
(pow.f64 (/.f64 x (-.f64 1 x)) 3)

rewrite58.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
866×pow1_binary64
822×add-log-exp_binary64
821×log1p-expm1-u_binary64
821×expm1-log1p-u_binary64
804×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
120717
2225017
Stop Event
node limit
Counts
2 → 76
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
(pow.f64 (/.f64 x (-.f64 1 x)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 x (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 1 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) (pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2) (cbrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) (sqrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) 1/3) (cbrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3/2) 1/3) (pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (/.f64 x (cbrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (cbrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 1 x))) (/.f64 x (sqrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (-.f64 1 x))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (pow.f64 x 3))) (+.f64 1 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 (-.f64 1 x) x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 x) 2) (/.f64 (-.f64 1 x) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 x) (/.f64 (-.f64 1 x) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 x) (neg.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (/.f64 (-.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 x)) (neg.f64 (neg.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (sqrt.f64 (-.f64 1 x))) (sqrt.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x 1) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 x (pow.f64 (cbrt.f64 (-.f64 1 x)) 2)) (cbrt.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x (neg.f64 (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 x (-.f64 1 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (/.f64 x (-.f64 1 x)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 1 (-.f64 1 x)) (pow.f64 (/.f64 x (-.f64 1 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 x (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 1 x)) (pow.f64 (/.f64 x (-.f64 1 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2) (*.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) (pow.f64 (/.f64 x (-.f64 1 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) (*.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) (pow.f64 (/.f64 x (-.f64 1 x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 3) (pow.f64 (/.f64 1 (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 3) (/.f64 1 (pow.f64 (-.f64 1 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3/2) (pow.f64 (/.f64 x (-.f64 1 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2) 3) (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) 3) (pow.f64 (sqrt.f64 (/.f64 x (-.f64 1 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) x) (/.f64 1 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) 1) (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 x))) 2)) (cbrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) (sqrt.f64 (/.f64 x (-.f64 1 x)))) (sqrt.f64 (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (-.f64 1 x) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (/.f64 (-.f64 1 x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) (/.f64 (-.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x 3) (pow.f64 (-.f64 1 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (neg.f64 x) 3) (pow.f64 (neg.f64 (-.f64 1 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 x 3)) (neg.f64 (pow.f64 (-.f64 1 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (pow.f64 (/.f64 x (-.f64 1 x)) 2)) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 x) (pow.f64 (/.f64 x (-.f64 1 x)) 2)) (neg.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) x) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) 1) (/.f64 (-.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 2) (neg.f64 x)) (neg.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (/.f64 x (-.f64 1 x)))))))))

simplify50.0ms (1.6%)

Algorithm
egg-herbie
Rules
444×div-sub_binary64
376×associate-/l/_binary64
368×fma-neg_binary64
347×fma-def_binary64
276×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
078604
1253540
2899533
33906513
Stop Event
node limit
Counts
100 → 105
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x)))))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (*.f64 1/3 (/.f64 (-.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) (+.f64 10 (*.f64 2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)) 1/3) (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))))))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 3)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x)))))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (*.f64 -1/3 (/.f64 (-.f64 10 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)) 1/3) (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))))) (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 3)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))))
(pow.f64 x 3)
(+.f64 (*.f64 3 (pow.f64 x 4)) (pow.f64 x 3))
(+.f64 (*.f64 6 (pow.f64 x 5)) (+.f64 (*.f64 3 (pow.f64 x 4)) (pow.f64 x 3)))
(+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 (*.f64 6 (pow.f64 x 5)) (+.f64 (*.f64 3 (pow.f64 x 4)) (pow.f64 x 3))))
-1
(neg.f64 (+.f64 1 (*.f64 3 (/.f64 1 x))))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (*.f64 6 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 3))) (*.f64 6 (/.f64 1 (pow.f64 x 2)))))))
-1
(neg.f64 (+.f64 1 (*.f64 3 (/.f64 1 x))))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (*.f64 6 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 3))) (*.f64 6 (/.f64 1 (pow.f64 x 2)))))))
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3)))
(+.f64 (fma.f64 x x x) (pow.f64 x 3))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 4)))
(+.f64 (+.f64 x (pow.f64 x 3)) (fma.f64 x x (pow.f64 x 4)))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))
(+.f64 (cbrt.f64 -1) (neg.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) (/.f64 1 x))))
(-.f64 (cbrt.f64 -1) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x)))))
(fma.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))))) (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (cbrt.f64 -1) (neg.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) (/.f64 1 x)))))
(-.f64 (fma.f64 -1/3 (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 x (*.f64 x (pow.f64 (cbrt.f64 -1) 2)))) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x))
(-.f64 (fma.f64 (/.f64 -1/3 (*.f64 x x)) (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x))
(fma.f64 -1/3 (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (-.f64 (cbrt.f64 -1) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (*.f64 1/3 (/.f64 (-.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) (+.f64 10 (*.f64 2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)) 1/3) (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))))))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 3)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))))
(fma.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))))) (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (fma.f64 1/3 (/.f64 (-.f64 (-.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 10) (*.f64 (*.f64 2 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)))) (+.f64 6 (*.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))))))) (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (cbrt.f64 -1) (neg.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) (/.f64 1 x))))))
(fma.f64 -1/3 (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 x (*.f64 x (pow.f64 (cbrt.f64 -1) 2)))) (-.f64 (fma.f64 1/3 (/.f64 (-.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 (*.f64 2 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)))) (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) 10)) (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 -1) 2))) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)))
(fma.f64 1/3 (/.f64 (+.f64 (fma.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5))) -2) (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) -10) (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 -1) 2))) (-.f64 (fma.f64 (/.f64 -1/3 (*.f64 x x)) (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)))
(+.f64 (-.f64 (cbrt.f64 -1) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)) (*.f64 (/.f64 -1/3 (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (/.f64 (+.f64 10 (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5))) (*.f64 2 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6)) (/.f64 -1 (pow.f64 (cbrt.f64 -1) 2)))) x))))
(cbrt.f64 -1)
(+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))
(+.f64 (cbrt.f64 -1) (neg.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) (/.f64 1 x))))
(-.f64 (cbrt.f64 -1) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x)))))
(fma.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))))) (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (cbrt.f64 -1) (neg.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) (/.f64 1 x)))))
(-.f64 (fma.f64 -1/3 (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 x (*.f64 x (pow.f64 (cbrt.f64 -1) 2)))) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x))
(-.f64 (fma.f64 (/.f64 -1/3 (*.f64 x x)) (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x))
(fma.f64 -1/3 (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (-.f64 (cbrt.f64 -1) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)))
(+.f64 (*.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 2)))) (+.f64 (*.f64 -1/3 (/.f64 (-.f64 10 (+.f64 (*.f64 -2 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)) 1/3) (+.f64 6 (*.f64 3 (pow.f64 (/.f64 1 (cbrt.f64 -1)) 1/3))))) (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)))) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 x 3)))) (+.f64 (cbrt.f64 -1) (*.f64 -1 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 1/3) (/.f64 1 x))))))
(fma.f64 -1/3 (/.f64 (+.f64 6 (*.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))))) (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (fma.f64 1/3 (/.f64 (-.f64 (-.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) 10) (*.f64 (*.f64 2 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)))) (+.f64 6 (*.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))))))) (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (cbrt.f64 -1) (neg.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) (/.f64 1 x))))))
(fma.f64 -1/3 (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 x (*.f64 x (pow.f64 (cbrt.f64 -1) 2)))) (-.f64 (fma.f64 1/3 (/.f64 (-.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2)) (fma.f64 (*.f64 2 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5)))) (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) 10)) (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 -1) 2))) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)))
(fma.f64 1/3 (/.f64 (+.f64 (fma.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5))) -2) (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) -10) (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 -1) 2))) (-.f64 (fma.f64 (/.f64 -1/3 (*.f64 x x)) (/.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (pow.f64 (cbrt.f64 -1) 2)) (cbrt.f64 -1)) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)))
(+.f64 (-.f64 (cbrt.f64 -1) (/.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 2))) x)) (*.f64 (/.f64 -1/3 (*.f64 (*.f64 x x) (pow.f64 (cbrt.f64 -1) 2))) (+.f64 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6) (/.f64 (+.f64 10 (fma.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cbrt.f64 -1) 5))) (*.f64 2 (fma.f64 3 (cbrt.f64 (/.f64 1 (cbrt.f64 -1))) 6)) (/.f64 -1 (pow.f64 (cbrt.f64 -1) 2)))) x))))
(pow.f64 x 3)
(+.f64 (*.f64 3 (pow.f64 x 4)) (pow.f64 x 3))
(fma.f64 3 (pow.f64 x 4) (pow.f64 x 3))
(+.f64 (*.f64 6 (pow.f64 x 5)) (+.f64 (*.f64 3 (pow.f64 x 4)) (pow.f64 x 3)))
(fma.f64 6 (pow.f64 x 5) (fma.f64 3 (pow.f64 x 4) (pow.f64 x 3)))
(fma.f64 3 (pow.f64 x 4) (fma.f64 6 (pow.f64 x 5) (pow.f64 x 3)))
(+.f64 (*.f64 10 (pow.f64 x 6)) (+.f64 (*.f64 6 (pow.f64 x 5)) (+.f64 (*.f64 3 (pow.f64 x 4)) (pow.f64 x 3))))
(fma.f64 10 (pow.f64 x 6) (fma.f64 6 (pow.f64 x 5) (fma.f64 3 (pow.f64 x 4) (pow.f64 x 3))))
(fma.f64 6 (pow.f64 x 5) (fma.f64 10 (pow.f64 x 6) (fma.f64 3 (pow.f64 x 4) (pow.f64 x 3))))
-1
(neg.f64 (+.f64 1 (*.f64 3 (/.f64 1 x))))
(+.f64 -1 (neg.f64 (/.f64 3 x)))
(+.f64 -1 (/.f64 -3 x))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (*.f64 6 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 3 x) (+.f64 1 (/.f64 6 (*.f64 x x)))))
(-.f64 (+.f64 -1 (/.f64 -3 x)) (/.f64 6 (*.f64 x x)))
(+.f64 -1 (-.f64 (/.f64 -6 (*.f64 x x)) (/.f64 3 x)))
(+.f64 (+.f64 -1 (/.f64 -3 x)) (/.f64 -6 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 3))) (*.f64 6 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 3 x)) (+.f64 (/.f64 6 (*.f64 x x)) (/.f64 10 (pow.f64 x 3)))))
(-.f64 (+.f64 -1 (/.f64 -3 x)) (+.f64 (/.f64 6 (*.f64 x x)) (/.f64 10 (pow.f64 x 3))))
(+.f64 (/.f64 -3 x) (-.f64 (/.f64 -6 (*.f64 x x)) (+.f64 1 (/.f64 10 (pow.f64 x 3)))))
(+.f64 (+.f64 -1 (/.f64 -3 x)) (+.f64 (/.f64 -6 (*.f64 x x)) (/.f64 -10 (pow.f64 x 3))))
-1
(neg.f64 (+.f64 1 (*.f64 3 (/.f64 1 x))))
(+.f64 -1 (neg.f64 (/.f64 3 x)))
(+.f64 -1 (/.f64 -3 x))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (*.f64 6 (/.f64 1 (pow.f64 x 2))))))
(neg.f64 (+.f64 (/.f64 3 x) (+.f64 1 (/.f64 6 (*.f64 x x)))))
(-.f64 (+.f64 -1 (/.f64 -3 x)) (/.f64 6 (*.f64 x x)))
(+.f64 -1 (-.f64 (/.f64 -6 (*.f64 x x)) (/.f64 3 x)))
(+.f64 (+.f64 -1 (/.f64 -3 x)) (/.f64 -6 (*.f64 x x)))
(neg.f64 (+.f64 (*.f64 3 (/.f64 1 x)) (+.f64 1 (+.f64 (*.f64 10 (/.f64 1 (pow.f64 x 3))) (*.f64 6 (/.f64 1 (pow.f64 x 2)))))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 3 x)) (+.f64 (/.f64 6 (*.f64 x x)) (/.f64 10 (pow.f64 x 3)))))
(-.f64 (+.f64 -1 (/.f64 -3 x)) (+.f64 (/.f64 6 (*.f64 x x)) (/.f64 10 (pow.f64 x 3))))
(+.f64 (/.f64 -3 x) (-.f64 (/.f64 -6 (*.f64 x x)) (+.f64 1 (/.f64 10 (pow.f64 x 3)))))
(+.f64 (+.f64 -1 (/.f64 -3 x)) (+.f64 (/.f64 -6 (*.f64 x x)) (/.f64 -10 (pow.f64 x 3))))

localize3.0ms (0.1%)

Compiler

Compiled 6 to 2 computations (66.7% saved)

eval130.0ms (4.1%)

Compiler

Compiled 5505 to 3840 computations (30.2% saved)

prune51.0ms (1.6%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New3795384
Fresh202
Picked101
Done134
Total3838391
Error
0b
Counts
391 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
30.5b
-1
33.3b
x
0.1b
(*.f64 (/.f64 1 (-.f64 1 x)) x)
0.0b
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
0.0b
(/.f64 x (-.f64 1 x))
15.1b
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
33.8b
(*.f64 (+.f64 x 1) x)
15.5b
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))
Compiler

Compiled 63 to 41 computations (34.9% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 x 1) x)
Compiler

Compiled 11 to 7 computations (36.4% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(*.f64 (+.f64 x 1) x)
1.0ms
x
@-inf
(*.f64 (+.f64 x 1) x)
0.0ms
x
@0
(*.f64 (+.f64 x 1) x)

rewrite45.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
502×pow1_binary64
487×add-sqr-sqrt_binary64
468×log1p-expm1-u_binary64
468×expm1-log1p-u_binary64
467×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11037
213037
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 (+.f64 x 1) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 x (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) x) (fma.f64 x x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x -1) x) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 x x -1)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 x (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 x (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 x (*.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 x (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 x (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 x) (log.f64 x)))))))

simplify166.0ms (5.2%)

Algorithm
egg-herbie
Rules
1082×sqr-pow_binary64
739×fma-def_binary64
572×cube-prod_binary64
564×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0572
11154
22254
33954
48954
527354
695254
7212554
8254054
9275554
10299354
11335454
12378854
13429054
14487654
15559954
16644854
17684054
18713254
19741354
20748954
21752554
Stop Event
node limit
Counts
29 → 22
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)

localize20.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
0.0b
(-.f64 (/.f64 1 x) x)
0.0b
(/.f64 x (-.f64 (/.f64 1 x) x))
14.5b
(/.f64 x (-.f64 1 (*.f64 x x)))
Compiler

Compiled 48 to 25 computations (47.9% saved)

series3.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(/.f64 x (-.f64 (/.f64 1 x) x))
1.0ms
x
@0
(/.f64 x (-.f64 (/.f64 1 x) x))
0.0ms
x
@inf
(/.f64 x (-.f64 (/.f64 1 x) x))
0.0ms
x
@-inf
(-.f64 (/.f64 1 x) x)
0.0ms
x
@-inf
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))

rewrite99.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
683×fma-def_binary64
625×log-prod_binary64
316×fma-neg_binary64
296×log-div_binary64
218×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
124639
2411639
Stop Event
node limit
Counts
3 → 232
Calls
Call 1
Inputs
(/.f64 x (-.f64 (/.f64 1 x) x))
(-.f64 (/.f64 1 x) x)
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))) (cbrt.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 1 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 2) (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1) (/.f64 (cbrt.f64 x) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (/.f64 x (cbrt.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (sqrt.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (+.f64 (pow.f64 x -2) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (-.f64 (pow.f64 x -2) (*.f64 x x))) (+.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (pow.f64 x -2) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 x -2) 1) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x (neg.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (-.f64 (pow.f64 x -2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (-.f64 (pow.f64 x -2) 1))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (-.f64 (/.f64 1 x) x))) (cbrt.f64 (exp.f64 (-.f64 (/.f64 1 x) x))))) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (/.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (/.f64 1 x) x)))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (/.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 1 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (-.f64 (pow.f64 x -3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 x (/.f64 1 x)) (-.f64 (pow.f64 x -2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (+.f64 (pow.f64 x -2) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (+.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x -2) (*.f64 x x))) (neg.f64 (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x -3) (pow.f64 (neg.f64 x) 3)) (+.f64 (pow.f64 x -2) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (/.f64 1 x) (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -2) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (/.f64 1 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (/.f64 1 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x (/.f64 1 x)) (-.f64 (pow.f64 x -2) (*.f64 x x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (/.f64 1 x)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 1 x)) (/.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (/.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 x)) (exp.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 x)) (exp.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 x)) (+.f64 1 (expm1.f64 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 x)) (+.f64 1 (expm1.f64 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (/.f64 1 x) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 x) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (/.f64 1 x) x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1 (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) 1 (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) 1 (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) 1 (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (neg.f64 (cbrt.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 x)) (cbrt.f64 (pow.f64 x -2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 x)) (cbrt.f64 (pow.f64 x -2)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (/.f64 1 (cbrt.f64 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (/.f64 1 (cbrt.f64 x)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (neg.f64 (sqrt.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (pow.f64 x -1/2) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (pow.f64 x -1/2) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 x (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 x)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 x)) (cbrt.f64 (neg.f64 x))) (cbrt.f64 (neg.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 x)) (sqrt.f64 (neg.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (*.f64 x x))) (/.f64 1 (cbrt.f64 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (*.f64 x x))) (/.f64 1 (cbrt.f64 x)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (cbrt.f64 (*.f64 x x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (*.f64 x x))) (cbrt.f64 x) (/.f64 1 x))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) (/.f64 (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2) (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) (pow.f64 (cbrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) 2) (cbrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) (sqrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (-.f64 (/.f64 1 x) x) (*.f64 x (-.f64 1 (*.f64 x x)))) (/.f64 1 (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 3)) (/.f64 1 (fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2)) (/.f64 1 (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (fma.f64 x (-.f64 (/.f64 1 x) x) (*.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2)) (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x (-.f64 (/.f64 1 x) x) (*.f64 x (-.f64 1 (*.f64 x x)))) (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 3)) (fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 3)) (+.f64 (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2) (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (/.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (-.f64 (pow.f64 x -2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2)) (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 x (-.f64 (/.f64 1 x) x) (*.f64 x (-.f64 1 (*.f64 x x))))) (neg.f64 (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 3))) (neg.f64 (fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2))) (neg.f64 (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 1 (*.f64 x x)) (*.f64 (-.f64 (pow.f64 x -2) 1) x)) (*.f64 (-.f64 (pow.f64 x -2) 1) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (neg.f64 x) (-.f64 1 (*.f64 x x)) (*.f64 (neg.f64 (-.f64 (/.f64 1 x) x)) x)) (*.f64 (neg.f64 (-.f64 (/.f64 1 x) x)) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)) (*.f64 (-.f64 (/.f64 1 x) x) (/.f64 (-.f64 1 (*.f64 x x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (*.f64 (-.f64 (pow.f64 x -2) 1) 1)) (*.f64 (-.f64 (pow.f64 x -2) 1) (/.f64 (-.f64 1 (*.f64 x x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (neg.f64 x) (/.f64 (-.f64 1 (*.f64 x x)) x) (*.f64 (neg.f64 (-.f64 (/.f64 1 x) x)) 1)) (*.f64 (neg.f64 (-.f64 (/.f64 1 x) x)) (/.f64 (-.f64 1 (*.f64 x x)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x (neg.f64 (-.f64 1 (*.f64 x x))) (*.f64 (-.f64 (/.f64 1 x) x) (neg.f64 x))) (*.f64 (-.f64 (/.f64 1 x) x) (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 -1 (-.f64 1 (*.f64 x x)) (*.f64 (-.f64 (pow.f64 x -2) 1) (neg.f64 x))) (*.f64 (-.f64 (pow.f64 x -2) 1) (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (neg.f64 x) (neg.f64 (-.f64 1 (*.f64 x x))) (*.f64 (neg.f64 (-.f64 (/.f64 1 x) x)) (neg.f64 x))) (*.f64 (neg.f64 (-.f64 (/.f64 1 x) x)) (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (neg.f64 x) (-.f64 (/.f64 1 x) x) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) x)) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x (-.f64 (pow.f64 x -2) 1) (-.f64 1 (*.f64 x x))) (*.f64 (-.f64 1 (*.f64 x x)) (-.f64 (pow.f64 x -2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (-.f64 (pow.f64 x -2) 1) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) 1)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (pow.f64 x -2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (neg.f64 x) (-.f64 (pow.f64 x -2) 1) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) 1)) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 (pow.f64 x -2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x (neg.f64 (-.f64 (/.f64 1 x) x)) (*.f64 (-.f64 1 (*.f64 x x)) (neg.f64 x))) (*.f64 (-.f64 1 (*.f64 x x)) (neg.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 -1 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (neg.f64 x))) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (neg.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (neg.f64 x) (neg.f64 (-.f64 (/.f64 1 x) x)) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (neg.f64 x))) (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (neg.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2) (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2)) (-.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x (-.f64 (/.f64 1 x) x) (*.f64 x (-.f64 1 (*.f64 x x)))) (-.f64 (/.f64 1 x) x)) (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (fma.f64 x (-.f64 (/.f64 1 x) x) (*.f64 x (-.f64 1 (*.f64 x x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2)) (+.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 3) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) (-.f64 (pow.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 2) (pow.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))) (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))) (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x))))) (exp.f64 (/.f64 x (-.f64 (/.f64 1 x) x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (+.f64 1 (expm1.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 x (-.f64 1 (*.f64 x x))))) (+.f64 1 (expm1.f64 (/.f64 x (-.f64 (/.f64 1 x) x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 1 (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 1 (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) 1 (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (*.f64 x x))) 1 (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 1 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) 2) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) 2) (cbrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (pow.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 2) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) 2) (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 1 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (sqrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (sqrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) (/.f64 1 (neg.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) x (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) x (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1) (/.f64 (cbrt.f64 x) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1) (/.f64 (cbrt.f64 x) (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 2))) (/.f64 x (cbrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 2))) (cbrt.f64 (/.f64 x (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 2))) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (/.f64 x (cbrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (cbrt.f64 (/.f64 x (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (/.f64 (sqrt.f64 x) (cbrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (sqrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 (cbrt.f64 x) (sqrt.f64 (-.f64 (/.f64 1 x) x))) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (pow.f64 x 6))) (+.f64 1 (fma.f64 x x (pow.f64 x 4))) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 1 (pow.f64 x 4))) (fma.f64 x x 1) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (/.f64 x (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (-.f64 (pow.f64 x -2) (*.f64 x x))) (+.f64 x (/.f64 1 x)) (/.f64 x (-.f64 1 (*.f64 x x))))))))

simplify62.0ms (1.9%)

Algorithm
egg-herbie
Rules
846×times-frac_binary64
802×fma-def_binary64
747×unswap-sqr_binary64
560×fma-neg_binary64
304×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047412
1131367
2399360
31262355
44700355
Stop Event
node limit
Counts
268 → 265
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 4) (pow.f64 x 2))
(+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 2) (pow.f64 x 6)))
(+.f64 (pow.f64 x 8) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 2) (pow.f64 x 6))))
-1
(neg.f64 (+.f64 1 (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))))
(/.f64 1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 4) (pow.f64 x 2))
(+.f64 (*.f64 x x) (pow.f64 x 4))
(fma.f64 x x (pow.f64 x 4))
(+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 2) (pow.f64 x 6)))
(+.f64 (pow.f64 x 4) (+.f64 (*.f64 x x) (pow.f64 x 6)))
(+.f64 (pow.f64 x 4) (fma.f64 x x (pow.f64 x 6)))
(+.f64 (pow.f64 x 8) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 2) (pow.f64 x 6))))
(+.f64 (+.f64 (pow.f64 x 4) (+.f64 (*.f64 x x) (pow.f64 x 6))) (pow.f64 x 8))
(+.f64 (pow.f64 x 4) (+.f64 (fma.f64 x x (pow.f64 x 6)) (pow.f64 x 8)))
(*.f64 (fma.f64 x x 1) (fma.f64 x x (pow.f64 x 6)))
-1
(neg.f64 (+.f64 1 (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 1 (/.f64 1 (*.f64 x x))))
(-.f64 -1 (/.f64 1 (*.f64 x x)))
(+.f64 -1 (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 -1 (/.f64 1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(+.f64 -1 (-.f64 (/.f64 -1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))))))
(-.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6)))))
(-.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 -1 (/.f64 -1 (pow.f64 x 6)))) (/.f64 1 (pow.f64 x 4)))
(+.f64 (/.f64 -1 (*.f64 x x)) (-.f64 (+.f64 -1 (/.f64 -1 (pow.f64 x 6))) (/.f64 1 (pow.f64 x 4))))
-1
(neg.f64 (+.f64 1 (/.f64 1 (pow.f64 x 2))))
(neg.f64 (+.f64 1 (/.f64 1 (*.f64 x x))))
(-.f64 -1 (/.f64 1 (*.f64 x x)))
(+.f64 -1 (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (/.f64 1 (pow.f64 x 2)))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 -1 (/.f64 1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(+.f64 -1 (-.f64 (/.f64 -1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))))
(neg.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))))))
(-.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 1 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 6)))))
(-.f64 (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 -1 (/.f64 -1 (pow.f64 x 6)))) (/.f64 1 (pow.f64 x 4)))
(+.f64 (/.f64 -1 (*.f64 x x)) (-.f64 (+.f64 -1 (/.f64 -1 (pow.f64 x 6))) (/.f64 1 (pow.f64 x 4))))
(/.f64 1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3)))
(+.f64 x (fma.f64 x x (pow.f64 x 3)))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (pow.f64 x 4) (+.f64 x (pow.f64 x 3))))
(+.f64 (pow.f64 x 4) (+.f64 x (fma.f64 x x (pow.f64 x 3))))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (fma.f64 x x 1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(-.f64 -1 (/.f64 1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (/.f64 1 x)))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (+.f64 -1 (/.f64 -1 (*.f64 x x))) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(-.f64 -1 (/.f64 1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (/.f64 1 x)))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (+.f64 -1 (/.f64 -1 (*.f64 x x))) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(+.f64 -1 (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))

localize18.0ms (0.6%)

Local error

Found 1 expressions with local error:

NewErrorProgram
15.4b
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))
Compiler

Compiled 25 to 9 computations (64% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))
1.0ms
x
@-inf
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))
1.0ms
x
@inf
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))

rewrite76.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
809×pow1_binary64
756×add-log-exp_binary64
755×log1p-expm1-u_binary64
755×expm1-log1p-u_binary64
740×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0714
115214
2205114
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x x) (/.f64 1 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2) (*.f64 (cbrt.f64 (fma.f64 x x x)) (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 2)) (cbrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (sqrt.f64 x)) (*.f64 (hypot.f64 x (sqrt.f64 x)) (/.f64 1 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))) (sqrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 x x x)) (/.f64 1 (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 1 (*.f64 x x))) (fma.f64 x x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x x x)) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 x)) 1) (/.f64 (hypot.f64 x (sqrt.f64 x)) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (/.f64 (fma.f64 x x x) (cbrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (cbrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 x)) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2)) (/.f64 (hypot.f64 x (sqrt.f64 x)) (cbrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 (fma.f64 x x x) (sqrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2) (sqrt.f64 (-.f64 1 (*.f64 x x)))) (/.f64 (cbrt.f64 (fma.f64 x x x)) (sqrt.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (pow.f64 x 6))) (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (pow.f64 x 4))) (+.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 (*.f64 x x)) (fma.f64 x x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x x x) (neg.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 x x x) 3) (pow.f64 (-.f64 1 (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))))))))

simplify63.0ms (2%)

Algorithm
egg-herbie
Rules
698×fma-neg_binary64
597×associate-/l*_binary64
562×associate-*l*_binary64
478×cancel-sign-sub-inv_binary64
445×associate-*r*_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
027150
176132
2220125
3597125
41842125
55601113
Stop Event
node limit
Counts
45 → 47
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3)))
(+.f64 x (*.f64 x (fma.f64 x x x)))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 4)))
(+.f64 (+.f64 x (pow.f64 x 3)) (fma.f64 x x (pow.f64 x 4)))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (fma.f64 x x 1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(-.f64 -1 (/.f64 1 x))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(+.f64 -1 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (-.f64 -1 (/.f64 1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))) (-.f64 -1 (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (-.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(*.f64 (-.f64 1 (/.f64 -1 (*.f64 x x))) (+.f64 -1 (/.f64 -1 x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(-.f64 -1 (/.f64 1 x))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(+.f64 -1 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(neg.f64 (+.f64 (+.f64 1 (/.f64 1 (*.f64 x x))) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (-.f64 -1 (/.f64 1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 -1 x) (/.f64 1 (*.f64 x x))) (-.f64 -1 (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (-.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(*.f64 (-.f64 1 (/.f64 -1 (*.f64 x x))) (+.f64 -1 (/.f64 -1 x)))

eval173.0ms (5.4%)

Compiler

Compiled 8050 to 4628 computations (42.5% saved)

prune50.0ms (1.6%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New3893392
Fresh112
Picked101
Done235
Total3937400
Error
0b
Counts
400 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
33.3b
x
0.1b
(*.f64 (/.f64 1 (-.f64 1 x)) x)
29.8b
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
33.8b
(+.f64 (*.f64 x x) x)
0.0b
(/.f64 x (-.f64 1 x))
15.1b
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
30.5b
-1
Compiler

Compiled 66 to 42 computations (36.4% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x x) x)
Compiler

Compiled 10 to 3 computations (70% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 (*.f64 x x) x)
0.0ms
x
@inf
(+.f64 (*.f64 x x) x)
0.0ms
x
@-inf
(+.f64 (*.f64 x x) x)

rewrite43.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
500×pow1_binary64
488×add-sqr-sqrt_binary64
472×add-log-exp_binary64
471×log1p-expm1-u_binary64
471×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045
1925
213675
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) x)) (/.f64 (*.f64 x x) (-.f64 (*.f64 x x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x x)) (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x x)) 2) (cbrt.f64 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (sqrt.f64 x)) (hypot.f64 x (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 4) (*.f64 x x)) (/.f64 1 (-.f64 (*.f64 x x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))) (+.f64 (pow.f64 x 3) (pow.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 x x) x) (-.f64 (pow.f64 x 4) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6)) (+.f64 (*.f64 x x) (-.f64 (pow.f64 x 4) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 4) (*.f64 x x)) (-.f64 (*.f64 x x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 4) (*.f64 x x))) (neg.f64 (-.f64 (*.f64 x x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 x 4)) (-.f64 x (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (sqrt.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x x x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 x) (*.f64 x x))))))

simplify164.0ms (5.2%)

Algorithm
egg-herbie
Rules
1082×sqr-pow_binary64
739×fma-def_binary64
572×cube-prod_binary64
564×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0572
11154
22254
33954
48954
527354
695254
7212554
8254054
9275554
10299354
11335454
12378854
13429054
14487654
15559954
16644854
17684054
18713254
19741354
20748954
21752554
Stop Event
node limit
Counts
50 → 42
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) x)
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)

localize31.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)
0.1b
(*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x))
14.5b
(/.f64 (-.f64 1 (*.f64 x x)) x)
29.7b
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
Compiler

Compiled 92 to 48 computations (47.8% saved)

series10.0ms (0.3%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
5.0ms
x
@inf
(/.f64 (-.f64 1 (*.f64 x x)) x)
1.0ms
x
@0
(*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x))
1.0ms
x
@0
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
0.0ms
x
@-inf
(/.f64 (-.f64 1 (*.f64 x x)) x)
0.0ms
x
@inf
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))

rewrite99.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
874×fma-def_binary64
415×fma-neg_binary64
330×log-div_binary64
214×expm1-udef_binary64
213×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01285
129152
2525352
Stop Event
node limit
Counts
4 → 296
Calls
Call 1
Inputs
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
(/.f64 (-.f64 1 (*.f64 x x)) x)
(*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x))
(*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 1 x) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (/.f64 (-.f64 x (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))) (cbrt.f64 (pow.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 2)) (cbrt.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) 2) (*.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (/.f64 1 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (-.f64 (/.f64 1 x) x)) (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (*.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (/.f64 1 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (/.f64 1 (neg.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (-.f64 (/.f64 1 x) x) 2)) (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 1 x) x)) (/.f64 1 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) 2) 1) (/.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) 1) (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) 2) (-.f64 (/.f64 1 x) x)) (/.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) 2) (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (cbrt.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 1 x) x)) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (+.f64 (pow.f64 x -2) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 1 x) x)) (-.f64 (pow.f64 x -2) (*.f64 x x))) (+.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) (-.f64 (/.f64 1 x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (neg.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) 3) (pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (pow.f64 (-.f64 (/.f64 1 x) x) 2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 x) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 (/.f64 1 x) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x -3) (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (/.f64 (pow.f64 x 3) (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x -2) (+.f64 x (/.f64 1 x))) (/.f64 (*.f64 x x) (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 1 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 x x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (cbrt.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (*.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -1/2) (/.f64 (-.f64 1 (*.f64 x x)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 x) 2)) (/.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) 1) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 x) 2)) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (sqrt.f64 x)) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 (pow.f64 x -2))) (cbrt.f64 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 x x)) (pow.f64 x -1/2)) (pow.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (/.f64 1 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 1 (*.f64 x x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 (/.f64 1 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (/.f64 1 x)) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (+.f64 1 (expm1.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 1 x)) (/.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (/.f64 1 x))) (/.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 x)) (exp.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 x)) (exp.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 x)) (+.f64 1 (expm1.f64 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 x)) (+.f64 1 (expm1.f64 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 3) (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (/.f64 1 x) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 1 x) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (/.f64 1 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (/.f64 1 x) x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) 1 (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (-.f64 1 (*.f64 x x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (-.f64 1 (*.f64 x x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (-.f64 1 (*.f64 x x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) 1 (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) 1 (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) 1 (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 x x)) (/.f64 1 x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 x x)) (/.f64 1 x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 x x)) (/.f64 1 x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (neg.f64 (cbrt.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (pow.f64 x -2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 1 x)) (cbrt.f64 (pow.f64 x -2)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (cbrt.f64 (/.f64 1 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -2)) (cbrt.f64 (/.f64 1 x)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (/.f64 1 x) x)) (sqrt.f64 (-.f64 (/.f64 1 x) x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (neg.f64 (sqrt.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (*.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (*.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (*.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (pow.f64 x -1/2) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (pow.f64 x -1/2) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (/.f64 (-.f64 1 (*.f64 x x)) (sqrt.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (/.f64 (-.f64 1 (*.f64 x x)) (sqrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -1/2) (/.f64 (-.f64 1 (*.f64 x x)) (sqrt.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 x (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 x)) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 (neg.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 (neg.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (/.f64 1 (neg.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 x -2) (fma.f64 x x 1))) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (/.f64 1 (+.f64 x (/.f64 1 x))) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 x)) (cbrt.f64 (neg.f64 x))) (cbrt.f64 (neg.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 x)) (sqrt.f64 (neg.f64 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 x) 2) -1) (pow.f64 (cbrt.f64 x) -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 x) 2) -1) (pow.f64 (cbrt.f64 x) -1) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 x) -1) (pow.f64 (sqrt.f64 x) -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 x) -1) (pow.f64 (sqrt.f64 x) -1) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 x) 2)) (/.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 x) 2)) (/.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 x) 2)) (/.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) 1) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) 1) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) 1) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) 1) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) x) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 (-.f64 (/.f64 1 x) x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 x) 2)) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (cbrt.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 x) 2)) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (cbrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 x) 2)) (/.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) (cbrt.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (sqrt.f64 x)) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (sqrt.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (sqrt.f64 x)) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (sqrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 2) (sqrt.f64 x)) (/.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) (sqrt.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (-.f64 (pow.f64 x -1/2) (sqrt.f64 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 (pow.f64 x -2))) (cbrt.f64 (/.f64 1 x)) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 (pow.f64 x -2))) (cbrt.f64 (/.f64 1 x)) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 x x)) (cbrt.f64 (pow.f64 x -2))) (cbrt.f64 (/.f64 1 x)) (+.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 x x)) (pow.f64 x -1/2)) (pow.f64 x -1/2) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 x x)) (pow.f64 x -1/2)) (pow.f64 x -1/2) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 x x)) (pow.f64 x -1/2)) (pow.f64 x -1/2) (+.f64 (neg.f64 x) x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1 x) (-.f64 (/.f64 1 x) x)) (*.f64 (neg.f64 x) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (/.f64 1 x) x) (/.f64 1 x)) (*.f64 (-.f64 (/.f64 1 x) x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 1 x) x) (/.f64 1 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x x)) (*.f64 x (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x x)) (*.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x x)) (/.f64 x (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (*.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (*.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (*.f64 (/.f64 1 (-.f64 (/.f64 1 x) x)) (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (-.f64 (pow.f64 x -2) (*.f64 x x))) (*.f64 (+.f64 x (/.f64 1 x)) (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (neg.f64 (-.f64 1 (*.f64 x x)))) (*.f64 (neg.f64 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (*.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) 1) (*.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) 1) (*.f64 (+.f64 x (/.f64 1 x)) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (-.f64 1 (*.f64 x x))) (*.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (-.f64 1 (*.f64 x x))) (*.f64 (+.f64 x (/.f64 1 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (neg.f64 (-.f64 1 (*.f64 x x)))) (*.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (neg.f64 (-.f64 1 (*.f64 x x)))) (*.f64 (+.f64 x (/.f64 1 x)) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x x)) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (*.f64 x (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (*.f64 (neg.f64 x) (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x x)) (-.f64 (pow.f64 x -2) (*.f64 x x))) (fma.f64 x x 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 (pow.f64 x -2) (*.f64 x x))) (*.f64 (neg.f64 x) (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (*.f64 (+.f64 x (/.f64 1 x)) (+.f64 (pow.f64 x -2) (fma.f64 x x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (-.f64 (pow.f64 x -2) (*.f64 x x))) (*.f64 (+.f64 (pow.f64 x -2) (fma.f64 x x 1)) (+.f64 x (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) 1) (*.f64 (neg.f64 x) (/.f64 1 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 1 (*.f64 x x))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 x x)) (neg.f64 (-.f64 1 (*.f64 x x)))) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) x) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) (-.f64 (/.f64 1 x) x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -3) (pow.f64 x 3)) (-.f64 (/.f64 1 x) x)) (+.f64 (pow.f64 x -2) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x -2) (*.f64 x x)) (-.f64 (/.f64 1 x) x)) (+.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 x) x) (neg.f64 (-.f64 1 (*.f64 x x)))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 (pow.f64 x -3) (pow.f64 x 3))) (+.f64 (pow.f64 x -2) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 x) x) (-.f64 (pow.f64 x -2) (*.f64 x x))) (+.f64 x (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (/.f64 1 x) x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (-.f64 (/.f64 1 x) x)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (-.f64 (/.f64 1 x) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (-.f64 (/.f64 1 x) x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (-.f64 (/.f64 1 x) x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (-.f64 (/.f64 1 x) x) (*.f64 (neg.f64 x) (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (/.f64 1 x) x) (/.f64 1 x) (*.f64 (-.f64 (/.f64 1 x) x) (neg.f64 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (*.f64 x (neg.f64 x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 1 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 (fma.f64 x x (pow.f64 x 4)))) (/.f64 (pow.f64 x 6) (+.f64 1 (fma.f64 x x (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (fma.f64 x x 1)) (/.f64 (pow.f64 x 4) (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x (*.f64 x (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (fma.f64 x x (pow.f64 x 4))) (-.f64 1 (pow.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x x 1) (-.f64 1 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 1 (-.f64 (/.f64 1 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 x 6)) (+.f64 1 (fma.f64 x x (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 x 4)) (fma.f64 x x 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 x x))) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x (-.f64 1 (*.f64 x x)))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 x 6))) (neg.f64 (+.f64 1 (fma.f64 x x (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (pow.f64 x 4))) (neg.f64 (fma.f64 x x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x (neg.f64 x)) 3)) (+.f64 1 (-.f64 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x))) (*.f64 x (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 (*.f64 x (neg.f64 x)) (*.f64 x (neg.f64 x)))) (-.f64 1 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 x x))) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 x x))) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x (-.f64 1 (*.f64 x x))) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 1 (*.f64 x x))) x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (neg.f64 (-.f64 1 (*.f64 x x)))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 1 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 1 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 1 (*.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 1 (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 x (neg.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (neg.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 4)) (neg.f64 (pow.f64 (cbrt.f64 x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 x (neg.f64 x))) (cbrt.f64 (*.f64 x (neg.f64 x)))) (cbrt.f64 (*.f64 x (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (neg.f64 x))) (sqrt.f64 (*.f64 x (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 x 4))) (pow.f64 (cbrt.f64 x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x) 1) x 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x) (sqrt.f64 x)) (sqrt.f64 x) 1)))))

simplify67.0ms (2.1%)

Algorithm
egg-herbie
Rules
1032×fma-neg_binary64
634×associate-*l*_binary64
582×cancel-sign-sub-inv_binary64
496×associate-*r*_binary64
366×fma-def_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
035461
198400
2260393
3666393
42008393
56129389
Stop Event
node limit
Counts
344 → 329
Calls
Call 1
Inputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(/.f64 1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(*.f64 -1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(/.f64 1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 2)) 2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
1
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1 (pow.f64 x 2))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(*.f64 -1 (pow.f64 x 2))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
Outputs
x
(+.f64 (pow.f64 x 2) x)
(+.f64 x (*.f64 x x))
(fma.f64 x x x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 3) x))
(+.f64 (*.f64 x x) (+.f64 x (pow.f64 x 3)))
(+.f64 (fma.f64 x x x) (pow.f64 x 3))
(fma.f64 x (fma.f64 x x x) x)
(+.f64 (pow.f64 x 2) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 x 3) x)))
(+.f64 (*.f64 x x) (+.f64 (+.f64 x (pow.f64 x 3)) (pow.f64 x 4)))
(+.f64 (+.f64 x (pow.f64 x 3)) (fma.f64 x x (pow.f64 x 4)))
(*.f64 (fma.f64 x x 1) (fma.f64 x x x))
(*.f64 (fma.f64 x x x) (fma.f64 x x 1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (+.f64 -1 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (-.f64 (/.f64 -1 x) (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 3))))
(+.f64 (/.f64 -1 x) (fma.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 -1 x)) -1))
-1
(neg.f64 (+.f64 1 (/.f64 1 x)))
(+.f64 -1 (neg.f64 (/.f64 1 x)))
(+.f64 -1 (/.f64 -1 x))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))))
(-.f64 -1 (+.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x))))
(+.f64 -1 (+.f64 (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(neg.f64 (+.f64 1 (+.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(+.f64 -1 (neg.f64 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))))
(-.f64 -1 (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(-.f64 (+.f64 -1 (/.f64 -1 x)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))))
(+.f64 -1 (-.f64 (/.f64 -1 x) (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (+.f64 -1 (/.f64 -1 x)) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 3))))
(+.f64 (/.f64 -1 x) (fma.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 -1 x)) -1))
(/.f64 1 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(+.f64 (*.f64 -1 x) (/.f64 1 x))
(fma.f64 -1 x (/.f64 1 x))
(-.f64 (/.f64 1 x) x)
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) -2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 x x) -2))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 x x -2))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 x x) -2))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 x x -2))
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (pow.f64 x 2) 2)
(+.f64 (*.f64 x x) -2)
(fma.f64 x x -2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 x x) -2))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 x x -2))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 x x) -2))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 x x -2))
(pow.f64 x 2)
(*.f64 x x)
(-.f64 (pow.f64 x 2) 2)
(+.f64 (*.f64 x x) -2)
(fma.f64 x x -2)
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 x x) -2))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 x x -2))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 2)) (pow.f64 x 2)) 2)
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (*.f64 x x) -2))
(+.f64 (/.f64 1 (*.f64 x x)) (fma.f64 x x -2))
1
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(*.f64 -1 (pow.f64 x 2))
(neg.f64 (*.f64 x x))
(*.f64 x (neg.f64 x))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))
(+.f64 1 (*.f64 -1 (pow.f64 x 2)))
(+.f64 1 (neg.f64 (*.f64 x x)))
(-.f64 1 (*.f64 x x))
(neg.f64 (fma.f64 x x -1))

eval368.0ms (11.6%)

Compiler

Compiled 17014 to 9955 computations (41.5% saved)

prune77.0ms (2.4%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New5263529
Fresh202
Picked101
Done044
Total5297536
Error
0b
Counts
536 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(*.f64 (/.f64 1 (-.f64 1 x)) x)
33.3b
x
30.5b
-1
33.8b
(+.f64 (*.f64 x x) x)
29.8b
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
0.0b
(/.f64 x (-.f64 1 x))
15.1b
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
Compiler

Compiled 62 to 40 computations (35.5% saved)

regimes26.0ms (0.8%)

Counts
18 → 1
Calls
Call 1
Inputs
x
-1
x
-1
x
-1
x
(+.f64 (*.f64 x x) x)
(*.f64 (+.f64 x 1) x)
(/.f64 x (-.f64 1 x))
(*.f64 (/.f64 1 (-.f64 1 x)) x)
(*.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (+.f64 x 1))
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (-.f64 1 (*.f64 x x))) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
(/.f64 (+.f64 (-.f64 (/.f64 1 x) x) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) x)) (*.f64 (/.f64 (-.f64 1 (*.f64 x x)) x) (-.f64 (/.f64 1 x) x)))
(fma.f64 x x x)
(/.f64 (fma.f64 x x x) (-.f64 1 (*.f64 x x)))
(pow.f64 (pow.f64 (/.f64 x (-.f64 1 x)) 3) 1/3)
Outputs
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
Calls

3 calls:

11.0ms
x
6.0ms
(/.f64 x (-.f64 1 x))
5.0ms
(/.f64 x (-.f64 1 x))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(/.f64 x (-.f64 1 x))
0.0b1(/.f64 x (-.f64 1 x))
Compiler

Compiled 147 to 81 computations (44.9% saved)

regimes16.0ms (0.5%)

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

2 calls:

9.0ms
x
4.0ms
(/.f64 x (-.f64 1 x))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(/.f64 x (-.f64 1 x))
Compiler

Compiled 49 to 28 computations (42.9% saved)

regimes18.0ms (0.6%)

Counts
9 → 3
Calls
Call 1
Inputs
x
-1
x
-1
x
-1
x
(+.f64 (*.f64 x x) x)
(*.f64 (+.f64 x 1) x)
Outputs
-1
(+.f64 (*.f64 x x) x)
-1
Calls

1 calls:

17.0ms
x
Results
ErrorSegmentsBranch
1.6b3x
Compiler

Compiled 20 to 10 computations (50% saved)

bsearch28.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.10828565081453671
45.303768272135365
13.0ms
-823.1101857373302
-8.439775877822185e-5
Compiler

Compiled 10 to 7 computations (30% saved)

regimes17.0ms (0.5%)

Accuracy

Total -59.7b remaining (-2914.9%)

Threshold costs -59.7b (-2914.9%)

Counts
7 → 3
Calls
Call 1
Inputs
x
-1
x
-1
x
-1
x
Outputs
-1
x
-1
Calls

1 calls:

15.0ms
x
Results
ErrorSegmentsBranch
2.0b3x
Compiler

Compiled 10 to 5 computations (50% saved)

bsearch29.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.10828565081453671
45.303768272135365
15.0ms
-823.1101857373302
-8.439775877822185e-5
Compiler

Compiled 10 to 7 computations (30% saved)

simplify6.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
02366
13466
24266
34666
44866
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
(/.f64 x (-.f64 1 x))
(if (<=.f64 x -7240153761272461/8796093022208) -1 (if (<=.f64 x 1997517687430836992/18446744073709551616) (+.f64 (*.f64 x x) x) -1))
(if (<=.f64 x -7240153761272461/8796093022208) -1 (if (<=.f64 x 1997517687430836992/18446744073709551616) x -1))
x
Outputs
(+.f64 (/.f64 x (-.f64 (/.f64 1 x) x)) (/.f64 x (-.f64 1 (*.f64 x x))))
(/.f64 x (-.f64 1 x))
(if (<=.f64 x -7240153761272461/8796093022208) -1 (if (<=.f64 x 1997517687430836992/18446744073709551616) (+.f64 (*.f64 x x) x) -1))
(if (<=.f64 x -7240153761272461/8796093022208) -1 (if (<=.f64 x 7802803466526707/72057594037927936) (+.f64 x (*.f64 x x)) -1))
(if (<=.f64 x -7240153761272461/8796093022208) -1 (if (<=.f64 x 1997517687430836992/18446744073709551616) x -1))
(if (<=.f64 x -7240153761272461/8796093022208) -1 (if (<=.f64 x 7802803466526707/72057594037927936) x -1))
x
Compiler

Compiled 52 to 35 computations (32.7% saved)

soundness0.0ms (0%)

end38.0ms (1.2%)

Compiler

Compiled 48 to 30 computations (37.5% saved)

Profiling

Loading profile data...