ln(1 + x)

Time bar (total: 3.6s)

analyze3.0ms (0.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
33.3%25%50%0%0%25%0%3
66.7%50%25%0%0%25%0%4
83.3%62.5%12.5%0%0%25%0%5
91.7%68.7%6.2%0%0%25%0%6
95.8%71.8%3.1%0%0%25%0%7
97.9%73.4%1.6%0%0%25%0%8
99%74.2%0.8%0%0%25%0%9
99.5%74.6%0.4%0%0%25%0%10
99.7%74.8%0.2%0%0%25%0%11
99.9%74.9%0.1%0%0%25%0%12
Compiler

Compiled 6 to 5 computations (16.7% saved)

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

sample1.8s (49.1%)

Results
876.0ms4092×1valid
505.0ms1291×2valid
154.0ms2873×0valid
0.0ms0invalid
Precisions
Click to see histograms. Total time spent on operations: 1.1s
ival-log: 859.0ms (79.3% of total)
ival-add: 114.0ms (10.5% of total)
backward-pass: 92.0ms (8.5% of total)
const: 19.0ms (1.8% of total)
Bogosity

preprocess18.0ms (0.5%)

Algorithm
egg-herbie
Rules
52×sum3-define
20×sub-neg
16×fma-define
16×fmsub-define
14×+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
089
1209
2289
3389
4579
5779
6989
71189
81209
042
182
082
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
(log (+ 1 x))
Outputs
(log (+ 1 x))
(log1p.f64 x)
Call 2
Inputs
(log (+ 1 x))
(log (+ 1 (neg x)))
(neg (log (+ 1 (neg x))))
Outputs
(log (+ 1 x))
(log1p x)
(log (+ 1 (neg x)))
(log1p (neg x))
(neg (log (+ 1 (neg x))))
(neg (log1p (neg x)))

explain242.0ms (6.7%)

FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1670-0-(log.f64 (+.f64 #s(literal 1 binary64) x))
00-0-x
00-0-#s(literal 1 binary64)
00-0-(+.f64 #s(literal 1 binary64) x)
Results
61.0ms254×1valid
30.0ms78×2valid
11.0ms180×0valid
Compiler

Compiled 27 to 14 computations (48.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 62.0ms
ival-log: 47.0ms (75.9% of total)
backward-pass: 7.0ms (11.3% of total)
ival-add: 6.0ms (9.7% of total)
const: 1.0ms (1.6% of total)

eval0.0ms (0%)

Compiler

Compiled 3 to 2 computations (33.3% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(log1p.f64 x)
Compiler

Compiled 3 to 2 computations (33.3% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
cost-diff0
(log1p.f64 x)
Rules
+-lowering-+.f64
+-lowering-+.f32
log1p-lowering-log1p.f32
log-lowering-log.f64
log1p-lowering-log1p.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043
183
083
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(log (+ 1 x))
x
Outputs
(log (+ 1 x))
(log1p.f64 x)
x

localize52.0ms (1.4%)

Localize:

Found 1 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(log1p.f64 x)
Results
40.0ms166×5exit
5.0ms90×0valid
Compiler

Compiled 5 to 3 computations (40% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
compiled-spec: 8.0ms (43.2% of total)
ival-log: 5.0ms (27% of total)
backward-pass: 4.0ms (21.6% of total)
ival-add: 2.0ms (10.8% of total)
const: 0.0ms (0% of total)

series1.0ms (0%)

Counts
1 → 12
Calls
Call 1
Inputs
#<alt (log (+ 1 x))>
Outputs
#<alt x>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* x (- (* 1/3 x) 1/2))))>
#<alt (* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))>
#<alt (* -1 (log (/ 1 x)))>
#<alt (+ (* -1 (log (/ 1 x))) (/ 1 x))>
#<alt (- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))>
#<alt (- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))>
#<alt (+ (log -1) (* -1 (log (/ -1 x))))>
#<alt (+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))>
#<alt (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))>
#<alt (+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))>
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(log (+ 1 x))
0.0ms
x
@0
(log (+ 1 x))
0.0ms
x
@-inf
(log (+ 1 x))

rewrite29.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
+-lowering-+.f64
+-lowering-+.f32
log1p-lowering-log1p.f32
log1p-lowering-log1p.f64
log1p-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042
182
082
Stop Event
iter limit
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(log (+ 1 x))
Outputs
(log.f64 (+.f64 #s(literal 1 binary64) x))
(log1p.f64 x)

simplify214.0ms (6%)

Algorithm
egg-herbie
Rules
1970×fmsub-define
1904×sum3-define
1846×fma-lowering-fma.f32
1846×fma-lowering-fma.f64
1776×fmm-def
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
059133
1178111
2443105
31212103
4393096
0824596
Stop Event
iter limit
node limit
Counts
12 → 12
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))
(* -1 (log (/ 1 x)))
(+ (* -1 (log (/ 1 x))) (/ 1 x))
(- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))
(- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))
(+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))
(+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))
Outputs
x
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(* -1 (log (/ 1 x)))
(log.f64 x)
(+ (* -1 (log (/ 1 x))) (/ 1 x))
(+.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 x))
(- (+ (* -1 (log (/ 1 x))) (/ 1 x)) (/ 1/2 (pow x 2)))
(+.f64 (log.f64 x) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 #s(literal -1/2 binary64) x)) x))
(- (+ (* -1 (log (/ 1 x))) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (/ 1/2 (pow x 2)))
(+.f64 (log.f64 x) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1/3 binary64) x)) x)) x))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (-.f64 #s(literal 0 binary64) x)))
(+ (log -1) (+ (* -1 (log (/ -1 x))) (/ 1 x)))
(+.f64 (/.f64 #s(literal 1 binary64) x) (+.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (-.f64 #s(literal 0 binary64) x))))
(+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* 1/2 (/ 1 x)) 1) x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 #s(literal -1/2 binary64) x)) x)))
(+ (log -1) (+ (* -1 (log (/ -1 x))) (* -1 (/ (- (* -1 (/ (- (* 1/3 (/ 1 x)) 1/2) x)) 1) x))))
(+.f64 (log.f64 #s(literal -1 binary64)) (+.f64 (log.f64 (-.f64 #s(literal 0 binary64) x)) (/.f64 (+.f64 #s(literal 1 binary64) (/.f64 (+.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1/3 binary64) x)) x)) x)))

eval1.0ms (0%)

Compiler

Compiled 125 to 49 computations (60.8% saved)

prune3.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New10414
Fresh000
Picked011
Done000
Total10515
Accuracy
100.0%
Counts
15 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
65.7%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
66.7%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
65.6%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
100.0%
(log1p.f64 x)
66.5%
x
Compiler

Compiled 41 to 30 computations (26.8% saved)

simplify48.0ms (1.3%)

Algorithm
egg-herbie
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))
cost-diff0
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
cost-diff0
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
cost-diff0
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
cost-diff0
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
cost-diff0
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
cost-diff0
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
cost-diff0
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
cost-diff0
(*.f64 x #s(literal -1/2 binary64))
cost-diff0
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
cost-diff0
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
Rules
1430×fma-define
1068×fma-lowering-fma.f32
1068×fma-lowering-fma.f64
336×*-lowering-*.f32
336×*-lowering-*.f64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
020126
166106
2184103
3457103
4969103
51396103
61552103
71554103
01554103
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
x
(* x (+ 1 (* x -1/2)))
x
(+ 1 (* x -1/2))
1
(* x -1/2)
-1/2
(* x (+ 1 (* x (+ -1/2 (* x 1/3)))))
x
(+ 1 (* x (+ -1/2 (* x 1/3))))
1
(* x (+ -1/2 (* x 1/3)))
(+ -1/2 (* x 1/3))
-1/2
(* x 1/3)
1/3
(* x (+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))))
x
(+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4))))))
1
(* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))
(+ -1/2 (* x (+ 1/3 (* x -1/4))))
-1/2
(* x (+ 1/3 (* x -1/4)))
(+ 1/3 (* x -1/4))
1/3
(* x -1/4)
-1/4
Outputs
x
(* x (+ 1 (* x -1/2)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
x
(+ 1 (* x -1/2))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
1
#s(literal 1 binary64)
(* x -1/2)
(*.f64 x #s(literal -1/2 binary64))
-1/2
#s(literal -1/2 binary64)
(* x (+ 1 (* x (+ -1/2 (* x 1/3)))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
x
(+ 1 (* x (+ -1/2 (* x 1/3))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
1
#s(literal 1 binary64)
(* x (+ -1/2 (* x 1/3)))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(+ -1/2 (* x 1/3))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
-1/2
#s(literal -1/2 binary64)
(* x 1/3)
(*.f64 x #s(literal 1/3 binary64))
1/3
#s(literal 1/3 binary64)
(* x (+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
x
(+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4))))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
1
#s(literal 1 binary64)
(* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(+ -1/2 (* x (+ 1/3 (* x -1/4))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))
-1/2
#s(literal -1/2 binary64)
(* x (+ 1/3 (* x -1/4)))
(*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))
(+ 1/3 (* x -1/4))
(+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))
1/3
#s(literal 1/3 binary64)
(* x -1/4)
(*.f64 x #s(literal -1/4 binary64))
-1/4
#s(literal -1/4 binary64)

localize114.0ms (3.2%)

Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))
accuracy100.0%
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
accuracy100.0%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
accuracy99.7%
(*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))
accuracy100.0%
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
accuracy100.0%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
accuracy99.9%
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
accuracy99.5%
(*.f64 x #s(literal 1/3 binary64))
accuracy100.0%
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
accuracy100.0%
(*.f64 x #s(literal -1/2 binary64))
accuracy100.0%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
Results
81.0ms256×0valid
Compiler

Compiled 128 to 21 computations (83.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-mult: 16.0ms (53.7% of total)
ival-add: 8.0ms (26.9% of total)
...c/correct-round.rkt:119:19: 4.0ms (13.4% of total)
const: 1.0ms (3.4% of total)
backward-pass: 0.0ms (0% of total)

series14.0ms (0.4%)

Counts
14 → 168
Calls
Call 1
Inputs
#<alt (* x (+ 1 (* x -1/2)))>
#<alt (+ 1 (* x -1/2))>
#<alt (* x -1/2)>
#<alt (* x (+ 1 (* x (+ -1/2 (* x 1/3)))))>
#<alt (+ 1 (* x (+ -1/2 (* x 1/3))))>
#<alt (* x (+ -1/2 (* x 1/3)))>
#<alt (+ -1/2 (* x 1/3))>
#<alt (* x (+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))))>
#<alt (+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4))))))>
#<alt (* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))>
#<alt (+ -1/2 (* x (+ 1/3 (* x -1/4))))>
#<alt (* x 1/3)>
#<alt (* x (+ 1/3 (* x -1/4)))>
#<alt (+ 1/3 (* x -1/4))>
Outputs
#<alt x>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* -1/2 (pow x 2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt 1>
#<alt (+ 1 (* -1/2 x))>
#<alt (+ 1 (* -1/2 x))>
#<alt (+ 1 (* -1/2 x))>
#<alt (* -1/2 x)>
#<alt (* x (- (/ 1 x) 1/2))>
#<alt (* x (- (/ 1 x) 1/2))>
#<alt (* x (- (/ 1 x) 1/2))>
#<alt (* -1/2 x)>
#<alt (* -1 (* x (- 1/2 (/ 1 x))))>
#<alt (* -1 (* x (- 1/2 (/ 1 x))))>
#<alt (* -1 (* x (- 1/2 (/ 1 x))))>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt (* -1/2 x)>
#<alt x>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* x (- (* 1/3 x) 1/2))))>
#<alt (* x (+ 1 (* x (- (* 1/3 x) 1/2))))>
#<alt (* 1/3 (pow x 3))>
#<alt (* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))>
#<alt (* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))>
#<alt (* 1/3 (pow x 3))>
#<alt (* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))>
#<alt (* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))>
#<alt 1>
#<alt (+ 1 (* -1/2 x))>
#<alt (+ 1 (* x (- (* 1/3 x) 1/2)))>
#<alt (+ 1 (* x (- (* 1/3 x) 1/2)))>
#<alt (* 1/3 (pow x 2))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))>
#<alt (* 1/3 (pow x 2))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))))>
#<alt (* (pow x 2) (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))))>
#<alt (* -1/2 x)>
#<alt (* x (- (* 1/3 x) 1/2))>
#<alt (* x (- (* 1/3 x) 1/2))>
#<alt (* x (- (* 1/3 x) 1/2))>
#<alt (* 1/3 (pow x 2))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* 1/3 (pow x 2))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt -1/2>
#<alt (- (* 1/3 x) 1/2)>
#<alt (- (* 1/3 x) 1/2)>
#<alt (- (* 1/3 x) 1/2)>
#<alt (* 1/3 x)>
#<alt (* x (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* x (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* x (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* 1/3 x)>
#<alt (* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt x>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* x (- (* 1/3 x) 1/2))))>
#<alt (* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))>
#<alt (* -1/4 (pow x 4))>
#<alt (* (pow x 4) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 4) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* (pow x 4) (- (+ (* 1/3 (/ 1 x)) (/ 1 (pow x 3))) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* -1/4 (pow x 4))>
#<alt (* (pow x 4) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 4) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))>
#<alt (* (pow x 4) (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3) x)) 1/4))>
#<alt 1>
#<alt (+ 1 (* -1/2 x))>
#<alt (+ 1 (* x (- (* 1/3 x) 1/2)))>
#<alt (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2)))>
#<alt (* -1/4 (pow x 3))>
#<alt (* (pow x 3) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* (pow x 3) (- (+ (* 1/3 (/ 1 x)) (/ 1 (pow x 3))) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* -1/4 (pow x 3))>
#<alt (* -1 (* (pow x 3) (- 1/4 (* 1/3 (/ 1 x)))))>
#<alt (* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))>
#<alt (* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))) x)))))>
#<alt (* -1/2 x)>
#<alt (* x (- (* 1/3 x) 1/2))>
#<alt (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))>
#<alt (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))>
#<alt (* -1/4 (pow x 3))>
#<alt (* (pow x 3) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* -1/4 (pow x 3))>
#<alt (* -1 (* (pow x 3) (- 1/4 (* 1/3 (/ 1 x)))))>
#<alt (* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))>
#<alt (* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))>
#<alt -1/2>
#<alt (- (* 1/3 x) 1/2)>
#<alt (- (* x (+ 1/3 (* -1/4 x))) 1/2)>
#<alt (- (* x (+ 1/3 (* -1/4 x))) 1/2)>
#<alt (* -1/4 (pow x 2))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))>
#<alt (* -1/4 (pow x 2))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 2) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))>
#<alt (* (pow x 2) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* x (+ 1/3 (* -1/4 x)))>
#<alt (* x (+ 1/3 (* -1/4 x)))>
#<alt (* x (+ 1/3 (* -1/4 x)))>
#<alt (* -1/4 (pow x 2))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* -1/4 (pow x 2))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))>
#<alt 1/3>
#<alt (+ 1/3 (* -1/4 x))>
#<alt (+ 1/3 (* -1/4 x))>
#<alt (+ 1/3 (* -1/4 x))>
#<alt (* -1/4 x)>
#<alt (* x (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* x (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* x (- (* 1/3 (/ 1 x)) 1/4))>
#<alt (* -1/4 x)>
#<alt (* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))>
#<alt (* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))>
#<alt (* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))>
Calls

42 calls:

TimeVariablePointExpression
4.0ms
x
@inf
(* x (+ -1/2 (* x 1/3)))
1.0ms
x
@inf
(* x 1/3)
1.0ms
x
@0
(* x (+ 1 (* x (+ -1/2 (* x 1/3)))))
0.0ms
x
@inf
(* x (+ 1 (* x -1/2)))
0.0ms
x
@0
(* x (+ 1 (* x -1/2)))

rewrite97.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
1464×fma-define
1096×fma-lowering-fma.f32
1096×fma-lowering-fma.f64
354×*-lowering-*.f32
354×*-lowering-*.f64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
020110
16690
218487
345987
497387
5140987
6160787
7165487
8176787
9182887
0182887
Stop Event
iter limit
saturated
Counts
14 → 370
Calls
Call 1
Inputs
(* x (+ 1 (* x -1/2)))
(+ 1 (* x -1/2))
(* x -1/2)
(* x (+ 1 (* x (+ -1/2 (* x 1/3)))))
(+ 1 (* x (+ -1/2 (* x 1/3))))
(* x (+ -1/2 (* x 1/3)))
(+ -1/2 (* x 1/3))
(* x (+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))))
(+ 1 (* x (+ -1/2 (* x (+ 1/3 (* x -1/4))))))
(* x (+ -1/2 (* x (+ 1/3 (* x -1/4)))))
(+ -1/2 (* x (+ 1/3 (* x -1/4))))
(* x 1/3)
(* x (+ 1/3 (* x -1/4)))
(+ 1/3 (* x -1/4))
Outputs
(+.f64 x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
(fma.f64 x #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 x (*.f64 x #s(literal -1/2 binary64)) x)
(fma.f64 #s(literal 1 binary64) x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) x)
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) x x)
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64) x)
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) x)
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(*.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) x)
(*.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(+.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64))
(fma.f64 x #s(literal -1/2 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal -1/2 binary64) x #s(literal 1 binary64))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(*.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) #s(literal 1 binary64))
(*.f64 x #s(literal -1/2 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(*.f64 #s(literal -1/2 binary64) x)
(*.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64))
(+.f64 x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(+.f64 (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 x #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(fma.f64 x (*.f64 x #s(literal -1/2 binary64)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x)
(fma.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) x (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) #s(literal 1 binary64) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x) x)
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x x)
(fma.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) #s(literal 1 binary64) x)
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) x)
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal 1/3 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(*.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) x)
(*.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 (*.f64 x #s(literal -1/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64))
(+.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 x #s(literal -1/2 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 x (*.f64 x #s(literal 1/3 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 #s(literal -1/2 binary64) x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x x) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) x #s(literal 1 binary64))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x x) #s(literal 1/3 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(*.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) #s(literal 1 binary64))
(+.f64 (*.f64 x #s(literal -1/2 binary64)) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(+.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 x #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x (*.f64 x #s(literal 1/3 binary64)) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 #s(literal -1/2 binary64) x (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x x) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) x (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x x) #s(literal 1/3 binary64) (*.f64 x #s(literal -1/2 binary64)))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) x)
(*.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(+.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal -1/2 binary64))
(fma.f64 x #s(literal 1/3 binary64) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1/3 binary64) x #s(literal -1/2 binary64))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal 1 binary64) #s(literal -1/2 binary64))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64))
(+.f64 x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x)))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))) (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))))
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x)) x)
(+.f64 (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(+.f64 (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(+.f64 (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 x #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x)))
(fma.f64 x (*.f64 x #s(literal -1/2 binary64)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))))
(fma.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))))
(fma.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) x)
(fma.f64 x (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 x (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 #s(literal 1 binary64) x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))) (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))))
(fma.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x)) x)
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) x (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))) #s(literal 1 binary64) (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) x (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))) #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (*.f64 x #s(literal -1/4 binary64)) (*.f64 x (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x) x)
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) x x)
(fma.f64 (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x x)) #s(literal 1 binary64) x)
(fma.f64 (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (*.f64 x x))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 x x) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) x)
(fma.f64 (*.f64 x x) (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x (*.f64 x x)))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x x)))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal 1/3 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))))
(fma.f64 (*.f64 x (*.f64 x x)) (*.f64 x #s(literal -1/4 binary64)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(fma.f64 (*.f64 x (*.f64 x x)) (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64) (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))) #s(literal 1 binary64) (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) x (*.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x))))
(fma.f64 (*.f64 x (*.f64 x (*.f64 x x))) #s(literal -1/4 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))))
(*.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))) x)
(*.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(+.f64 (*.f64 x #s(literal -1/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64))
(+.f64 (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(+.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(+.f64 (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 x #s(literal -1/2 binary64)))
(+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x #s(literal -1/2 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 x (*.f64 x #s(literal 1/3 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64))
(fma.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal -1/2 binary64) x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))) #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))) #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x x)) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x #s(literal -1/4 binary64)) (*.f64 x x) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x x) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) x #s(literal 1 binary64))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x x) #s(literal 1/3 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))))
(fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/4 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal -1/4 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(*.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))) #s(literal 1 binary64))
(+.f64 (*.f64 x #s(literal -1/2 binary64)) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(+.f64 (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x #s(literal -1/2 binary64)))
(+.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(+.f64 (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x #s(literal -1/2 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 x (*.f64 x #s(literal 1/3 binary64)) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal -1/2 binary64) x (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (*.f64 x #s(literal -1/2 binary64)) #s(literal 1 binary64) (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x x) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) x (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64) (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x (*.f64 x x)) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (*.f64 x #s(literal -1/4 binary64)) (*.f64 x x) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x x) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) x (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (*.f64 x (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) x (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 x x) #s(literal 1/3 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))))
(fma.f64 (*.f64 x x) (*.f64 x #s(literal -1/4 binary64)) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) (*.f64 x #s(literal -1/2 binary64)))
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal -1/4 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))))
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) x)
(*.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))) #s(literal 1 binary64))
(+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))
(+.f64 (*.f64 x #s(literal 1/3 binary64)) (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(+.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(+.f64 (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) #s(literal -1/2 binary64))
(+.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(+.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 x #s(literal 1/3 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 x (*.f64 x #s(literal -1/4 binary64)) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)) (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 #s(literal 1/3 binary64) x (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 x #s(literal -1/4 binary64)) x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) x #s(literal -1/2 binary64))
(fma.f64 (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) #s(literal 1 binary64) #s(literal -1/2 binary64))
(fma.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64)))) #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))) #s(literal 1 binary64))
(*.f64 x #s(literal 1/3 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)))
(*.f64 #s(literal 1/3 binary64) x)
(*.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal 1 binary64))
(+.f64 (*.f64 x #s(literal 1/3 binary64)) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(+.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 x #s(literal 1/3 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(fma.f64 x (*.f64 x #s(literal -1/4 binary64)) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 #s(literal 1/3 binary64) x (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal -1/4 binary64))))
(fma.f64 #s(literal -1/4 binary64) (*.f64 x x) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 (*.f64 x #s(literal -1/4 binary64)) x (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 (*.f64 x (*.f64 x #s(literal -1/4 binary64))) #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)))
(fma.f64 (*.f64 x x) #s(literal -1/4 binary64) (*.f64 x #s(literal 1/3 binary64)))
(*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))))
(*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) x)
(*.f64 (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))) #s(literal 1 binary64))
(+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64)))
(+.f64 (*.f64 x #s(literal -1/4 binary64)) #s(literal 1/3 binary64))
(fma.f64 x #s(literal -1/4 binary64) #s(literal 1/3 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/4 binary64)) #s(literal 1/3 binary64))
(fma.f64 #s(literal -1/4 binary64) x #s(literal 1/3 binary64))
(fma.f64 (*.f64 x #s(literal -1/4 binary64)) #s(literal 1 binary64) #s(literal 1/3 binary64))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))
(*.f64 (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))) #s(literal 1 binary64))

simplify175.0ms (4.9%)

Algorithm
egg-herbie
Rules
2650×*-lowering-*.f32
2650×*-lowering-*.f64
1632×+-lowering-+.f64
1632×+-lowering-+.f32
1110×/-lowering-/.f32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01071108
1322992
21068913
33973879
08290879
Stop Event
iter limit
node limit
Counts
168 → 168
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* -1/2 x)))
(* -1/2 (pow x 2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* -1/2 (pow x 2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
1
(+ 1 (* -1/2 x))
(+ 1 (* -1/2 x))
(+ 1 (* -1/2 x))
(* -1/2 x)
(* x (- (/ 1 x) 1/2))
(* x (- (/ 1 x) 1/2))
(* x (- (/ 1 x) 1/2))
(* -1/2 x)
(* -1 (* x (- 1/2 (/ 1 x))))
(* -1 (* x (- 1/2 (/ 1 x))))
(* -1 (* x (- 1/2 (/ 1 x))))
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
(* -1/2 x)
x
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(* 1/3 (pow x 3))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(* 1/3 (pow x 3))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
1
(+ 1 (* -1/2 x))
(+ 1 (* x (- (* 1/3 x) 1/2)))
(+ 1 (* x (- (* 1/3 x) 1/2)))
(* 1/3 (pow x 2))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(* (pow x 2) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))))
(* (pow x 2) (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))))
(* -1/2 x)
(* x (- (* 1/3 x) 1/2))
(* x (- (* 1/3 x) 1/2))
(* x (- (* 1/3 x) 1/2))
(* 1/3 (pow x 2))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
-1/2
(- (* 1/3 x) 1/2)
(- (* 1/3 x) 1/2)
(- (* 1/3 x) 1/2)
(* 1/3 x)
(* x (- 1/3 (* 1/2 (/ 1 x))))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(* 1/3 x)
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
x
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))
(* -1/4 (pow x 4))
(* (pow x 4) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 4) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(* (pow x 4) (- (+ (* 1/3 (/ 1 x)) (/ 1 (pow x 3))) (+ 1/4 (/ 1/2 (pow x 2)))))
(* -1/4 (pow x 4))
(* (pow x 4) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 4) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))
(* (pow x 4) (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3) x)) 1/4))
1
(+ 1 (* -1/2 x))
(+ 1 (* x (- (* 1/3 x) 1/2)))
(+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2)))
(* -1/4 (pow x 3))
(* (pow x 3) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(* (pow x 3) (- (+ (* 1/3 (/ 1 x)) (/ 1 (pow x 3))) (+ 1/4 (/ 1/2 (pow x 2)))))
(* -1/4 (pow x 3))
(* -1 (* (pow x 3) (- 1/4 (* 1/3 (/ 1 x)))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))) x)))))
(* -1/2 x)
(* x (- (* 1/3 x) 1/2))
(* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))
(* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))
(* -1/4 (pow x 3))
(* (pow x 3) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(* -1/4 (pow x 3))
(* -1 (* (pow x 3) (- 1/4 (* 1/3 (/ 1 x)))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))
-1/2
(- (* 1/3 x) 1/2)
(- (* x (+ 1/3 (* -1/4 x))) 1/2)
(- (* x (+ 1/3 (* -1/4 x))) 1/2)
(* -1/4 (pow x 2))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 2) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(* -1/4 (pow x 2))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 2) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))
(* (pow x 2) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* x (+ 1/3 (* -1/4 x)))
(* x (+ 1/3 (* -1/4 x)))
(* x (+ 1/3 (* -1/4 x)))
(* -1/4 (pow x 2))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* -1/4 (pow x 2))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
1/3
(+ 1/3 (* -1/4 x))
(+ 1/3 (* -1/4 x))
(+ 1/3 (* -1/4 x))
(* -1/4 x)
(* x (- (* 1/3 (/ 1 x)) 1/4))
(* x (- (* 1/3 (/ 1 x)) 1/4))
(* x (- (* 1/3 (/ 1 x)) 1/4))
(* -1/4 x)
(* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))
(* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))
(* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))
Outputs
x
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 x))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(+ 1 (* -1/2 x))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(+ 1 (* -1/2 x))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* x (- (/ 1 x) 1/2))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* x (- (/ 1 x) 1/2))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* x (- (/ 1 x) 1/2))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1 (* x (- 1/2 (/ 1 x))))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* -1 (* x (- 1/2 (/ 1 x))))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* -1 (* x (- 1/2 (/ 1 x))))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
x
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* 1/3 (pow x 3))
(*.f64 x (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* 1/3 (pow x 3))
(*.f64 x (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 x))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(+ 1 (* x (- (* 1/3 x) 1/2)))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+ 1 (* x (- (* 1/3 x) 1/2)))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 2) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 2) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 2) (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 2) (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* x (- (* 1/3 x) 1/2))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* x (- (* 1/3 x) 1/2))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* x (- (* 1/3 x) 1/2))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 2) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
-1/2
#s(literal -1/2 binary64)
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
x
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* x (+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))))
(* -1/4 (pow x 4))
(*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 4 binary64)))
(* (pow x 4) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal -1/4 binary64) (/.f64 #s(literal 1/3 binary64) x)))
(* (pow x 4) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(*.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal -1/4 binary64) (/.f64 (+.f64 #s(literal 1/3 binary64) (/.f64 #s(literal -1/2 binary64) x)) x)))
(* (pow x 4) (- (+ (* 1/3 (/ 1 x)) (/ 1 (pow x 3))) (+ 1/4 (/ 1/2 (pow x 2)))))
(*.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal -1/4 binary64) (/.f64 (+.f64 #s(literal 1/3 binary64) (/.f64 (+.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) x)) x)) x)))
(* -1/4 (pow x 4))
(*.f64 #s(literal -1/4 binary64) (pow.f64 x #s(literal 4 binary64)))
(* (pow x 4) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal -1/4 binary64) (/.f64 #s(literal 1/3 binary64) x)))
(* (pow x 4) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal -1/4 binary64) (/.f64 (+.f64 #s(literal 1/3 binary64) (/.f64 #s(literal -1/2 binary64) x)) x)))
(* (pow x 4) (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3) x)) 1/4))
(*.f64 (pow.f64 x #s(literal 4 binary64)) (+.f64 #s(literal -1/4 binary64) (/.f64 (+.f64 #s(literal 1/3 binary64) (/.f64 (+.f64 #s(literal -1/2 binary64) (/.f64 #s(literal 1 binary64) x)) x)) x)))
1
#s(literal 1 binary64)
(+ 1 (* -1/2 x))
(+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64)))
(+ 1 (* x (- (* 1/3 x) 1/2)))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+ 1 (* x (- (* x (+ 1/3 (* -1/4 x))) 1/2)))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))))
(* -1/4 (pow x 3))
(*.f64 (*.f64 x (*.f64 x x)) #s(literal -1/4 binary64))
(* (pow x 3) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 (*.f64 x x) (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* (pow x 3) (- (+ (* 1/3 (/ 1 x)) (/ 1 (pow x 3))) (+ 1/4 (/ 1/2 (pow x 2)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))))
(* -1/4 (pow x 3))
(*.f64 (*.f64 x (*.f64 x x)) #s(literal -1/4 binary64))
(* -1 (* (pow x 3) (- 1/4 (* 1/3 (/ 1 x)))))
(*.f64 (*.f64 x x) (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (+ 1/3 (* -1 (/ (- 1/2 (/ 1 x)) x))) x)))))
(+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))))
(* -1/2 x)
(*.f64 x #s(literal -1/2 binary64))
(* x (- (* 1/3 x) 1/2))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* x (- (* x (+ 1/3 (* -1/4 x))) 1/2))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* -1/4 (pow x 3))
(*.f64 (*.f64 x (*.f64 x x)) #s(literal -1/4 binary64))
(* (pow x 3) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 (*.f64 x x) (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* (pow x 3) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* -1/4 (pow x 3))
(*.f64 (*.f64 x (*.f64 x x)) #s(literal -1/4 binary64))
(* -1 (* (pow x 3) (- 1/4 (* 1/3 (/ 1 x)))))
(*.f64 (*.f64 x x) (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
(* -1 (* (pow x 3) (+ 1/4 (* -1 (/ (- 1/3 (* 1/2 (/ 1 x))) x)))))
(*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))))
-1/2
#s(literal -1/2 binary64)
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(- (* x (+ 1/3 (* -1/4 x))) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))
(- (* x (+ 1/3 (* -1/4 x))) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))
(* -1/4 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/4 binary64))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) (+ 1/4 (/ 1/2 (pow x 2)))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))
(* -1/4 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/4 binary64))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 2) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))
(+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))
(* (pow x 2) (- (* -1 (/ (- (* 1/2 (/ 1 x)) 1/3) x)) 1/4))
(+.f64 #s(literal -1/2 binary64) (*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* x (+ 1/3 (* -1/4 x)))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* x (+ 1/3 (* -1/4 x)))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* x (+ 1/3 (* -1/4 x)))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* -1/4 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/4 binary64))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* -1/4 (pow x 2))
(*.f64 (*.f64 x x) #s(literal -1/4 binary64))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
(* (pow x 2) (- (* 1/3 (/ 1 x)) 1/4))
(*.f64 x (-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64))))
1/3
#s(literal 1/3 binary64)
(+ 1/3 (* -1/4 x))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(+ 1/3 (* -1/4 x))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(+ 1/3 (* -1/4 x))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(* -1/4 x)
(*.f64 x #s(literal -1/4 binary64))
(* x (- (* 1/3 (/ 1 x)) 1/4))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(* x (- (* 1/3 (/ 1 x)) 1/4))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(* x (- (* 1/3 (/ 1 x)) 1/4))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(* -1/4 x)
(*.f64 x #s(literal -1/4 binary64))
(* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))
(* -1 (* x (- 1/4 (* 1/3 (/ 1 x)))))
(-.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal 1/4 binary64)))

