Details

Time bar (total: 3.8s)

analyze135.0ms (3.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%50%50%2
0%50%50%3
0%50%50%4
0%50%50%5
6.2%31.2%62.5%6
9.4%28.1%62.5%7
14%17.2%68.8%8
14.8%16.4%68.8%9
17.6%10.1%72.3%10
18.1%9.2%72.7%11
19.6%5.5%74.9%12
20%4.8%75.2%13
20.7%2.8%76.5%14
Compiler

Compiled 23 to 20 computations (13% saved)

sample1.3s (32.9%)

Results
1.2s8256×body128valid
74.0ms593×body128invalid

preprocess37.0ms (1%)

Algorithm
egg-herbie
Rules
608×rule-a-*a1_binary64
608×rule-a--a0_binary64
608×rule-a-+a0_binary64
602×rule-a-/a1_binary64
164×rule-*a-bc-*nega-cb_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02248
114638
256338
3307038
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
(*.f64 (-.f64 rand (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 rand (/.f64 1 3))))) a)))
Outputs
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
(*.f64 (-.f64 a 1/3) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (-.f64 (*.f64 a 9) 3))) rand)))
(*.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
(*.f64 (-.f64 rand (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 rand (/.f64 1 3))))) a)))
(*.f64 (-.f64 rand 1/3) (+.f64 1 (*.f64 a (/.f64 1 (sqrt.f64 (-.f64 (*.f64 rand 9) 3))))))
(*.f64 (+.f64 rand -1/3) (+.f64 1 (/.f64 a (sqrt.f64 (fma.f64 rand 9 -3)))))
(*.f64 (-.f64 1/3 rand) (-.f64 -1 (/.f64 a (sqrt.f64 (fma.f64 9 rand -3)))))
Compiler

Compiled 22 to 19 computations (13.6% saved)

simplify22.0ms (0.6%)

Algorithm
egg-herbie
Rules
405×rule-*b+ac-+*ab*bc_binary64
321×rule-a-*a1_binary64
321×rule-a--a0_binary64
321×rule-a-+a0_binary64
318×rule-a-/a1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01524
19519
233119
3168819
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
Outputs
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
(*.f64 (-.f64 a 1/3) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (-.f64 (*.f64 a 9) 3))) rand)))
(*.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
0.1b
(*.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
Compiler

Compiled 109 to 91 computations (16.5% saved)

localize8.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a 9 -3)
0.1b
(sqrt.f64 (fma.f64 a 9 -3))
0.1b
(*.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
0.2b
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))

series15.0ms (0.4%)

Counts
4 → 50
Calls

18 calls:

TimeVariablePointExpression
2.0ms
a
@inf
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
2.0ms
a
@-inf
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
2.0ms
rand
@0
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
1.0ms
a
@0
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
1.0ms
a
@0
(*.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))

rewrite70.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
240×rule-nega--0a_binary64
240×rule-nega-/a-1_binary64
240×rule-nega-*a-1_binary64
145×add-sqr-sqrt_binary64
137×add-cbrt-cube_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
134241
2434241
Stop Event
node limit
Counts
4 → 157
Calls
Call 1
Inputs
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))
(*.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))
(sqrt.f64 (fma.f64 a 9 -3))
(fma.f64 a 9 -3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 rand (/.f64 1 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2) (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2) (*.f64 1 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 rand) (/.f64 (pow.f64 (cbrt.f64 rand) 2) (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (*.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 rand) (/.f64 (sqrt.f64 rand) (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 rand rand) (/.f64 1/2 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 rand rand))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2) (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 rand rand) (/.f64 1/2 (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a -1/3) (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)) (+.f64 a -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) (*.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/3 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) (*.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) a))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a -1/3) (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (/.f64 1 (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (/.f64 (fma.f64 a a (-.f64 1/9 (*.f64 a -1/3))) (+.f64 -1/27 (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 3) (pow.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3)) (+.f64 a -1/3)) (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1/27 (pow.f64 a 3)) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) (fma.f64 a a (-.f64 1/9 (*.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)) 3)) (+.f64 (pow.f64 (+.f64 a -1/3) 2) (-.f64 (*.f64 (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)) (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3))) (*.f64 (+.f64 a -1/3) (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 a -1/3)) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) 3) (pow.f64 (+.f64 a -1/3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a -1/3) (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (+.f64 a -1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) 2) (cbrt.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) (sqrt.f64 (*.f64 (+.f64 a -1/3) (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (log.f64 (+.f64 a -1/3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (fma.f64 a 9 -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (sqrt.f64 (fma.f64 a 9 -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (fma.f64 a 9 -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (fma.f64 a 9 -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sqrt.f64 (fma.f64 a 9 -3)) (sqrt.f64 (fma.f64 a 9 -3))) (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a 9 -3)) (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a 9 -3)) (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) (cbrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) (pow.f64 (fma.f64 a 9 -3) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 a 9 -3)) (sqrt.f64 (fma.f64 a 9 -3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 a 9 -3) 3/2) (fma.f64 a 9 -3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a 9 -3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a 9 -3) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a 9 -3)) (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) (pow.f64 (fma.f64 a 9 -3) 1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a 9 -3)) 1/2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (*.f64 a 9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 a 9 -3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 a 9 -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a 9) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (fma.f64 a 9 -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 a 9 -3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a 9 -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (fma.f64 a 9 -3) (fma.f64 a 9 -3)) (fma.f64 a 9 -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a 9 -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a 9 -3)) (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a 9 -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 a 9 -3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))) (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a 9 -3)) (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a 9 -3)) (*.f64 (sqrt.f64 (fma.f64 a 9 -3)) (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2) (cbrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) (*.f64 (sqrt.f64 (fma.f64 a 9 -3)) (pow.f64 (fma.f64 a 9 -3) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (fma.f64 a 9 -3) (fma.f64 a 9 -3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 a 9 -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (fma.f64 a 9 -3)) (/.f64 1 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 a 9 -3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 a 9 -3) 3) (pow.f64 (fma.f64 a 9 -3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a 9) 3) -27) (+.f64 (*.f64 (*.f64 a 9) (*.f64 a 9)) (-.f64 9 (*.f64 (*.f64 a 9) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a 9 -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a 9 -3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (fma.f64 a 9 -3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a 9 -3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) 3/2) (pow.f64 (fma.f64 a 9 -3) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a 9 -3)))))))

simplify32.0ms (0.8%)

