Asymptote A

Time bar (total: 1.6s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze4.0ms (0.2%)

Memory
-36.0MiB live, 3.1MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
75%75%25%0%0%0%0%4
87.5%87.5%12.5%0%0%0%0%5
93.8%93.7%6.2%0%0%0%0%6
96.9%96.8%3.1%0%0%0%0%7
98.4%98.4%1.6%0%0%0%0%8
99.2%99.2%0.8%0%0%0%0%9
99.6%99.6%0.4%0%0%0%0%10
99.8%99.8%0.2%0%0%0%0%11
99.9%99.9%0.1%0%0%0%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample983.0ms (59.8%)

Memory
20.4MiB live, 1 079.0MiB allocated
Samples
432.0ms3 746×1valid
230.0ms4 258×0valid
Precisions
Click to see histograms. Total time spent on operations: 490.0ms
ival-div: 214.0ms (43.7% of total)
ival-sub: 108.0ms (22% of total)
adjust: 82.0ms (16.7% of total)
ival-add: 72.0ms (14.7% of total)
ival-true: 6.0ms (1.2% of total)
exact: 5.0ms (1% of total)
ival-assert: 3.0ms (0.6% of total)
Bogosity

explain2.0ms (0.1%)

Memory
2.2MiB live, 2.2MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
10-0-(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
00-0-(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
00-0-(+.f64 x #s(literal 1 binary64))
00-0-(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64)))
00-0-(-.f64 x #s(literal 1 binary64))
00-0-#s(literal 1 binary64)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))cancellation10
Confusion
Predicted +Predicted -
+10
-03
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+100
-003
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
03
11
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
0.0ms0valid
0.0ms1valid
Compiler

Compiled 102 to 32 computations (68.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
adjust: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-sub: 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)

preprocess23.0ms (1.4%)

Memory
20.3MiB live, 20.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0927
12125
25222
310622
419022
525822
627322
727522
0711
01211
12011
22711
34011
46111
58611
613111
717411
824311
928011
1030011
1130011
030011
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
Outputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
(-.f64 (/.f64 #s(literal -1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 #s(literal -1 binary64) (-.f64 x #s(literal -1 binary64))))
Symmetry

(abs x)

Compiler

Compiled 11 to 7 computations (36.4% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

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

Compiled 11 to 7 computations (36.4% saved)

simplify10.0ms (0.6%)

Memory
7.6MiB live, 7.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64)))
cost-diff0
(+.f64 x #s(literal 1 binary64))
cost-diff0
(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
cost-diff0
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0729
01229
12029
22729
34029
46129
58629
613129
717429
824329
928029
1030029
1130029
030029
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
#s(literal 1 binary64)
(+.f64 x #s(literal 1 binary64))
x
(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64)))
(-.f64 x #s(literal 1 binary64))
Outputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
(-.f64 (/.f64 #s(literal -1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 #s(literal -1 binary64) (-.f64 x #s(literal -1 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal -1 binary64)))
#s(literal 1 binary64)
(+.f64 x #s(literal 1 binary64))
(-.f64 x #s(literal -1 binary64))
x
(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64)))
(-.f64 x #s(literal 1 binary64))

localize1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
accuracy0
(-.f64 x #s(literal 1 binary64))
accuracy0
(+.f64 x #s(literal 1 binary64))
accuracy15.451059264665465
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
Samples
0.0ms0valid
0.0ms1valid
Compiler

Compiled 60 to 16 computations (73.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
adjust: 0.0ms (0% of total)
ival-div: 0.0ms (0% of total)
ival-sub: 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)

series3.0ms (0.2%)

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

3 calls:

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

simplify124.0ms (7.5%)

Memory
-14.7MiB live, 117.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
083435
1228425
2582404
31799384
45124380
08155371
Stop Event
iter limit
node limit
Counts
60 → 56
Calls
Call 1
Inputs
2
(+ 2 (* 2 (pow x 2)))
(+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))
(+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))))
1
(+ 1 (* -1 x))
(+ 1 (* x (- x 1)))
(+ 1 (* x (- (* x (+ 1 (* -1 x))) 1)))
1
(+ 1 x)
(+ 1 x)
(+ 1 x)
-1
(- (* -1 x) 1)
(- (* x (- (* -1 x) 1)) 1)
(- (* x (- (* x (- (* -1 x) 1)) 1)) 1)
-1
(- x 1)
(- x 1)
(- x 1)
(/ -2 (pow x 2))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(/ 1 x)
(/ (- 1 (/ 1 x)) x)
(/ (- (+ 1 (/ 1 (pow x 2))) (/ 1 x)) x)
(/ (- (+ 1 (/ 1 (pow x 2))) (+ (/ 1 x) (/ 1 (pow x 3)))) x)
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(/ 1 x)
(/ (+ 1 (/ 1 x)) x)
(/ (+ 1 (+ (/ 1 x) (/ 1 (pow x 2)))) x)
(/ (+ 1 (+ (/ 1 x) (+ (/ 1 (pow x 2)) (/ 1 (pow x 3))))) x)
x
(* x (- 1 (/ 1 x)))
(* x (- 1 (/ 1 x)))
(* x (- 1 (/ 1 x)))
(/ -2 (pow x 2))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(/ 1 x)
(* -1 (/ (- (/ 1 x) 1) x))
(* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x))
(* -1 (/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) x))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(/ 1 x)
(/ (+ 1 (/ 1 x)) x)
(* -1 (/ (- (* -1 (/ (+ 1 (/ 1 x)) x)) 1) x))
(* -1 (/ (- (* -1 (/ (+ 1 (+ (/ 1 x) (/ 1 (pow x 2)))) x)) 1) x))
x
(* -1 (* x (- (/ 1 x) 1)))
(* -1 (* x (- (/ 1 x) 1)))
(* -1 (* x (- (/ 1 x) 1)))
Outputs
2
#s(literal 2 binary64)
(+ 2 (* 2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))
(fma.f64 (fma.f64 x x (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))))
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2 binary64) #s(literal 2 binary64)) (fma.f64 x x #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 (* -1 x))
(-.f64 #s(literal 1 binary64) x)
(+ 1 (* x (- x 1)))
(fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (- (* x (+ 1 (* -1 x))) 1)))
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (-.f64 #s(literal 1 binary64) x))
1
#s(literal 1 binary64)
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
(+ 1 x)
(-.f64 x #s(literal -1 binary64))
-1
#s(literal -1 binary64)
(- (* -1 x) 1)
(-.f64 #s(literal -1 binary64) x)
(- (* x (- (* -1 x) 1)) 1)
(fma.f64 (-.f64 #s(literal -1 binary64) x) x #s(literal -1 binary64))
(- (* x (- (* x (- (* -1 x) 1)) 1)) 1)
(*.f64 (fma.f64 x x #s(literal 1 binary64)) (-.f64 #s(literal -1 binary64) x))
-1
#s(literal -1 binary64)
(- x 1)
(-.f64 x #s(literal 1 binary64))
(- x 1)
(-.f64 x #s(literal 1 binary64))
(- x 1)
(-.f64 x #s(literal 1 binary64))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x)
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/.f64 (-.f64 (/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x) #s(literal 2 binary64)) (*.f64 x x))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(*.f64 (/.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal -1 binary64)) x) x) (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64)))))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 x)) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x)
(/ (- (+ 1 (/ 1 (pow x 2))) (/ 1 x)) x)
(/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) x) #s(literal -1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 2))) (+ (/ 1 x) (/ 1 (pow x 3)))) x)
(/.f64 (-.f64 (/.f64 (-.f64 (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x) #s(literal 1 binary64)) x) #s(literal -1 binary64)) x)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (+ 1 (/ 1 x)) x)
(/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x)
(/ (+ 1 (+ (/ 1 x) (/ 1 (pow x 2)))) x)
(/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x) #s(literal -1 binary64)) x)
(/ (+ 1 (+ (/ 1 x) (+ (/ 1 (pow x 2)) (/ 1 (pow x 3))))) x)
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x)) x)) x)
x
(* x (- 1 (/ 1 x)))
(-.f64 x #s(literal 1 binary64))
(* x (- 1 (/ 1 x)))
(-.f64 x #s(literal 1 binary64))
(* x (- 1 (/ 1 x)))
(-.f64 x #s(literal 1 binary64))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x)
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/.f64 (-.f64 (/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x) #s(literal 2 binary64)) (*.f64 x x))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(*.f64 (/.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x x)) #s(literal -1 binary64)) x) x) (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64)))))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 x) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x)
(* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x))
(/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) x) #s(literal -1 binary64)) x)
(* -1 (/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) x))
(/.f64 (-.f64 (/.f64 (-.f64 (/.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x)) x) #s(literal 1 binary64)) x) #s(literal -1 binary64)) x)
x
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(* x (+ 1 (/ 1 x)))
(-.f64 x #s(literal -1 binary64))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (+ 1 (/ 1 x)) x)
(/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x)
(* -1 (/ (- (* -1 (/ (+ 1 (/ 1 x)) x)) 1) x))
(/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x) #s(literal -1 binary64)) x)
(* -1 (/ (- (* -1 (/ (+ 1 (+ (/ 1 x) (/ 1 (pow x 2)))) x)) 1) x))
(/.f64 (-.f64 #s(literal 1 binary64) (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x)) x)) x)
x
(* -1 (* x (- (/ 1 x) 1)))
(-.f64 x #s(literal 1 binary64))
(* -1 (* x (- (/ 1 x) 1)))
(-.f64 x #s(literal 1 binary64))
(* -1 (* x (- (/ 1 x) 1)))
(-.f64 x #s(literal 1 binary64))

rewrite155.0ms (9.4%)

Memory
-16.5MiB live, 180.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0727
01227
16627
264427
0903925
Stop Event
iter limit
node limit
iter limit
Counts
5 → 861
Calls
Call 1
Inputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
(+.f64 x #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64)))
(-.f64 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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval22.0ms (1.3%)

Memory
-0.2MiB live, 38.6MiB allocated
Compiler

Compiled 23 539 to 2 581 computations (89% saved)

prune1.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New9152917
Fresh000
Picked101
Done000
Total9162918
Accuracy
100.0%
Counts
918 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
25.5%
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
75.4%
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
Compiler

Compiled 8 to 8 computations (0% saved)

simplify29.0ms (1.8%)

Memory
-18.4MiB live, 27.5MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 x x)
cost-diff0
(/.f64 #s(literal -2 binary64) (*.f64 x x))
cost-diff0
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
cost-diff0
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01341
01541
12541
23241
34541
46741
59241
613741
718341
825541
932241
1038741
1141541
1251141
1366041
1470941
1572941
1674341
1774541
074541
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
#s(literal -2 binary64)
(*.f64 x x)
x
Outputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
#s(literal 2 binary64)
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
#s(literal -2 binary64)
(*.f64 x x)
x

localize1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal -2 binary64) (*.f64 x x))
accuracy0
(*.f64 x x)
accuracy47.688369597731906
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
accuracy15.726359107793346
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
Samples
0.0ms0valid
0.0ms1valid
Compiler

Compiled 54 to 20 computations (63% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
adjust: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
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)

series3.0ms (0.2%)

Memory
5.0MiB live, 5.0MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
Outputs
#s(alt 2 (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* 2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2))))) (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2))))))) (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt 2 (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* 2 (pow x 2))) (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2))))) (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2))))))) (taylor 0 x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor 0 x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.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 (/ -2 (pow x 2)) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2)) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2)) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2)) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2)) (taylor inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.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 (/ -2 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2)) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2)) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2)) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2)) (taylor -inf x) (#s(alt #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) (patch #s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x))) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.f64 x x)) #<representation binary64>) () ())) ())
#s(alt (/ -2 (pow x 2)) (taylor -inf x) (#s(alt (/.f64 #s(literal -2 binary64) (*.f64 x x)) (patch (/.f64 #s(literal -2 binary64) (*.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>) () ())) ())
Calls

3 calls:

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

simplify109.0ms (6.7%)

Memory
22.2MiB live, 138.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026412
167412
2204384
3600368
41776368
55257368
08088358
Stop Event
iter limit
node limit
Counts
48 → 48
Calls
Call 1
Inputs
2
(+ 2 (* 2 (pow x 2)))
(+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))
(+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))))
2
(+ 2 (* 2 (pow x 2)))
(+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))
(+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ -2 (pow x 2))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(/ -2 (pow x 2))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ -2 (pow x 2))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(/ -2 (pow x 2))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(/ -2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
2
#s(literal 2 binary64)
(+ 2 (* 2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))
(fma.f64 (fma.f64 x x (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))))
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2 binary64) #s(literal 2 binary64)) (fma.f64 x x #s(literal 1 binary64)))
2
#s(literal 2 binary64)
(+ 2 (* 2 (pow x 2)))
(fma.f64 (*.f64 x x) #s(literal 2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))
(fma.f64 (fma.f64 x x (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64) #s(literal 2 binary64))
(+ 2 (* (pow x 2) (+ 2 (* (pow x 2) (+ 2 (* 2 (pow x 2)))))))
(*.f64 (fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal 2 binary64) #s(literal 2 binary64)) (fma.f64 x x #s(literal 1 binary64)))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 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)
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x)
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal -2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 x x))) (*.f64 x x))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(*.f64 (/.f64 (/.f64 (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal 1 binary64)) x) x) (-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64)))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x)
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal -2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 x x))) (*.f64 x x))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(*.f64 (/.f64 (/.f64 (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal 1 binary64)) x) x) (-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64)))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 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)
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x)
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal -2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 x x))) (*.f64 x x))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(*.f64 (/.f64 (/.f64 (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal 1 binary64)) x) x) (-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64)))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2)))
(/.f64 (/.f64 (-.f64 #s(literal -2 binary64) (/.f64 #s(literal 2 binary64) (*.f64 x x))) x) x)
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 2))) 2) (pow x 2))
(/.f64 (-.f64 (-.f64 (/.f64 #s(literal -2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal 2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 x x))) (*.f64 x x))
(/ (- (* -1 (/ (+ 2 (* 2 (/ 1 (pow x 2)))) (pow x 4))) (+ 2 (* 2 (/ 1 (pow x 2))))) (pow x 2))
(*.f64 (/.f64 (/.f64 (-.f64 (/.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal 1 binary64)) x) x) (-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64)))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(/ -2 (pow x 2))
(/.f64 #s(literal -2 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)

rewrite138.0ms (8.4%)

Memory
12.9MiB live, 170.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01338
01538
17838
272138
0932836
Stop Event
iter limit
node limit
iter limit
Counts
4 → 49
Calls
Call 1
Inputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
(/.f64 #s(literal -2 binary64) (*.f64 x x))
(*.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>

eval4.0ms (0.3%)

Memory
-44.0MiB live, 1.7MiB allocated
Compiler

Compiled 838 to 177 computations (78.9% saved)

prune1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New97097
Fresh000
Picked022
Done000
Total97299
Accuracy
100.0%
Counts
99 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
25.5%
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) (/.f64 #s(literal -2 binary64) (*.f64 x x)))
75.4%
#s(approx (- (/ 1 (+ x 1)) (/ 1 (- x 1))) #s(literal 2 binary64))
Compiler

Compiled 27 to 21 computations (22.2% saved)

regimes30.0ms (1.8%)

Memory
26.2MiB live, 26.2MiB allocated
Compiler

Compiled 11 to 7 computations (36.4% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Calls

1 calls:

0.0ms
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))))

Profiling

Loading profile data...