eval59.0ms (1.6%)

Compiler

Compiled 7699 to 870 computations (88.7% saved)

prune64.0ms (1.8%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New5362538
Fresh000
Picked134
Done011
Total5376543
Accuracy
100.0%
Counts
543 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.7%
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
65.6%
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
65.7%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
65.6%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
100.0%
(log1p.f64 x)
66.5%
x
Compiler

Compiled 49 to 34 computations (30.6% saved)

simplify14.0ms (0.4%)

Algorithm
egg-herbie
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x #s(literal 1/3 binary64))
cost-diff0
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
cost-diff0
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x))
cost-diff0
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 #s(literal -1/2 binary64) (*.f64 x x))
cost-diff0
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
Rules
276×fma-define
208×fma-lowering-fma.f32
208×fma-lowering-fma.f64
134×*-lowering-*.f32
134×*-lowering-*.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01043
12340
24640
310040
420240
525640
631240
735240
835640
035640
Stop Event
iter limit
saturated
Calls
Call 1
Inputs
(+ (* -1/2 (* x x)) x)
(* -1/2 (* x x))
-1/2
(* x x)
x
(+ (* (+ -1/2 (* x 1/3)) (* x x)) x)
(* (+ -1/2 (* x 1/3)) (* x x))
(+ -1/2 (* x 1/3))
-1/2
(* x 1/3)
x
1/3
(* x x)
Outputs
(+ (* -1/2 (* x x)) x)
(*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64)))
(* -1/2 (* x x))
(*.f64 #s(literal -1/2 binary64) (*.f64 x x))
-1/2
#s(literal -1/2 binary64)
(* x x)
(*.f64 x x)
x
(+ (* (+ -1/2 (* x 1/3)) (* x x)) x)
(*.f64 x (+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64)))
(* (+ -1/2 (* x 1/3)) (* x x))
(*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(+ -1/2 (* x 1/3))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
-1/2
#s(literal -1/2 binary64)
(* x 1/3)
(*.f64 x #s(literal 1/3 binary64))
x
1/3
#s(literal 1/3 binary64)
(* x x)
(*.f64 x x)

localize58.0ms (1.6%)

Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy100.0%
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
accuracy100.0%
(*.f64 x x)
accuracy99.9%
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x))
accuracy99.5%
(*.f64 x #s(literal 1/3 binary64))
accuracy100.0%
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
accuracy100.0%
(*.f64 x x)
accuracy100.0%
(*.f64 #s(literal -1/2 binary64) (*.f64 x x))
Results
39.0ms256×0valid
Compiler

Compiled 53 to 11 computations (79.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-mult: 7.0ms (45.4% of total)
ival-add: 4.0ms (26% of total)
...c/correct-round.rkt:119:19: 4.0ms (26% of total)
const: 0.0ms (0% of total)
backward-pass: 0.0ms (0% of total)

series3.0ms (0.1%)

Counts
7 → 84
Calls
Call 1
Inputs
#<alt (+ (* -1/2 (* x x)) x)>
#<alt (* -1/2 (* x x))>
#<alt (* x x)>
#<alt (+ (* (+ -1/2 (* x 1/3)) (* x x)) x)>
#<alt (* (+ -1/2 (* x 1/3)) (* x x))>
#<alt (+ -1/2 (* x 1/3))>
#<alt (* x 1/3)>
Outputs
#<alt x>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* -1/2 (pow x 2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* (pow x 2) (- (/ 1 x) 1/2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (* -1/2 (pow x 2))>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt (pow x 2)>
#<alt x>
#<alt (* x (+ 1 (* -1/2 x)))>
#<alt (* x (+ 1 (* x (- (* 1/3 x) 1/2))))>
#<alt (* x (+ 1 (* x (- (* 1/3 x) 1/2))))>
#<alt (* 1/3 (pow x 3))>
#<alt (* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))>
#<alt (* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))>
#<alt (* 1/3 (pow x 3))>
#<alt (* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))>
#<alt (* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))>
#<alt (* -1/2 (pow x 2))>
#<alt (* (pow x 2) (- (* 1/3 x) 1/2))>
#<alt (* (pow x 2) (- (* 1/3 x) 1/2))>
#<alt (* (pow x 2) (- (* 1/3 x) 1/2))>
#<alt (* 1/3 (pow x 3))>
#<alt (* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* 1/3 (pow x 3))>
#<alt (* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt -1/2>
#<alt (- (* 1/3 x) 1/2)>
#<alt (- (* 1/3 x) 1/2)>
#<alt (- (* 1/3 x) 1/2)>
#<alt (* 1/3 x)>
#<alt (* x (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* x (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* x (- 1/3 (* 1/2 (/ 1 x))))>
#<alt (* 1/3 x)>
#<alt (* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
#<alt (* 1/3 x)>
Calls

21 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(+ (* -1/2 (* x x)) x)
0.0ms
x
@0
(* -1/2 (* x x))
0.0ms
x
@0
(+ (* -1/2 (* x x)) x)
0.0ms
x
@inf
(* -1/2 (* x x))
0.0ms
x
@inf
(+ (* (+ -1/2 (* x 1/3)) (* x x)) x)

rewrite35.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
290×fma-define
220×fma-lowering-fma.f32
220×fma-lowering-fma.f64
142×*-lowering-*.f32
142×*-lowering-*.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01036
12533
25133
310933
422033
528833
636033
743033
847633
948033
048033
Stop Event
iter limit
saturated
Counts
7 → 100
Calls
Call 1
Inputs
(+ (* -1/2 (* x x)) x)
(* -1/2 (* x x))
(* x x)
(+ (* (+ -1/2 (* x 1/3)) (* x x)) x)
(* (+ -1/2 (* x 1/3)) (* x x))
(+ -1/2 (* x 1/3))
(* x 1/3)
Outputs
(+.f64 x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) x)
(fma.f64 x (*.f64 #s(literal -1/2 binary64) x) x)
(fma.f64 x #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) x)
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64) x)
(fma.f64 (*.f64 #s(literal -1/2 binary64) x) x x)
(fma.f64 #s(literal 1 binary64) x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
(*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64)))
(*.f64 (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(*.f64 (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64)) x)
(*.f64 #s(literal -1/2 binary64) (*.f64 x x))
(*.f64 x (*.f64 #s(literal -1/2 binary64) x))
(*.f64 (*.f64 x x) #s(literal -1/2 binary64))
(*.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(*.f64 (*.f64 #s(literal -1/2 binary64) x) x)
(*.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(exp.f64 (*.f64 #s(literal 2 binary64) (log.f64 x)))
(pow.f64 x #s(literal 2 binary64))
(pow.f64 (exp.f64 #s(literal 2 binary64)) (log.f64 x))
(*.f64 x x)
(*.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x x))
(+.f64 x (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(+.f64 (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(+.f64 (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x)
(+.f64 (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(+.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x)
(fma.f64 x (*.f64 #s(literal -1/2 binary64) x) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 x #s(literal 1 binary64) (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64)) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64)) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) x)
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))) #s(literal 1 binary64) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x)) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) (*.f64 x x) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x) x)
(fma.f64 (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64) x)
(fma.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x x)
(fma.f64 (*.f64 #s(literal -1/2 binary64) x) x (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 #s(literal 1 binary64) x (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x)
(fma.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64)) x (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) x (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64))))) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal 1/3 binary64) (*.f64 x (+.f64 (*.f64 #s(literal -1/2 binary64) x) #s(literal 1 binary64))))
(fma.f64 (+.f64 #s(literal 1 binary64) (*.f64 x (*.f64 x #s(literal 1/3 binary64)))) x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(*.f64 x (+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64)))
(*.f64 (*.f64 x (+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x (+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64))))
(*.f64 (+.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64)) x)
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(+.f64 (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal -1/2 binary64) (*.f64 x x) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x (*.f64 #s(literal -1/2 binary64) x) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x x) #s(literal -1/2 binary64) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64)) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) #s(literal 1 binary64) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1/3 binary64) (*.f64 x (*.f64 x x)) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) (*.f64 x x) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 #s(literal -1/2 binary64) x) x (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))))
(fma.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) (*.f64 x #s(literal 1/3 binary64))) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x (*.f64 x #s(literal 1/3 binary64))) x (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(fma.f64 (*.f64 x (*.f64 x x)) #s(literal 1/3 binary64) (*.f64 #s(literal -1/2 binary64) (*.f64 x x)))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x))
(*.f64 (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) #s(literal 1 binary64))
(*.f64 (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))) x)
(*.f64 #s(literal 1 binary64) (*.f64 (*.f64 x x) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(+.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal -1/2 binary64))
(fma.f64 x #s(literal 1/3 binary64) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1/3 binary64) x #s(literal -1/2 binary64))
(fma.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal 1 binary64) #s(literal -1/2 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)) #s(literal -1/2 binary64))
(*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))
(*.f64 x #s(literal 1/3 binary64))
(*.f64 #s(literal 1/3 binary64) x)
(*.f64 (*.f64 x #s(literal 1/3 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (*.f64 x #s(literal 1/3 binary64)))

simplify136.0ms (3.8%)

Algorithm
egg-herbie
Rules
2078×fma-define
1828×sum3-define
1654×sum4-define
1380×*-lowering-*.f32
1380×*-lowering-*.f64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
042441
1119398
2324382
31113360
43171360
57065360
08488360
Stop Event
iter limit
node limit
Counts
84 → 84
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* -1/2 x)))
(* -1/2 (pow x 2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* -1/2 (pow x 2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* (pow x 2) (- (/ 1 x) 1/2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(* -1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
x
(* x (+ 1 (* -1/2 x)))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(* 1/3 (pow x 3))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(* 1/3 (pow x 3))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(* -1/2 (pow x 2))
(* (pow x 2) (- (* 1/3 x) 1/2))
(* (pow x 2) (- (* 1/3 x) 1/2))
(* (pow x 2) (- (* 1/3 x) 1/2))
(* 1/3 (pow x 3))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 3))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
-1/2
(- (* 1/3 x) 1/2)
(- (* 1/3 x) 1/2)
(- (* 1/3 x) 1/2)
(* 1/3 x)
(* x (- 1/3 (* 1/2 (/ 1 x))))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(* 1/3 x)
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
(* 1/3 x)
Outputs
x
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* (pow x 2) (- (/ 1 x) 1/2))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
x
(* x (+ 1 (* -1/2 x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* x (+ 1 (* x (- (* 1/3 x) 1/2))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* 1/3 (pow x 3))
(*.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* (pow x 3) (- (+ 1/3 (/ 1 (pow x 2))) (* 1/2 (/ 1 x))))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* 1/3 (pow x 3))
(*.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* -1 (* (pow x 3) (- (* -1 (/ (- (/ 1 x) 1/2) x)) 1/3)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(* -1/2 (pow x 2))
(*.f64 x (*.f64 x #s(literal -1/2 binary64)))
(* (pow x 2) (- (* 1/3 x) 1/2))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 2) (- (* 1/3 x) 1/2))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 2) (- (* 1/3 x) 1/2))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* 1/3 (pow x 3))
(*.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* (pow x 3) (- 1/3 (* 1/2 (/ 1 x))))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* 1/3 (pow x 3))
(*.f64 x (*.f64 x (*.f64 x #s(literal 1/3 binary64))))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
(* -1 (* (pow x 3) (- (* 1/2 (/ 1 x)) 1/3)))
(*.f64 x (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))))
-1/2
#s(literal -1/2 binary64)
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(- (* 1/3 x) 1/2)
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* x (- 1/3 (* 1/2 (/ 1 x))))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* -1 (* x (- (* 1/2 (/ 1 x)) 1/3)))
(+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64)))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))
(* 1/3 x)
(*.f64 x #s(literal 1/3 binary64))

eval26.0ms (0.7%)

Compiler

Compiled 2119 to 197 computations (90.7% saved)

prune16.0ms (0.4%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New2020202
Fresh000
Picked022
Done044
Total2026208
Accuracy
100.0%
Counts
208 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
66.7%
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
65.6%
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
65.7%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
65.6%
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
100.0%
(log1p.f64 x)
66.5%
x
Compiler

Compiled 108 to 62 computations (42.6% saved)

regimes9.0ms (0.2%)

Counts
8 → 1
Calls
Call 1
Inputs
x
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
(log1p.f64 x)
(log.f64 (+.f64 #s(literal 1 binary64) x))
Outputs
(log1p.f64 x)
Calls

3 calls:

3.0ms
x
2.0ms
(log.f64 (+.f64 #s(literal 1 binary64) x))
2.0ms
(+.f64 #s(literal 1 binary64) x)
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(log.f64 (+.f64 #s(literal 1 binary64) x))
100.0%1(+.f64 #s(literal 1 binary64) x)
Compiler

Compiled 11 to 8 computations (27.3% saved)

regimes3.0ms (0.1%)

Counts
6 → 1
Calls
Call 1
Inputs
x
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x #s(literal -1/2 binary64))))
(+.f64 (*.f64 #s(literal -1/2 binary64) (*.f64 x x)) x)
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x (+.f64 #s(literal 1/3 binary64) (*.f64 x #s(literal -1/4 binary64))))))))
Outputs
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
66.7%1x
Compiler

Compiled 2 to 1 computations (50% saved)

regimes2.0ms (0.1%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
66.7%1x
Compiler

Compiled 2 to 1 computations (50% saved)

regimes2.0ms (0.1%)

Accuracy

Total -0.9b remaining (-4.4%)

Threshold costs -0.9b (-4.4%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
66.5%1x
Compiler

Compiled 2 to 1 computations (50% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
1-exp_binary64
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01325
12325
Stop Event
saturated
Calls
Call 1
Inputs
(log1p.f64 x)
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
x
Outputs
(log1p.f64 x)
(+.f64 (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)) x)
(+.f64 x (*.f64 (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))) (*.f64 x x)))
(*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 x (+.f64 #s(literal -1/2 binary64) (*.f64 x #s(literal 1/3 binary64))))))
x

soundness327.0ms (9.1%)

Rules
1970×fmsub-define
1904×sum3-define
1846×fma-lowering-fma.f32
1846×fma-lowering-fma.f64
1776×fmm-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
059133
1178111
2443105
31212103
4393096
0824596
042
182
082
020110
16690
218487
345987
497387
5140987
6160787
7165487
8176787
9182887
0182887
Stop Event
done
iter limit
saturated
iter limit
saturated
iter limit
node limit
Compiler

Compiled 76 to 48 computations (36.8% saved)

preprocess56.0ms (1.6%)

Compiler

Compiled 102 to 52 computations (49% saved)

end0.0ms (0%)

Profiling

Loading profile data...