Algorithm
egg-herbie
Rules
180×fma-def_binary64
172×fma-neg_binary64
149×rule-a-*a1_binary64
149×rule-a--a0_binary64
149×rule-a-+a0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
090969
1681969
22998969
Stop Event
unsound
Counts
207 → 191
Calls
Call 1
Inputs
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 -1/3))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a 3) (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))))) (sqrt.f64 -1/3))))))
(*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/6 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))))) (+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
a
a
(-.f64 a 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(sqrt.f64 -3)
(+.f64 (*.f64 9/2 (/.f64 a (sqrt.f64 -3))) (sqrt.f64 -3))
(+.f64 (*.f64 -81/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -3) 3))) (+.f64 (*.f64 9/2 (/.f64 a (sqrt.f64 -3))) (sqrt.f64 -3)))
(+.f64 (*.f64 -81/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -3) 3))) (+.f64 (*.f64 729/16 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 -3) 5))) (+.f64 (*.f64 9/2 (/.f64 a (sqrt.f64 -3))) (sqrt.f64 -3))))
-3
(-.f64 (*.f64 9 a) 3)
(-.f64 (*.f64 9 a) 3)
(-.f64 (*.f64 9 a) 3)
(*.f64 9 a)
(-.f64 (*.f64 9 a) 3)
(-.f64 (*.f64 9 a) 3)
(-.f64 (*.f64 9 a) 3)
(*.f64 9 a)
(-.f64 (*.f64 9 a) 3)
(-.f64 (*.f64 9 a) 3)
(-.f64 (*.f64 9 a) 3)
Outputs
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 -1/3))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3)))
(fma.f64 -1/2 (*.f64 rand (/.f64 a (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3))))
(fma.f64 -1/2 (*.f64 rand (/.f64 a (sqrt.f64 -1/3))) (fma.f64 -1/2 (*.f64 (*.f64 rand (*.f64 a a)) (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a 3) (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))))) (sqrt.f64 -1/3))))))
(fma.f64 -1/2 (*.f64 rand (/.f64 a (sqrt.f64 -1/3))) (fma.f64 -1/2 (*.f64 (*.f64 rand (*.f64 a a)) (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (fma.f64 rand (sqrt.f64 -1/3) (*.f64 -1/2 (*.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (/.f64 (pow.f64 a 3) (sqrt.f64 -1/3)))))))
(*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (/.f64 (*.f64 rand 1/6) (sqrt.f64 -1/3)))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1)))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (/.f64 (*.f64 rand 1/6) (sqrt.f64 -1/3)))) (fma.f64 (*.f64 a a) (fma.f64 1/6 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3)))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/6 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))))) (+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
(fma.f64 (pow.f64 a 3) (fma.f64 1/6 (*.f64 (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))) (/.f64 rand (sqrt.f64 -1/3))) (*.f64 -1/2 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))))) (fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (/.f64 (*.f64 rand 1/6) (sqrt.f64 -1/3)))) (fma.f64 (*.f64 a a) (fma.f64 1/6 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3)))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1)))))
a
a
(-.f64 a 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(sqrt.f64 -3)
(+.f64 (*.f64 9/2 (/.f64 a (sqrt.f64 -3))) (sqrt.f64 -3))
(fma.f64 9/2 (/.f64 a (sqrt.f64 -3)) (sqrt.f64 -3))
(+.f64 (*.f64 -81/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -3) 3))) (+.f64 (*.f64 9/2 (/.f64 a (sqrt.f64 -3))) (sqrt.f64 -3)))
(fma.f64 -81/8 (/.f64 (*.f64 a a) (pow.f64 (sqrt.f64 -3) 3)) (fma.f64 9/2 (/.f64 a (sqrt.f64 -3)) (sqrt.f64 -3)))
(+.f64 (*.f64 -81/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -3) 3))) (+.f64 (*.f64 729/16 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 -3) 5))) (+.f64 (*.f64 9/2 (/.f64 a (sqrt.f64 -3))) (sqrt.f64 -3))))
(fma.f64 -81/8 (/.f64 (*.f64 a a) (pow.f64 (sqrt.f64 -3) 3)) (fma.f64 729/16 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 -3) 5)) (fma.f64 9/2 (/.f64 a (sqrt.f64 -3)) (sqrt.f64 -3))))
-3
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(*.f64 9 a)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(*.f64 9 a)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)
(-.f64 (*.f64 9 a) 3)
(fma.f64 9 a -3)

prune489.0ms (12.8%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1847191
Fresh011
Picked101
Done000
Total1858193
Error
0b
Counts
193 → 8
Alt Table
StatusErrorProgram
0.1b
(*.f64 (+.f64 a -1/3) (+.f64 1 (*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))))
7.6b
(/.f64 (+.f64 a -1/3) (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.4b
(*.f64 (+.f64 a -1/3) (+.f64 1 (*.f64 (cbrt.f64 rand) (/.f64 (pow.f64 (cbrt.f64 rand) 2) (sqrt.f64 (fma.f64 a 9 -3))))))
0.3b
(*.f64 (+.f64 a -1/3) (+.f64 1 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))
9.6b
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
0.2b
(/.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (/.f64 1 (+.f64 a -1/3)))
0.1b
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
Compiler

Compiled 4143 to 3350 computations (19.1% saved)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
0.1b
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))
0.1b
(sqrt.f64 (fma.f64 a 9 -3))
0.2b
(/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))

series10.0ms (0.3%)

Counts
2 → 36
Calls

12 calls:

TimeVariablePointExpression
3.0ms
a
@0
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))
2.0ms
a
@-inf
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))
1.0ms
rand
@-inf
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))
1.0ms
a
@inf
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))
1.0ms
rand
@inf
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))

