x / (x^2 + 1)

Time bar (total: 5.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB 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)

sample729.0ms (14.4%)

Memory
30.1MiB live, 640.4MiB allocated
Samples
405.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 196.0ms
ival-mult: 76.0ms (38.7% of total)
ival-div: 62.0ms (31.6% of total)
ival-add: 43.0ms (21.9% of total)
ival-true: 6.0ms (3.1% of total)
exact: 5.0ms (2.5% of total)
ival-assert: 3.0ms (1.5% of total)
Bogosity

explain90.0ms (1.8%)

Memory
-22.4MiB live, 98.0MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
690-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/o690
(*.f64 x x)overflow69
(+.f64 (*.f64 x x) #s(literal 1 binary64))overflow69
Confusion
Predicted +Predicted -
+690
-0187
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+6900
-00187
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0187
169
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
24.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% of total)
ival-div: 3.0ms (27.7% of total)
ival-add: 2.0ms (18.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess19.0ms (0.4%)

Memory
21.8MiB live, 21.8MiB allocated
Algorithm
egg-herbie
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.8MiB live, 0.8MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.9%
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Compiler

Compiled 7 to 5 computations (28.6% saved)

simplify10.0ms (0.2%)

Memory
-35.1MiB live, 2.3MiB 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))
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)

localize15.0ms (0.3%)

Memory
16.0MiB live, 16.0MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 (*.f64 x x) #s(literal 1 binary64))
accuracy0
(*.f64 x x)
accuracy16.094777383139057
(/.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.9% of total)
ival-mult: 2.0ms (39.9% of total)
ival-add: 1.0ms (20% 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
3.0MiB live, 3.0MiB 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))

simplify162.0ms (3.2%)

Memory
0.2MiB live, 150.4MiB allocated
Algorithm
egg-herbie
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)

rewrite160.0ms (3.2%)

Memory
14.4MiB live, 205.7MiB allocated
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>

eval102.0ms (2%)

Memory
4.9MiB live, 102.0MiB allocated
Compiler

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

prune27.0ms (0.5%)

Memory
-13.6MiB live, 22.9MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New3584362
Fresh000
Picked101
Done000
Total3594363
Accuracy
100.0%
Counts
363 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.9%
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
45.9%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
57.4%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
44.8%
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
Compiler

Compiled 20 to 17 computations (15% saved)

simplify460.0ms (9.1%)

Memory
18.3MiB live, 139.4MiB allocated
Algorithm
egg-herbie
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 x x #s(literal 1 binary64))
cost-diff0
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
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
(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))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01565
02165
12865
24065
35465
47565
514865
626065
747865
897265
9166865
10303565
11380665
12476265
13519165
14530365
15533165
16535565
17537165
18544765
19611965
20611965
0867965
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#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)
#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 (fma.f64 x x #s(literal 1 binary64)))
x
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)
Outputs
#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)
#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 (fma.f64 x x #s(literal 1 binary64)))
x
(fma.f64 x x #s(literal 1 binary64))
#s(literal 1 binary64)

localize49.0ms (1%)

Memory
3.1MiB live, 41.8MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 x x #s(literal 1 binary64))
accuracy16.094777383139057
(/.f64 x (fma.f64 x x #s(literal 1 binary64)))
accuracy16.094777383139057
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
accuracy34.43712727373992
#s(approx (+ (* x x) 1) #s(literal 1 binary64))
accuracy0
(/.f64 #s(literal 1 binary64) x)
accuracy27.246058557256667
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
accuracy0
(pow.f64 x #s(literal 3 binary64))
accuracy0
(-.f64 x (pow.f64 x #s(literal 3 binary64)))
accuracy35.31435622326511
#s(approx (/ x (+ (* x x) 1)) (-.f64 x (pow.f64 x #s(literal 3 binary64))))
Samples
41.0ms256×0valid
Compiler

Compiled 59 to 11 computations (81.4% saved)

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

series129.0ms (2.5%)

Memory
-23.6MiB live, 11.8MiB allocated
Counts
9 → 108
Calls
Call 1
Inputs
#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>) () ())
#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 (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>) () ())
Outputs
#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 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 (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 (/ 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 #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 (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 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>) () ())) ())
#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 (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>) () ())) ())
Calls

3 calls:

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

simplify319.0ms (6.3%)

Memory
18.8MiB live, 207.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051809
1146759
2366742
31171726
44090726
08010676
Stop Event
iter limit
node limit
Counts
108 → 103
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))))
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)
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))
(/ 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))) 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))))
(/ 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)
(/ 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))))
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)
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))
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))
(/ 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))) 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))
(/ 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))
(/ 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))

