x / (x^2 + 1)

Time bar (total: 5.5s)

start0.0ms (0%)

Memory
0.0MiB live, 0.1MiB allocated

analyze0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
100%100%0%0%0%0%0%2
Compiler

Compiled 9 to 7 computations (22.2% saved)

sample873.0ms (16%)

Memory
33.3MiB live, 646.7MiB allocated
Samples
578.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 177.0ms
ival-div: 61.0ms (34.5% of total)
ival-mult: 61.0ms (34.5% of total)
ival-add: 41.0ms (23.2% of total)
ival-true: 6.0ms (3.4% of total)
exact: 5.0ms (2.8% of total)
ival-assert: 3.0ms (1.7% of total)
Bogosity

explain84.0ms (1.5%)

Memory
-10.0MiB live, 102.5MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
640-0-(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
00-0-#s(literal 1 binary64)
00-0-(+.f64 (*.f64 x x) #s(literal 1 binary64))
00-0-(*.f64 x x)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
/.f64(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))n/o640
(*.f64 x x)overflow64
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow64
Confusion
Predicted +Predicted -
+640
-0192
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+6400
-00192
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0192
164
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
23.0ms512×0valid
Compiler

Compiled 45 to 19 computations (57.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 4.0ms (37.4% of total)
ival-div: 3.0ms (28.1% of total)
ival-add: 2.0ms (18.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess20.0ms (0.4%)

Memory
20.0MiB live, 20.0MiB allocated
Algorithm
egg-herbie
Rules
46×associate-*l*
42×times-frac
30×unsub-neg
28×distribute-lft-neg-in
26×distribute-neg-frac2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
12615
26214
312814
423214
533114
634414
734614
835014
057
087
1117
0116
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Outputs
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Symmetry

(negabs x)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Compiler

Compiled 7 to 5 computations (28.6% saved)

simplify43.0ms (0.8%)

Memory
-41.4MiB live, 3.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
cost-diff128
(+.f64 (*.f64 x x) #s(literal 1 binary64))
Rules
lower-+.f32
lift-+.f64
lift-/.f64
lower-fma.f64
lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0517
0817
11117
01115
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
x
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(*.f64 x x)
#s(literal 1 binary64)
Outputs
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
x
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(fma.f64 x x #s(literal 1 binary64))
(*.f64 x x)
#s(literal 1 binary64)

localize14.0ms (0.3%)

Memory
15.8MiB live, 15.8MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 (*.f64 x x) #s(literal 1 binary64))
accuracy0
(*.f64 x x)
accuracy14.913303818488254
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Samples
10.0ms256×0valid
Compiler

Compiled 19 to 7 computations (63.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-div: 2.0ms (39.5% of total)
ival-mult: 2.0ms (39.5% of total)
ival-add: 1.0ms (19.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0%)

Memory
3.7MiB live, 3.7MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
Outputs
#s(alt 1 (taylor 0 x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (+.f64 (*.f64 x x) #s(literal 1 binary64)) (patch (+.f64 (*.f64 x x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) (patch (/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify168.0ms (3.1%)

Memory
12.3MiB live, 166.6MiB allocated
Algorithm
egg-herbie
Rules
12 662×lower-fma.f64
12 662×lower-fma.f32
2 988×lower-*.f64
2 988×lower-*.f32
1 640×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045226
1131224
2312216
3883212
42385210
55560210
67661210
08081197
Stop Event
iter limit
node limit
Counts
36 → 35
Calls
Call 1
Inputs
1
(+ 1 (pow x 2))
(+ 1 (pow x 2))
(+ 1 (pow x 2))
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
1
#s(literal 1 binary64)
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (+.f64 (pow.f64 x #s(literal 5 binary64)) x) (-.f64 #s(literal 1 binary64) (*.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) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (-.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) 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) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (-.f64 (fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) 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)

rewrite183.0ms (3.3%)

Memory
18.8MiB live, 210.0MiB allocated
Rules
4 942×lower-/.f32
4 940×lower-/.f64
4 762×lower-fma.f64
4 762×lower-fma.f32
3 572×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0515
0815
13315
220215
3176615
0856213
Stop Event
iter limit
node limit
iter limit
Counts
3 → 327
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) #s(literal 1 binary64))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
(*.f64 x x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval77.0ms (1.4%)

Memory
-20.7MiB live, 103.5MiB allocated
Compiler

Compiled 7 796 to 1 076 computations (86.2% saved)

prune11.0ms (0.2%)

Memory
-5.6MiB live, 31.1MiB allocated
Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New3575362
Fresh000
Picked101
Done000
Total3585363
Accuracy
100.0%
Counts
363 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
24.2%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
55.1%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
47.5%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
54.3%
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
Compiler

Compiled 52 to 42 computations (19.2% saved)

simplify486.0ms (8.9%)

Memory
-3.5MiB live, 187.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(pow.f64 x #s(literal 3 binary64))
cost-diff0
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (+ (* x x) 1) (*.f64 x x))
cost-diff0
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
cost-diff0
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
cost-diff0
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
cost-diff0
(/.f64 #s(literal 1 binary64) x)
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
cost-diff0
(fma.f64 x x #s(literal 1 binary64))
cost-diff0
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Rules
15 632×lower-fma.f32
15 630×lower-fma.f64
3 620×lower-+.f64
3 620×lower-+.f32
3 292×distribute-lft-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01887
02687
13387
24587
35987
48087
515387
626587
749787
8102087
9178387
10314887
11400287
12528687
13575787
14590187
15592987
16596587
17598987
18622787
19625787
20625787
0816987
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
x
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
x
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(literal 1 binary64)
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
x
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
x
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)
Outputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
x
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
x
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
#s(literal 1 binary64)
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
x
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
x
(pow.f64 x #s(literal 3 binary64))
#s(literal 3 binary64)

localize30.0ms (0.6%)

Memory
33.1MiB live, 71.1MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0
(pow.f64 x #s(literal 3 binary64))
accuracy0
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
accuracy29.257057760057172
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
accuracy0
(*.f64 x x)
accuracy14.913303818488254
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
accuracy33.43804906844177
#s(approx (+ (* x x) 1) (*.f64 x x))
accuracy14.913303818488254
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
accuracy28.56781262956733
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
accuracy0
(/.f64 #s(literal 1 binary64) x)
accuracy33.58150186296678
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
accuracy0
(fma.f64 x x #s(literal 1 binary64))
accuracy14.913303818488254
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
Samples
20.0ms256×0valid
Compiler

Compiled 75 to 11 computations (85.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-div: 3.0ms (27.8% of total)
ival-pow: 3.0ms (27.8% of total)
ival-mult: 2.0ms (18.5% of total)
ival-sub: 1.0ms (9.3% of total)
ival-add: 1.0ms (9.3% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series133.0ms (2.4%)

Memory
-34.1MiB live, 15.3MiB allocated
Counts
12 → 144
Calls
Call 1
Inputs
#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())
#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())
#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())
#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (pow x 2)) (taylor 0 x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor 0 x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 3)) (taylor inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x (fma.f64 x x #s(literal 1 binary64))) (patch (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt (fma.f64 x x #s(literal 1 binary64)) (patch (fma.f64 x x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) (patch #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) (patch (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* x x) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) (patch (/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1 (/ 1 (pow x 2)))) (taylor -inf x) (#s(alt #s(approx (+ (* x x) 1) (*.f64 x x)) (patch #s(approx (+ (* x x) 1) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) (patch #s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 3)) (taylor -inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (-.f64 x (pow.f64 x #s(literal 3 binary64))) (patch (-.f64 x (pow.f64 x #s(literal 3 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 3) (taylor -inf x) (#s(alt (pow.f64 x #s(literal 3 binary64)) (patch (pow.f64 x #s(literal 3 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
((/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ 1 x) (/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (+ (* x x) 1) (* x x) (/ x (+ (* x x) 1)) (- x (pow x 3)) (pow x 3))
1.0ms
x
@inf
((/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ 1 x) (/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (+ (* x x) 1) (* x x) (/ x (+ (* x x) 1)) (- x (pow x 3)) (pow x 3))
1.0ms
x
@0
((/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (/ 1 x) (/ x (+ (* x x) 1)) (+ (* x x) 1) (/ x (+ (* x x) 1)) (+ (* x x) 1) (* x x) (/ x (+ (* x x) 1)) (- x (pow x 3)) (pow x 3))

simplify315.0ms (5.8%)

Memory
33.8MiB live, 255.2MiB allocated
Algorithm
egg-herbie
Rules
16 304×lower-fma.f64
16 304×lower-fma.f32
3 366×lower-*.f64
3 366×lower-*.f32
1 760×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0511035
1146977
2366958
31172938
44116938
08045871
Stop Event
iter limit
node limit
Counts
144 → 138
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
1
(+ 1 (pow x 2))
(+ 1 (pow x 2))
(+ 1 (pow x 2))
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
1
(+ 1 (pow x 2))
(+ 1 (pow x 2))
(+ 1 (pow x 2))
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
1
(+ 1 (pow x 2))
(+ 1 (pow x 2))
(+ 1 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* -1 (pow x 2))))
(pow x 3)
(pow x 3)
(pow x 3)
(pow x 3)
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(* -1 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(pow x 3)
(pow x 3)
(pow x 3)
(pow x 3)
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(pow x 2)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (pow x 3))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(pow x 3)
(pow x 3)
(pow x 3)
(pow x 3)
Outputs
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))) x)
1
#s(literal 1 binary64)
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))) x)
1
#s(literal 1 binary64)
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))) x)
1
#s(literal 1 binary64)
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 binary64))
(+ 1 (pow x 2))
(fma.f64 x x #s(literal 1 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)
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 #s(literal 1 binary64) (*.f64 x x))) x)
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 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)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(* -1 (pow x 3))
(neg.f64 (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(pow x 2)
(*.f64 x x)
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 binary64))
(* (pow x 2) (+ 1 (/ 1 (pow x 2))))
(fma.f64 x x #s(literal 1 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)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) #s(literal 1 binary64)) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 4 binary64))) (fma.f64 x x #s(literal -1 binary64)) (-.f64 (/.f64 #s(literal -1 binary64) (pow.f64 x #s(literal 6 binary64))) #s(literal -1 binary64))) x)
(* -1 (pow x 3))
(neg.f64 (pow.f64 x #s(literal 3 binary64)))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))
(pow x 3)
(pow.f64 x #s(literal 3 binary64))

rewrite358.0ms (6.6%)

Memory
-26.5MiB live, 186.8MiB allocated
Rules
7 072×lower-fma.f32
7 070×lower-fma.f64
3 396×lower-*.f32
3 394×lower-*.f64
2 402×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01878
02678
19078
247078
3413078
0833778
Stop Event
iter limit
node limit
iter limit
Counts
12 → 471
Calls
Call 1
Inputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(fma.f64 x x #s(literal 1 binary64))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) x)
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
#s(approx (+ (* x x) 1) (*.f64 x x))
(*.f64 x x)
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(pow.f64 x #s(literal 3 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval109.0ms (2%)

Memory
25.4MiB live, 110.4MiB allocated
Compiler

Compiled 8 100 to 1 282 computations (84.2% saved)

prune39.0ms (0.7%)

Memory
5.5MiB live, 40.5MiB allocated
Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New6081609
Fresh000
Picked145
Done000
Total6095614
Accuracy
100.0%
Counts
614 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
24.2%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
55.1%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
54.3%
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
47.5%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Compiler

Compiled 28 to 21 computations (25% saved)

simplify241.0ms (4.4%)

Memory
-16.7MiB live, 174.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff-5824
(fma.f64 (*.f64 (neg.f64 x) x) x x)
cost-diff0
(neg.f64 x)
cost-diff0
(*.f64 (neg.f64 x) x)
cost-diff0
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
Rules
10 488×lower-fma.f32
10 486×lower-fma.f64
2 338×lower-*.f32
2 336×lower-*.f64
2 098×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0929
01329
12629
23925
36925
49425
515725
629725
777925
8128525
9245425
10368925
11550525
12718725
13787225
0802224
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
(fma.f64 (*.f64 (neg.f64 x) x) x x)
(*.f64 (neg.f64 x) x)
(neg.f64 x)
x
Outputs
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(fma.f64 (*.f64 (neg.f64 x) x) x x)
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(*.f64 (neg.f64 x) x)
(neg.f64 x)
x

localize66.0ms (1.2%)

Memory
2.9MiB live, 89.4MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 (neg.f64 x) x)
accuracy0
(neg.f64 x)
accuracy0.0546875
(fma.f64 (*.f64 (neg.f64 x) x) x x)
accuracy29.257057760057172
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
Samples
60.0ms256×0valid
Compiler

Compiled 24 to 11 computations (54.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-mult: 5.0ms (49.1% of total)
ival-div: 2.0ms (19.6% of total)
ival-add: 2.0ms (19.6% of total)
ival-neg: 1.0ms (9.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
13.3MiB live, 13.3MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())
#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())
#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())
Outputs
#s(alt x (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (pow x 2) 1)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1)))) (taylor 0 x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor 0 x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt x (taylor 0 x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (pow x 2)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- 1 (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x) (taylor inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 3)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (- (/ 1 (pow x 2)) 1)) (taylor inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) 1) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x)) (taylor -inf x) (#s(alt #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) (patch #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (neg.f64 x) x) (patch (*.f64 (neg.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 x) (taylor -inf x) (#s(alt (neg.f64 x) (patch (neg.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (pow x 3)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 (neg.f64 x) x) x x) (patch (fma.f64 (*.f64 (neg.f64 x) x) x x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((/ x (+ (* x x) 1)) (* (neg x) x) (neg x) (+ (* (* (neg x) x) x) x))
1.0ms
x
@-inf
((/ x (+ (* x x) 1)) (* (neg x) x) (neg x) (+ (* (* (neg x) x) x) x))
1.0ms
x
@0
((/ x (+ (* x x) 1)) (* (neg x) x) (neg x) (+ (* (* (neg x) x) x) x))

simplify139.0ms (2.5%)

Memory
-58.1MiB live, 131.8MiB allocated
Algorithm
egg-herbie
Rules
9 828×lower-fma.f64
9 828×lower-fma.f32
2 588×lower-*.f64
2 588×lower-*.f32
1 380×lower--.f64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
049291
1139265
2342254
31122250
43378248
56348248
08133248
Stop Event
iter limit
node limit
Counts
48 → 46
Calls
Call 1
Inputs
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
x
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* -1 (pow x 2))))
(* x (+ 1 (* -1 (pow x 2))))
(/ 1 x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 (pow x 3))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(/ 1 x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 (pow x 2))
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 x)
(* -1 (pow x 3))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
Outputs
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* (pow x 2) (- (pow x 2) 1))))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) (fma.f64 x x #s(literal -1 binary64)) x)
(* x (+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1 (* -1 (pow x 2)))) 1))))
(*.f64 (-.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -1 binary64)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
x
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* x (+ 1 (* -1 (pow x 2))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 (pow x 2))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (/ 1 (pow x 2))) x)
(/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64))) x)
(/ (- (+ 1 (/ 1 (pow x 4))) (+ (/ 1 (pow x 2)) (/ 1 (pow x 6)))) x)
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 (pow x 3))
(pow.f64 (neg.f64 x) #s(literal 3 binary64))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* (pow x 3) (- (/ 1 (pow x 2)) 1))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 (pow x 2)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (/.f64 #s(literal 1 binary64) x) x)) x)
(* -1 (/ (- (/ 1 (pow x 2)) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64))) x)
(* -1 (/ (- (+ (/ 1 (pow x 2)) (/ 1 (pow x 6))) (+ 1 (/ 1 (pow x 4)))) x))
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 x #s(literal 6 binary64)))) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 (pow x 2))
(*.f64 (neg.f64 x) x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 x)
(neg.f64 x)
(* -1 (pow x 3))
(pow.f64 (neg.f64 x) #s(literal 3 binary64))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
(* -1 (* (pow x 3) (- 1 (/ 1 (pow x 2)))))
(-.f64 x (pow.f64 x #s(literal 3 binary64)))

rewrite265.0ms (4.9%)

Memory
30.8MiB live, 148.0MiB allocated
Rules
3 906×lower-*.f32
3 904×lower-*.f64
3 700×lower-fma.f32
3 698×lower-fma.f64
2 792×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0928
01328
15826
237024
3379522
01144721
Stop Event
iter limit
node limit
iter limit
Counts
4 → 219
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
(*.f64 (neg.f64 x) x)
(neg.f64 x)
(fma.f64 (*.f64 (neg.f64 x) x) x x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval154.0ms (2.8%)

Memory
-10.2MiB live, 58.8MiB allocated
Compiler

Compiled 4 140 to 855 computations (79.3% saved)

prune6.0ms (0.1%)

Memory
19.6MiB live, 19.6MiB allocated
Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New2650265
Fresh000
Picked011
Done044
Total2655270
Accuracy
100.0%
Counts
270 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
24.2%
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
55.1%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
54.3%
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
47.5%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Compiler

Compiled 69 to 42 computations (39.1% saved)

regimes116.0ms (2.1%)

Memory
-11.8MiB live, 23.2MiB allocated
Counts
7 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
Outputs
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Calls

2 calls:

113.0ms
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
3.0ms
x
Results
AccuracySegmentsBranch
100.0%2x
99.9%2(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Compiler

Compiled 8 to 6 computations (25% saved)

regimes4.0ms (0.1%)

Memory
12.5MiB live, 12.5MiB allocated
Counts
4 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
(/.f64 x #s(approx (+ (* x x) 1) (*.f64 x x)))
Outputs
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Calls

2 calls:

2.0ms
x
2.0ms
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
79.6%2(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
99.1%2x
Compiler

Compiled 8 to 6 computations (25% saved)

regimes2.0ms (0%)

Memory
3.7MiB live, 3.7MiB allocated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
Outputs
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Calls

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
98.8%2x
Compiler

Compiled 1 to 1 computations (0% saved)

regimes3.0ms (0%)

Memory
6.1MiB live, 6.1MiB allocated
Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

1.0ms
x
1.0ms
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
47.5%1(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
47.5%1x
Compiler

Compiled 8 to 6 computations (25% saved)

bsearch42.0ms (0.8%)

Memory
-45.0MiB live, 2.5MiB allocated
Algorithm
binary-search
Stop Event
predicate-same
Steps
TimeLeftRight
42.0ms
2400729.745252125
4855900515.053701
Samples
41.0ms16×0valid
Compiler

Compiled 20 to 19 computations (5% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch11.0ms (0.2%)

Memory
17.6MiB live, 17.6MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
9.0ms
0.0315017016348894
64.13065633038488
Samples
5.0ms128×0valid
Compiler

Compiled 106 to 97 computations (8.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 3.0ms
ival-div: 1.0ms (38.7% of total)
ival-add: 1.0ms (38.7% of total)
ival-mult: 1.0ms (38.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch6.0ms (0.1%)

Memory
14.2MiB live, 14.2MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
5.0ms
0.0315017016348894
64.13065633038488
Samples
2.0ms64×0valid
Compiler

Compiled 74 to 89 computations (-20.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 1.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

simplify300.0ms (5.5%)

Memory
7.6MiB live, 85.1MiB allocated
Algorithm
egg-herbie
Rules
*-commutative-binary64-*.f64
neg-sub0-binary64--.f64-neg.f64
+-commutative-binary64-+.f64
neg-mul-1-binary64-*.f64-neg.f64
sub-neg-binary64-neg.f64-+.f64--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02386
13286
23686
33986
44086
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal 4000000 binary64)) (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 7656119366529843/9007199254740992 binary64)) #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 1 binary64)) (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Outputs
(if (<=.f64 x #s(literal 4000000 binary64)) (/.f64 x (fma.f64 x x #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 7656119366529843/9007199254740992 binary64)) #s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x)) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
(if (<=.f64 x #s(literal 1 binary64)) (/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64))) #s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x)))
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))

soundness1000.0ms (18.3%)

Memory
-33.7MiB live, 495.7MiB allocated
Rules
12 662×lower-fma.f64
12 662×lower-fma.f32
7 072×lower-fma.f32
7 070×lower-fma.f64
4 942×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01878
02678
19078
247078
3413078
0833778
045226
1131224
2312216
3883212
42385210
55560210
67661210
08081197
0515
0815
13315
220215
3176615
0856213
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 85 to 51 computations (40% saved)

preprocess155.0ms (2.8%)

Memory
10.3MiB live, 207.6MiB allocated
Compiler

Compiled 148 to 78 computations (47.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...