rewrite66.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
266×rule-nega-*a-1_binary64
160×add-sqr-sqrt_binary64
151×add-cbrt-cube_binary64
151×add-exp-log_binary64
151×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01435
137635
2490735
Stop Event
node limit
Counts
2 → 92
Calls
Call 1
Inputs
(/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1))
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) (cbrt.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -2)) (/.f64 1 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1/2) (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) 2) -1) (pow.f64 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) -1) (pow.f64 (hypot.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -2)) (/.f64 1 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1/2) (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (/.f64 1/2 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a -1/3) (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (*.f64 -1/3 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/3 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (*.f64 a (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (/.f64 1 (+.f64 a -1/3))) (/.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 1 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 1 (+.f64 a -1/3))) (/.f64 1 (/.f64 1 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)) (+.f64 a -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 1 (+.f64 a -1/3))) (/.f64 -1 (/.f64 1 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (+.f64 a -1/3)) (neg.f64 (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a -1/3) (/.f64 1 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 a -1/3)) (neg.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 a -1/3)) (-.f64 -1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 2) (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 a -1/3)) (/.f64 (pow.f64 (cbrt.f64 (+.f64 a -1/3)) 2) (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (/.f64 (pow.f64 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) 2) (/.f64 1 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) 2) (*.f64 (+.f64 a -1/3) (cbrt.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) (sqrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a -1/3)) (/.f64 (sqrt.f64 (+.f64 a -1/3)) (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (/.f64 (hypot.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (/.f64 1 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (*.f64 (+.f64 a -1/3) (hypot.f64 1 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a (+.f64 (+.f64 a -1/3) -1/3)) (*.f64 1/2 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 a (+.f64 (+.f64 a -1/3) -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (/.f64 1/2 (/.f64 1 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 a -1/3)) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (exp.f64 (neg.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a -1/3) (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 2) (cbrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) (sqrt.f64 (*.f64 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a (+.f64 (+.f64 a -1/3) -1/3)) (*.f64 1/2 (+.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (+.f64 a -1/3)) (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))

simplify33.0ms (0.9%)

Algorithm
egg-herbie
Rules
281×fma-neg_binary64
244×fma-def_binary64
242×rule-a-*a1_binary64
242×rule-a--a0_binary64
242×rule-a-+a0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01351503
110501503
Stop Event
node limit
Counts
128 → 129
Calls
Call 1
Inputs
1
(+.f64 (*.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1)
(+.f64 (*.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 1 (/.f64 (pow.f64 rand 2) (-.f64 (*.f64 9 a) 3))))
(+.f64 (*.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 rand 3) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 9 a) 3) 3))))) (/.f64 (pow.f64 rand 2) (-.f64 (*.f64 9 a) 3)))))
(*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 9 a) 3) (-.f64 3 (*.f64 9 a))) (pow.f64 rand 4)) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3))))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 9 a) 3) (-.f64 3 (*.f64 9 a))) (pow.f64 rand 4)) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3))))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 a rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))) (/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 rand 2) (*.f64 (pow.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) 2) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3)))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 a rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))) (/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 rand 2)) (*.f64 (pow.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) 2) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (pow.f64 (sqrt.f64 -1/3) 2))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 rand 2) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (pow.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) 2) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3)))))) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (sqrt.f64 -1/3)))) (*.f64 -1/2 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))))))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 rand 2) (*.f64 (pow.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) 2) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3)))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 a rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))) (/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
1
1
(*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/6 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))))) (+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
a
a
(-.f64 a 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
Outputs
1
(+.f64 (*.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1)
(fma.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3)))) 1)
(+.f64 (*.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 1 (/.f64 (pow.f64 rand 2) (-.f64 (*.f64 9 a) 3))))
(fma.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3)))) (+.f64 1 (/.f64 (*.f64 rand rand) (fma.f64 9 a -3))))
(+.f64 (*.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) (+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 rand 3) (sqrt.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 9 a) 3) 3))))) (/.f64 (pow.f64 rand 2) (-.f64 (*.f64 9 a) 3)))))
(fma.f64 -1 (*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3)))) (+.f64 1 (fma.f64 -1 (*.f64 (pow.f64 rand 3) (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 9 a -3) 3)))) (/.f64 (*.f64 rand rand) (fma.f64 9 a -3)))))
(*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))
(*.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3)))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(+.f64 (/.f64 3 (*.f64 rand rand)) (-.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3))) (*.f64 9 (/.f64 a (*.f64 rand rand)))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(-.f64 (+.f64 (/.f64 3 (*.f64 rand rand)) (fma.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3)) (*.f64 -1 (*.f64 (sqrt.f64 (fma.f64 9 a -3)) (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)))))) (*.f64 9 (/.f64 a (*.f64 rand rand))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 9 a) 3) (-.f64 3 (*.f64 9 a))) (pow.f64 rand 4)) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3))))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(+.f64 (/.f64 3 (*.f64 rand rand)) (-.f64 (+.f64 (fma.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3)) (*.f64 -1 (*.f64 (sqrt.f64 (fma.f64 9 a -3)) (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3))))) (*.f64 (-.f64 3 (*.f64 9 a)) (/.f64 (fma.f64 9 a -3) (pow.f64 rand 4)))) (*.f64 9 (/.f64 a (*.f64 rand rand)))))
(*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))
(*.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3)))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(+.f64 (/.f64 3 (*.f64 rand rand)) (-.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3))) (*.f64 9 (/.f64 a (*.f64 rand rand)))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3)))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(-.f64 (+.f64 (/.f64 3 (*.f64 rand rand)) (fma.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3)) (*.f64 -1 (*.f64 (sqrt.f64 (fma.f64 9 a -3)) (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)))))) (*.f64 9 (/.f64 a (*.f64 rand rand))))
(-.f64 (+.f64 (*.f64 3 (/.f64 1 (pow.f64 rand 2))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 9 a) 3) (-.f64 3 (*.f64 9 a))) (pow.f64 rand 4)) (+.f64 (*.f64 (/.f64 1 rand) (sqrt.f64 (-.f64 (*.f64 9 a) 3))) (*.f64 -1 (*.f64 (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3)) (sqrt.f64 (-.f64 (*.f64 9 a) 3))))))) (*.f64 9 (/.f64 a (pow.f64 rand 2))))
(+.f64 (/.f64 3 (*.f64 rand rand)) (-.f64 (+.f64 (fma.f64 (/.f64 1 rand) (sqrt.f64 (fma.f64 9 a -3)) (*.f64 -1 (*.f64 (sqrt.f64 (fma.f64 9 a -3)) (/.f64 (-.f64 3 (*.f64 9 a)) (pow.f64 rand 3))))) (*.f64 (-.f64 3 (*.f64 9 a)) (/.f64 (fma.f64 9 a -3) (pow.f64 rand 4)))) (*.f64 9 (/.f64 a (*.f64 rand rand)))))
(/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(/.f64 1 (fma.f64 rand (sqrt.f64 -1/3) 1))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 a rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))) (/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(fma.f64 1/2 (/.f64 (*.f64 rand a) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1)))) (/.f64 1 (fma.f64 rand (sqrt.f64 -1/3) 1)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 rand 2) (*.f64 (pow.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) 2) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3)))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 a rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))) (/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(fma.f64 -1 (*.f64 (*.f64 a a) (fma.f64 -1/4 (/.f64 (*.f64 rand rand) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (pow.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) 2) (pow.f64 (sqrt.f64 -1/3) 2)))) (*.f64 -1/2 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1)))))))) (fma.f64 1/2 (/.f64 (*.f64 rand a) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1)))) (/.f64 1 (fma.f64 rand (sqrt.f64 -1/3) 1))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 -1/4 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 rand 2)) (*.f64 (pow.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) 2) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (pow.f64 (sqrt.f64 -1/3) 2))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 rand 2) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (pow.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) 2) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3)))))) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (sqrt.f64 -1/3)))) (*.f64 -1/2 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))))))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 rand 2) (*.f64 (pow.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) 2) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (pow.f64 (sqrt.f64 -1/3) 2))))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3)))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 a rand) (*.f64 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1) (*.f64 (+.f64 1 (*.f64 rand (sqrt.f64 -1/3))) (sqrt.f64 -1/3))))) (/.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
(fma.f64 -1 (*.f64 (pow.f64 a 3) (fma.f64 -1/4 (*.f64 (*.f64 rand rand) (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (pow.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) 2) (pow.f64 (sqrt.f64 -1/3) 2))))) (fma.f64 1/2 (/.f64 (*.f64 rand (fma.f64 -1/4 (/.f64 (*.f64 rand rand) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (pow.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) 2) (pow.f64 (sqrt.f64 -1/3) 2)))) (*.f64 -1/2 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1)))))))) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1))) (*.f64 -1/2 (*.f64 (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))) (/.f64 rand (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1))))))))) (fma.f64 -1 (*.f64 (*.f64 a a) (fma.f64 -1/4 (/.f64 (*.f64 rand rand) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (pow.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) 2) (pow.f64 (sqrt.f64 -1/3) 2)))) (*.f64 -1/2 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1)))))))) (fma.f64 1/2 (/.f64 (*.f64 rand a) (*.f64 (fma.f64 rand (sqrt.f64 -1/3) 1) (*.f64 (sqrt.f64 -1/3) (fma.f64 rand (sqrt.f64 -1/3) 1)))) (/.f64 1 (fma.f64 rand (sqrt.f64 -1/3) 1)))))
1
1
(*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1)))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3))))) (fma.f64 (*.f64 a a) (fma.f64 1/6 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (/.f64 (*.f64 rand -1/2) (sqrt.f64 -1/3))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/6 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))))) (+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
(fma.f64 (pow.f64 a 3) (fma.f64 1/6 (*.f64 (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))) (/.f64 rand (sqrt.f64 -1/3))) (/.f64 -1/2 (/.f64 (sqrt.f64 -1/3) (*.f64 rand (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)))))) (fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3))))) (fma.f64 (*.f64 a a) (fma.f64 1/6 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (/.f64 (*.f64 rand -1/2) (sqrt.f64 -1/3))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1)))))
a
a
(-.f64 a 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))) 1/3)