rewrite402.0ms (7.9%)

Memory
-10.7MiB live, 276.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01557
02157
17957
243557
3394057
0821157
Stop Event
iter limit
node limit
iter limit
Counts
9 → 415
Calls
Call 1
Inputs
#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))
#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 (fma.f64 x x #s(literal 1 binary64)))
(fma.f64 x x #s(literal 1 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>

eval112.0ms (2.2%)

Memory
-8.2MiB live, 110.9MiB allocated
Compiler

Compiled 7 341 to 1 173 computations (84% saved)

prune10.0ms (0.2%)

Memory
26.4MiB live, 26.4MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New5171518
Fresh000
Picked224
Done000
Total5193522
Accuracy
100.0%
Counts
522 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
45.9%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
44.8%
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
57.4%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Compiler

Compiled 16 to 13 computations (18.8% saved)

simplify258.0ms (5.1%)

Memory
-28.1MiB live, 128.9MiB 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))
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

localize23.0ms (0.4%)

Memory
21.3MiB live, 21.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 (neg.f64 x) x)
accuracy0
(neg.f64 x)
accuracy0.05078125
(fma.f64 (*.f64 (neg.f64 x) x) x x)
accuracy35.31435622326511
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
Samples
16.0ms256×0valid
Compiler

Compiled 24 to 11 computations (54.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
ival-mult: 5.0ms (46.9% of total)
ival-div: 2.0ms (18.8% of total)
ival-add: 2.0ms (18.8% of total)
ival-neg: 1.0ms (9.4% 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
4.1MiB live, 4.1MiB 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))

simplify122.0ms (2.4%)

Memory
12.1MiB live, 165.7MiB allocated
Algorithm
egg-herbie
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)))

rewrite338.0ms (6.7%)

Memory
-40.1MiB live, 209.9MiB allocated
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>

eval81.0ms (1.6%)

Memory
5.2MiB live, 44.9MiB allocated
Compiler

Compiled 4 140 to 855 computations (79.3% saved)

prune6.0ms (0.1%)

Memory
19.7MiB live, 19.7MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New2650265
Fresh000
Picked011
Done022
Total2653268
Accuracy
100.0%
Counts
268 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
45.9%
(/.f64 x #s(approx (+ (* x x) 1) #s(literal 1 binary64)))
44.8%
#s(approx (/ x (+ (* x x) 1)) (fma.f64 (*.f64 (neg.f64 x) x) x x))
57.4%
#s(approx (/ x (+ (* x x) 1)) (/.f64 #s(literal 1 binary64) x))
Compiler

Compiled 51 to 32 computations (37.3% saved)

regimes5.0ms (0.1%)

Memory
11.6MiB live, 11.6MiB allocated
Counts
6 → 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 (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
#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:

3.0ms
x
2.0ms
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
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)

regimes83.0ms (1.6%)

Memory
-28.2MiB live, 7.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

2 calls:

81.0ms
x
2.0ms
(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
Results
AccuracySegmentsBranch
83.4%3(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
99.7%2x
Compiler

Compiled 8 to 6 computations (25% saved)

regimes3.0ms (0.1%)

Memory
6.6MiB live, 6.6MiB 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
57.4%1(/.f64 x (+.f64 (*.f64 x x) #s(literal 1 binary64)))
57.4%1x
Compiler

Compiled 8 to 6 computations (25% saved)

bsearch13.0ms (0.3%)

Memory
23.9MiB live, 23.9MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
12.0ms
1.087152255639739e-5
4074930714.529787
Samples
6.0ms160×0valid
Compiler

Compiled 130 to 119 computations (8.5% saved)

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

bsearch112.0ms (2.2%)

Memory
-27.8MiB live, 6.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
112.0ms
1.087152255639739e-5
4074930714.529787
Samples
110.0ms32×0valid
Compiler

Compiled 90 to 109 computations (-21.1% saved)

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

simplify48.0ms (0.9%)

Memory
22.3MiB live, 56.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01865
12765
23165
33465
43565
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 x #s(literal 7746191359077253/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 7746191359077253/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))

soundness792.0ms (15.7%)

Memory
2.7MiB live, 323.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045226
1131224
2312216
3883212
42385210
55560210
67661210
08081197
01557
02157
17957
243557
3394057
0821157
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
Compiler

Compiled 55 to 36 computations (34.5% saved)

preprocess369.0ms (7.3%)

Memory
-45.3MiB live, 309.6MiB allocated
Compiler

Compiled 124 to 72 computations (41.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...