prune469.0ms (12.3%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2210221
Fresh077
Picked011
Done000
Total2218229
Error
0b
Counts
229 → 8
Alt Table
StatusErrorProgram
0.1b
(*.f64 (+.f64 a -1/3) (+.f64 1 (*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))))
7.6b
(/.f64 (+.f64 a -1/3) (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.4b
(*.f64 (+.f64 a -1/3) (+.f64 1 (*.f64 (cbrt.f64 rand) (/.f64 (pow.f64 (cbrt.f64 rand) 2) (sqrt.f64 (fma.f64 a 9 -3))))))
0.3b
(*.f64 (+.f64 a -1/3) (+.f64 1 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))
9.6b
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
0.2b
(/.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (/.f64 1 (+.f64 a -1/3)))
0.1b
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
Compiler

Compiled 5749 to 4710 computations (18.1% saved)

localize11.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
0.2b
(*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)
0.3b
(/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3)))))

series20.0ms (0.5%)

Counts
4 → 41
Calls

18 calls:

TimeVariablePointExpression
3.0ms
a
@0
(sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))
3.0ms
a
@-inf
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
2.0ms
a
@0
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
1.0ms
a
@-inf
(/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3)))))
1.0ms
rand
@0
(*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)

rewrite75.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
259×rule-nega-*a-1_binary64
159×add-sqr-sqrt_binary64
150×add-cbrt-cube_binary64
150×add-exp-log_binary64
150×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01560
137643
2487943
Stop Event
node limit
Counts
4 → 156
Calls
Call 1
Inputs
(/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3)))))
(*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (/.f64 1 (sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))) rand)))
(sqrt.f64 (*.f64 9 (-.f64 a (/.f64 1 3))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (pow.f64 (fma.f64 a 9 -3) -1/2)) (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 (pow.f64 (sqrt.f64 (+.f64 a -1/3)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1)) (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2) (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/6 (sqrt.f64 (+.f64 a -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/6 (sqrt.f64 (+.f64 a -1/3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (pow.f64 (fma.f64 a 9 -3) -1/2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) -1) (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) -1) (pow.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a 9 -3) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a 9 -3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1)) (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2) (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (/.f64 1/6 (sqrt.f64 (+.f64 a -1/3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (/.f64 1 rand))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 rand (/.f64 1 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3) (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 2) (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (sqrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a -1/3) (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (+.f64 a -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (*.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 a a) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (*.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (+.f64 a 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a -1/3) (/.f64 1 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a -1/3) (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (/.f64 1 (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (/.f64 (fma.f64 a a (+.f64 1/9 (*.f64 a 1/3))) (-.f64 (pow.f64 a 3) 1/27)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 3) (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3)) (+.f64 a -1/3)) (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a 3) 1/27) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (fma.f64 a a (+.f64 1/9 (*.f64 a 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)) (+.f64 (pow.f64 (+.f64 a -1/3) 2) (-.f64 (*.f64 (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (*.f64 (+.f64 a -1/3) (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 a -1/3)) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 3) (pow.f64 (+.f64 a -1/3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a -1/3) (*.f64 (+.f64 a -1/3) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (+.f64 a -1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 2)) (cbrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) (sqrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (fma.f64 a 9 -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (sqrt.f64 (fma.f64 a 9 -3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (fma.f64 a 9 -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (fma.f64 a 9 -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sqrt.f64 (fma.f64 a 9 -3)) (sqrt.f64 (fma.f64 a 9 -3))) (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (sqrt.f64 (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 a 9 -3)) (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) (cbrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a 9 -3)) (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a -1/3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a -1/3)) (pow.f64 9 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) (pow.f64 (fma.f64 a 9 -3) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 -9) (sqrt.f64 (-.f64 1/3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2)) (sqrt.f64 (cbrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 a 9 -3)) (sqrt.f64 (fma.f64 a 9 -3))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 9 1/2) (sqrt.f64 (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 -9 1/2) (pow.f64 (-.f64 1/3 a) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2) 1/2) (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 a 9 -3) 3/2) (fma.f64 a 9 -3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a 9 -3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (fma.f64 a 9 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (fma.f64 a 9 -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a 9 -3) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (sqrt.f64 (+.f64 a -1/3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 a 9 -3)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 a 9 -3)) (cbrt.f64 (sqrt.f64 (fma.f64 a 9 -3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) 1/4) (pow.f64 (fma.f64 a 9 -3) 1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (fma.f64 a 9 -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a 9 -3)) 1/2))))))

simplify36.0ms (0.9%)

Algorithm
egg-herbie
Rules
217×fma-def_binary64
212×fma-neg_binary64
174×rule-*ab-*ba_binary64
169×rule-a-*a1_binary64
169×rule-a--a0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01111031
18201031
234371031
Stop Event
unsound
Counts
197 → 195
Calls
Call 1
Inputs
(*.f64 1/3 (sqrt.f64 -3))
(+.f64 (*.f64 -3/2 (/.f64 a (sqrt.f64 -3))) (*.f64 1/3 (sqrt.f64 -3)))
(+.f64 (*.f64 -3/2 (/.f64 a (sqrt.f64 -3))) (+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 a 2)) (sqrt.f64 -3))) (*.f64 1/3 (sqrt.f64 -3))))
(+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (pow.f64 a 3)) (sqrt.f64 -3))) (+.f64 (*.f64 -3/2 (/.f64 a (sqrt.f64 -3))) (+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 a 2)) (sqrt.f64 -3))) (*.f64 1/3 (sqrt.f64 -3)))))
(*.f64 1/3 (*.f64 rand (sqrt.f64 -3)))
(+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (*.f64 -3/2 (/.f64 (*.f64 a rand) (sqrt.f64 -3))))
(+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 (*.f64 -3/2 (/.f64 (*.f64 a rand) (sqrt.f64 -3))) (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -3)))))
(+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (*.f64 (pow.f64 a 3) rand)) (sqrt.f64 -3))) (+.f64 (*.f64 -3/2 (/.f64 (*.f64 a rand) (sqrt.f64 -3))) (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -3))))))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1))
(+.f64 (*.f64 a (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 1 (*.f64 1/2 (/.f64 rand (sqrt.f64 -3)))))) (*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1)))
(+.f64 (*.f64 a (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 1 (*.f64 1/2 (/.f64 rand (sqrt.f64 -3)))))) (+.f64 (*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1)) (*.f64 (+.f64 (*.f64 -3/2 (/.f64 rand (sqrt.f64 -3))) (*.f64 1/18 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) rand) (sqrt.f64 -3)))) (pow.f64 a 2))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/18 (/.f64 (*.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) rand) (sqrt.f64 -3))) (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) rand) (sqrt.f64 -3))))) (+.f64 (*.f64 a (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 1 (*.f64 1/2 (/.f64 rand (sqrt.f64 -3)))))) (+.f64 (*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1)) (*.f64 (+.f64 (*.f64 -3/2 (/.f64 rand (sqrt.f64 -3))) (*.f64 1/18 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) rand) (sqrt.f64 -3)))) (pow.f64 a 2)))))
a
(-.f64 a 1/3)
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand)) a) 1/3)
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand)) a) 1/3)
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand)) a) 1/3)
(*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(*.f64 3 (sqrt.f64 -1/3))
(+.f64 (*.f64 3/2 (/.f64 a (sqrt.f64 -1/3))) (*.f64 3 (sqrt.f64 -1/3)))
(+.f64 (*.f64 -3/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -1/3) 3))) (+.f64 (*.f64 3/2 (/.f64 a (sqrt.f64 -1/3))) (*.f64 3 (sqrt.f64 -1/3))))
(+.f64 (*.f64 -3/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -1/3) 3))) (+.f64 (*.f64 3/16 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 -1/3) 5))) (+.f64 (*.f64 3/2 (/.f64 a (sqrt.f64 -1/3))) (*.f64 3 (sqrt.f64 -1/3)))))
Outputs
(*.f64 1/3 (sqrt.f64 -3))
(+.f64 (*.f64 -3/2 (/.f64 a (sqrt.f64 -3))) (*.f64 1/3 (sqrt.f64 -3)))
(fma.f64 -3/2 (/.f64 a (sqrt.f64 -3)) (*.f64 1/3 (sqrt.f64 -3)))
(+.f64 (*.f64 -3/2 (/.f64 a (sqrt.f64 -3))) (+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 a 2)) (sqrt.f64 -3))) (*.f64 1/3 (sqrt.f64 -3))))
(fma.f64 -3/2 (/.f64 a (sqrt.f64 -3)) (fma.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (*.f64 a a)) (sqrt.f64 -3)) (*.f64 1/3 (sqrt.f64 -3))))
(+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (pow.f64 a 3)) (sqrt.f64 -3))) (+.f64 (*.f64 -3/2 (/.f64 a (sqrt.f64 -3))) (+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 a 2)) (sqrt.f64 -3))) (*.f64 1/3 (sqrt.f64 -3)))))
(fma.f64 -1/6 (*.f64 (pow.f64 a 3) (/.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (sqrt.f64 -3))) (fma.f64 -3/2 (/.f64 a (sqrt.f64 -3)) (fma.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (*.f64 a a)) (sqrt.f64 -3)) (*.f64 1/3 (sqrt.f64 -3)))))
(*.f64 1/3 (*.f64 rand (sqrt.f64 -3)))
(*.f64 1/3 (*.f64 (sqrt.f64 -3) rand))
(+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (*.f64 -3/2 (/.f64 (*.f64 a rand) (sqrt.f64 -3))))
(fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) (/.f64 -3/2 (/.f64 (sqrt.f64 -3) (*.f64 a rand))))
(+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 (*.f64 -3/2 (/.f64 (*.f64 a rand) (sqrt.f64 -3))) (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -3)))))
(fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) (fma.f64 -3/2 (*.f64 rand (/.f64 a (sqrt.f64 -3))) (*.f64 -1/6 (*.f64 (*.f64 (*.f64 a a) rand) (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (sqrt.f64 -3))))))
(+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 (*.f64 -1/6 (/.f64 (*.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (*.f64 (pow.f64 a 3) rand)) (sqrt.f64 -3))) (+.f64 (*.f64 -3/2 (/.f64 (*.f64 a rand) (sqrt.f64 -3))) (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -3))))))
(fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) (fma.f64 -1/6 (*.f64 (*.f64 (pow.f64 a 3) rand) (/.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (sqrt.f64 -3))) (fma.f64 -3/2 (*.f64 rand (/.f64 a (sqrt.f64 -3))) (*.f64 -1/6 (*.f64 (*.f64 (*.f64 a a) rand) (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (sqrt.f64 -3)))))))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 1/3 (*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) rand))
(*.f64 (sqrt.f64 (/.f64 1 (-.f64 a 1/3))) (*.f64 1/3 rand))
(*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1))
(*.f64 -1/3 (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) 1))
(+.f64 (*.f64 a (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 1 (*.f64 1/2 (/.f64 rand (sqrt.f64 -3)))))) (*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1)))
(fma.f64 a (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) (+.f64 1 (/.f64 (*.f64 rand 1/2) (sqrt.f64 -3)))) (*.f64 -1/3 (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) 1)))
(+.f64 (*.f64 a (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 1 (*.f64 1/2 (/.f64 rand (sqrt.f64 -3)))))) (+.f64 (*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1)) (*.f64 (+.f64 (*.f64 -3/2 (/.f64 rand (sqrt.f64 -3))) (*.f64 1/18 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) rand) (sqrt.f64 -3)))) (pow.f64 a 2))))
(fma.f64 a (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) (+.f64 1 (/.f64 (*.f64 rand 1/2) (sqrt.f64 -3)))) (fma.f64 -1/3 (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) 1) (*.f64 (*.f64 a a) (fma.f64 -3/2 (/.f64 rand (sqrt.f64 -3)) (*.f64 1/18 (*.f64 rand (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (sqrt.f64 -3))))))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/18 (/.f64 (*.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) rand) (sqrt.f64 -3))) (*.f64 -1/6 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) rand) (sqrt.f64 -3))))) (+.f64 (*.f64 a (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) (+.f64 1 (*.f64 1/2 (/.f64 rand (sqrt.f64 -3)))))) (+.f64 (*.f64 -1/3 (+.f64 (*.f64 1/3 (*.f64 rand (sqrt.f64 -3))) 1)) (*.f64 (+.f64 (*.f64 -3/2 (/.f64 rand (sqrt.f64 -3))) (*.f64 1/18 (/.f64 (*.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) rand) (sqrt.f64 -3)))) (pow.f64 a 2)))))
(fma.f64 (pow.f64 a 3) (fma.f64 1/18 (*.f64 rand (/.f64 (+.f64 81 (*.f64 9/2 (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (pow.f64 (sqrt.f64 -3) 2)))) (sqrt.f64 -3))) (*.f64 -1/6 (*.f64 rand (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (sqrt.f64 -3))))) (fma.f64 a (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) (+.f64 1 (/.f64 (*.f64 rand 1/2) (sqrt.f64 -3)))) (fma.f64 -1/3 (fma.f64 1/3 (*.f64 (sqrt.f64 -3) rand) 1) (*.f64 (*.f64 a a) (fma.f64 -3/2 (/.f64 rand (sqrt.f64 -3)) (*.f64 1/18 (*.f64 rand (/.f64 (+.f64 27 (pow.f64 (/.f64 -9/2 (sqrt.f64 -3)) 2)) (sqrt.f64 -3)))))))))
a
(-.f64 a 1/3)
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand)) a) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand)) a) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(-.f64 (+.f64 (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand)) a) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))
(*.f64 (sqrt.f64 (-.f64 a 1/3)) (*.f64 1/3 rand))
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))
(*.f64 (sqrt.f64 (-.f64 a 1/3)) (*.f64 1/3 rand))
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(-.f64 (+.f64 a (*.f64 1/3 (*.f64 (sqrt.f64 (-.f64 a 1/3)) rand))) 1/3)
(-.f64 (fma.f64 1/3 (*.f64 rand (sqrt.f64 (-.f64 a 1/3))) a) 1/3)
(*.f64 3 (sqrt.f64 -1/3))
(+.f64 (*.f64 3/2 (/.f64 a (sqrt.f64 -1/3))) (*.f64 3 (sqrt.f64 -1/3)))
(fma.f64 3/2 (/.f64 a (sqrt.f64 -1/3)) (*.f64 3 (sqrt.f64 -1/3)))
(+.f64 (*.f64 -3/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -1/3) 3))) (+.f64 (*.f64 3/2 (/.f64 a (sqrt.f64 -1/3))) (*.f64 3 (sqrt.f64 -1/3))))
(fma.f64 -3/8 (/.f64 (*.f64 a a) (pow.f64 (sqrt.f64 -1/3) 3)) (fma.f64 3/2 (/.f64 a (sqrt.f64 -1/3)) (*.f64 3 (sqrt.f64 -1/3))))
(+.f64 (*.f64 -3/8 (/.f64 (pow.f64 a 2) (pow.f64 (sqrt.f64 -1/3) 3))) (+.f64 (*.f64 3/16 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 -1/3) 5))) (+.f64 (*.f64 3/2 (/.f64 a (sqrt.f64 -1/3))) (*.f64 3 (sqrt.f64 -1/3)))))
(fma.f64 -3/8 (/.f64 (*.f64 a a) (pow.f64 (sqrt.f64 -1/3) 3)) (fma.f64 3/16 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 -1/3) 5)) (fma.f64 3/2 (/.f64 a (sqrt.f64 -1/3)) (*.f64 3 (sqrt.f64 -1/3)))))

prune404.0ms (10.6%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1941195
Fresh246
Picked101
Done011
Total1976203
Error
0b
Counts
203 → 6
Alt Table
StatusErrorProgram
9.6b
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))
0.2b
(/.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (/.f64 1 (+.f64 a -1/3)))
7.6b
(/.f64 (+.f64 a -1/3) (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.1b
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
0.3b
(*.f64 (+.f64 a -1/3) (+.f64 1 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))
Compiler

Compiled 4611 to 3843 computations (16.7% saved)

localize11.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a 9 -3)
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))
0.1b
(pow.f64 (fma.f64 a 9 -3) -1/2)
0.2b
(*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)

series7.0ms (0.2%)

Counts
3 → 46
Calls

15 calls:

TimeVariablePointExpression
1.0ms
a
@-inf
(pow.f64 (fma.f64 a 9 -3) -1/2)
1.0ms
a
@inf
(pow.f64 (fma.f64 a 9 -3) -1/2)
1.0ms
a
@0
(pow.f64 (fma.f64 a 9 -3) -1/2)
1.0ms
a
@0
(*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)
0.0ms
a
@-inf
(*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)

rewrite67.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
272×rule-nega-*a-1_binary64
167×add-sqr-sqrt_binary64
159×add-log-exp_binary64
159×log1p-expm1-u_binary64
159×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01639
139737
2491037
Stop Event
node limit
Counts
3 → 105
Calls
Call 1
Inputs
(*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)
(pow.f64 (fma.f64 a 9 -3) -1/2)
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)) (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (/.f64 1 rand))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 rand (/.f64 1 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 3) (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 rand) (pow.f64 (fma.f64 a 9 -3) -1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 rand) (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 rand (pow.f64 (fma.f64 a 9 -3) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 2)) (cbrt.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 rand) (pow.f64 (fma.f64 a 9 -3) -1/4)) (*.f64 (sqrt.f64 rand) (pow.f64 (fma.f64 a 9 -3) -1/4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (pow.f64 (fma.f64 a 9 -3) -1/2)) (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (pow.f64 1 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1)) (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 a 9 -3) -1/4) (pow.f64 (fma.f64 a 9 -3) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (pow.f64 (fma.f64 a 9 -3) -1/2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) 2) -1/2) (pow.f64 (cbrt.f64 (fma.f64 a 9 -3)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2) (pow.f64 (sqrt.f64 (fma.f64 a 9 -3)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 3) (pow.f64 (fma.f64 a 9 -3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a 9 -3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (fma.f64 a 9 -3) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1)) (cbrt.f64 (pow.f64 (fma.f64 a 9 -3) -1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/4) (pow.f64 (fma.f64 a 9 -3) -1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -1/2 (log.f64 (fma.f64 a 9 -3))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a -1/3) (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand)) (+.f64 a -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 a (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (*.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 a a) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (*.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (+.f64 a 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a -1/3) (/.f64 1 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a -1/3) (/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 2) (-.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand))) (+.f64 1 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (/.f64 1 (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (/.f64 (fma.f64 a a (+.f64 1/9 (*.f64 a 1/3))) (-.f64 (pow.f64 a 3) 1/27)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 3) (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 3)) (+.f64 a -1/3)) (+.f64 (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand) 2) (-.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a 3) 1/27) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (fma.f64 a a (+.f64 1/9 (*.f64 a 1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand)) 3)) (+.f64 (pow.f64 (+.f64 a -1/3) 2) (-.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand)) (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand))) (*.f64 (+.f64 a -1/3) (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) (+.f64 a -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 a -1/3) 3) (pow.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 3) (pow.f64 (+.f64 a -1/3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a -1/3) (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) (*.f64 (+.f64 a -1/3) rand)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1) (+.f64 a -1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 2) (cbrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) (sqrt.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 a -1/3) (fma.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand 1))))))))

simplify46.0ms (1.2%)

Algorithm
egg-herbie
Rules
268×fma-def_binary64
239×fma-neg_binary64
210×rule-*ab-*ba_binary64
203×rule-a-*a1_binary64
203×rule-a--a0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01291360
19531360
239011360
Stop Event
unsound
Counts
151 → 151
Calls
Call 1
Inputs
(*.f64 rand (sqrt.f64 -1/3))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a 3) (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))))) (sqrt.f64 -1/3))))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(sqrt.f64 -1/3)
(+.f64 (*.f64 3/2 (*.f64 a (sqrt.f64 -1/3))) (sqrt.f64 -1/3))
(+.f64 (*.f64 3/2 (*.f64 a (sqrt.f64 -1/3))) (+.f64 (sqrt.f64 -1/3) (*.f64 27/8 (*.f64 (pow.f64 a 2) (sqrt.f64 -1/3)))))
(+.f64 (*.f64 3/2 (*.f64 a (sqrt.f64 -1/3))) (+.f64 (sqrt.f64 -1/3) (+.f64 (*.f64 135/16 (*.f64 (pow.f64 a 3) (sqrt.f64 -1/3))) (*.f64 27/8 (*.f64 (pow.f64 a 2) (sqrt.f64 -1/3))))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) a)) (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) a)) (+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (pow.f64 a 2)))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) a)) (+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (+.f64 (*.f64 5/432 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (pow.f64 a 3))) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (pow.f64 a 2))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))))
(+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) a)))
(+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) a)) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (pow.f64 a 2)))))
(+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) a)) (+.f64 (*.f64 5/432 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (pow.f64 a 3))) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (pow.f64 a 2))))))
(*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/6 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))))) (+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
a
a
(-.f64 a 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
Outputs
(*.f64 rand (sqrt.f64 -1/3))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3)))
(fma.f64 -1/2 (/.f64 (*.f64 rand a) (sqrt.f64 -1/3)) (*.f64 rand (sqrt.f64 -1/3)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3))))
(fma.f64 -1/2 (/.f64 (*.f64 rand a) (sqrt.f64 -1/3)) (fma.f64 -1/2 (*.f64 (*.f64 rand (*.f64 a a)) (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (*.f64 rand (sqrt.f64 -1/3))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a rand) (sqrt.f64 -1/3))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (*.f64 (pow.f64 a 2) rand)) (sqrt.f64 -1/3))) (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a 3) (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))))) (sqrt.f64 -1/3))))))
(fma.f64 -1/2 (/.f64 (*.f64 rand a) (sqrt.f64 -1/3)) (fma.f64 -1/2 (*.f64 (*.f64 rand (*.f64 a a)) (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (fma.f64 rand (sqrt.f64 -1/3) (*.f64 -1/2 (*.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (/.f64 (pow.f64 a 3) (sqrt.f64 -1/3)))))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 rand (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))))
(sqrt.f64 -1/3)
(+.f64 (*.f64 3/2 (*.f64 a (sqrt.f64 -1/3))) (sqrt.f64 -1/3))
(fma.f64 3/2 (*.f64 (sqrt.f64 -1/3) a) (sqrt.f64 -1/3))
(+.f64 (*.f64 3/2 (*.f64 a (sqrt.f64 -1/3))) (+.f64 (sqrt.f64 -1/3) (*.f64 27/8 (*.f64 (pow.f64 a 2) (sqrt.f64 -1/3)))))
(fma.f64 3/2 (*.f64 (sqrt.f64 -1/3) a) (+.f64 (sqrt.f64 -1/3) (*.f64 (*.f64 a a) (*.f64 27/8 (sqrt.f64 -1/3)))))
(+.f64 (*.f64 3/2 (*.f64 a (sqrt.f64 -1/3))) (+.f64 (sqrt.f64 -1/3) (+.f64 (*.f64 135/16 (*.f64 (pow.f64 a 3) (sqrt.f64 -1/3))) (*.f64 27/8 (*.f64 (pow.f64 a 2) (sqrt.f64 -1/3))))))
(fma.f64 3/2 (*.f64 (sqrt.f64 -1/3) a) (+.f64 (sqrt.f64 -1/3) (fma.f64 135/16 (*.f64 (sqrt.f64 -1/3) (pow.f64 a 3)) (*.f64 (*.f64 a a) (*.f64 27/8 (sqrt.f64 -1/3))))))
(exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9))))
(pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9)))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) a)) (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))))
(fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) a) (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) a)) (+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (pow.f64 a 2)))))
(fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) a) (+.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) (*.f64 1/24 (/.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) (*.f64 a a)))))
(+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) a)) (+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (+.f64 (*.f64 5/432 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (pow.f64 a 3))) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 9)))) (pow.f64 a 2))))))
(fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) a) (+.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) (fma.f64 5/432 (/.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) (pow.f64 a 3)) (*.f64 1/24 (/.f64 (pow.f64 (exp.f64 -1/2) (fma.f64 -1 (neg.f64 (log.f64 a)) (log.f64 9))) (*.f64 a a))))))
(exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))))
(pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))
(+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) a)))
(+.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) (*.f64 1/6 (/.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) a)))
(+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) a)) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (pow.f64 a 2)))))
(+.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) a) (*.f64 1/24 (/.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) (*.f64 a a)))))
(+.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (+.f64 (*.f64 1/6 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) a)) (+.f64 (*.f64 5/432 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (pow.f64 a 3))) (*.f64 1/24 (/.f64 (exp.f64 (*.f64 -1/2 (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a)))))) (pow.f64 a 2))))))
(+.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) (fma.f64 1/6 (/.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) a) (fma.f64 5/432 (/.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) (pow.f64 a 3)) (*.f64 1/24 (/.f64 (pow.f64 (exp.f64 -1/2) (+.f64 (log.f64 -9) (*.f64 -1 (log.f64 (/.f64 -1 a))))) (*.f64 a a))))))
(*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))
(*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))
(fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1)))
(+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1))))
(fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3))))) (fma.f64 (*.f64 a a) (fma.f64 1/6 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3)))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 (*.f64 1/6 (/.f64 (*.f64 rand (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2))))) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))))) (+.f64 (*.f64 a (+.f64 1 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3)))))) (+.f64 (*.f64 (pow.f64 a 2) (+.f64 (*.f64 1/6 (/.f64 (*.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) rand) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3))))) (*.f64 -1/3 (+.f64 (*.f64 rand (sqrt.f64 -1/3)) 1)))))
(fma.f64 (pow.f64 a 3) (fma.f64 1/6 (*.f64 (+.f64 9 (*.f64 1/2 (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (pow.f64 (sqrt.f64 -1/3) 2)))) (/.f64 rand (sqrt.f64 -1/3))) (*.f64 -1/2 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))))) (fma.f64 a (+.f64 1 (fma.f64 rand (sqrt.f64 -1/3) (*.f64 1/6 (/.f64 rand (sqrt.f64 -1/3))))) (fma.f64 (*.f64 a a) (fma.f64 1/6 (*.f64 rand (/.f64 (+.f64 3 (pow.f64 (/.f64 -1/2 (sqrt.f64 -1/3)) 2)) (sqrt.f64 -1/3))) (*.f64 -1/2 (/.f64 rand (sqrt.f64 -1/3)))) (*.f64 -1/3 (fma.f64 rand (sqrt.f64 -1/3) 1)))))
a
a
(-.f64 a 1/3)
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))
(*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3)))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
(-.f64 (+.f64 a (*.f64 (*.f64 (-.f64 a 1/3) rand) (sqrt.f64 (/.f64 1 (-.f64 (*.f64 9 a) 3))))) 1/3)
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))

prune283.0ms (7.4%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1940194
Fresh044
Picked011
Done011
Total1946200
Error
0b
Counts
200 → 6
Alt Table
StatusErrorProgram
9.6b
(+.f64 a (-.f64 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 9 a -3))) (*.f64 rand (-.f64 a 1/3))) 1/3))
0.1b
(*.f64 (-.f64 a (/.f64 1 3)) (+.f64 1 (*.f64 (pow.f64 (fma.f64 a 9 -3) -1/2) rand)))
0.2b
(/.f64 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1) (/.f64 1 (+.f64 a -1/3)))
7.6b
(/.f64 (+.f64 a -1/3) (/.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 2) (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))))) (+.f64 1 (pow.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 3))))
0.1b
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
0.3b
(*.f64 (+.f64 a -1/3) (+.f64 1 (pow.f64 (cbrt.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3)))) 3)))
Compiler

Compiled 4799 to 3975 computations (17.2% saved)

regimes102.0ms (2.7%)

Accuracy

Total -14.6b remaining (-9935.6%)

Threshold costs -14.6b (-9935.6%)

Counts
43 → 1
Compiler

Compiled 680 to 536 computations (21.2% saved)

simplify1.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01422
11622
Stop Event
saturated
Calls
Call 1
Inputs
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))
Outputs
(/.f64 (+.f64 a -1/3) (/.f64 1 (+.f64 (/.f64 rand (sqrt.f64 (fma.f64 a 9 -3))) 1)))

end97.0ms (2.5%)

Stop Event
fuel
Compiler

Compiled 148 to 119 computations (19.6% saved)

Profiling

Loading profile data...