Asymptote B

Time bar (total: 1.3s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze2.0ms (0.2%)

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

sample662.0ms (49.1%)

Memory
-2.3MiB live, 833.5MiB allocated
Samples
430.0ms8 004×0valid
Precisions
Click to see histograms. Total time spent on operations: 286.0ms
ival-div: 149.0ms (52.1% of total)
ival-add: 71.0ms (24.8% of total)
ival-sub: 52.0ms (18.2% of total)
ival-true: 6.0ms (2.1% of total)
exact: 5.0ms (1.7% of total)
ival-assert: 3.0ms (1% of total)
Bogosity

explain2.0ms (0.1%)

Memory
2.6MiB live, 2.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64)))
00-0-(+.f64 x #s(literal 1 binary64))
00-0-(-.f64 x #s(literal 1 binary64))
00-0-#s(literal 1 binary64)
00-0-(+.f64 (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 x (+.f64 x #s(literal 1 binary64))))
00-0-(/.f64 x (+.f64 x #s(literal 1 binary64)))
00-0-x
Confusion
Predicted +Predicted -
+00
-04
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-004
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
04
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
1.0ms0valid
Compiler

Compiled 102 to 32 computations (68.6% saved)

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

preprocess19.0ms (1.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0929
12524
26322
313822
425822
542822
645722
747122
848422
0711
01211
11911
22011
02011
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 x (+.f64 x #s(literal 1 binary64))))
Outputs
(+.f64 (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 x (+.f64 x #s(literal 1 binary64))))
(+.f64 (/.f64 x (+.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)

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
100.0%
(+.f64 (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 x (+.f64 x #s(literal 1 binary64))))
Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify3.0ms (0.2%)

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

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0729
01229
11929
22029
02029
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(+.f64 (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 x (+.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 x (+.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 x (+.f64 x #s(literal 1 binary64))))
(+.f64 (/.f64 x (+.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 x (+.f64 x #s(literal 1 binary64)))
(+.f64 x #s(literal 1 binary64))

localize1.0ms (0%)

Memory
0.9MiB live, 0.9MiB 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 (/.f64 #s(literal 1 binary64) (-.f64 x #s(literal 1 binary64))) (/.f64 x (+.f64 x #s(literal 1 binary64))))
accuracy0
(+.f64 x #s(literal 1 binary64))
Samples
0.0ms0valid
Compiler

Compiled 60 to 16 computations (73.3% saved)

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

series7.0ms (0.5%)

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

3 calls:

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

simplify137.0ms (10.2%)

Memory
17.6MiB live, 136.1MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
083387
1211385
2469374
31228354
43217348
56371346
67705346
08035338
Stop Event
iter limit
node limit
Counts
60 → 55
Calls
Call 1
Inputs
-1
(- (* -2 (pow x 2)) 1)
(- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 1)
(- (* (pow x 2) (- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 2)) 1)
-1
(- (* -1 x) 1)
(- (* x (- (* -1 x) 1)) 1)
(- (* x (- (* x (- (* -1 x) 1)) 1)) 1)
-1
(- x 1)
(- x 1)
(- x 1)
x
(* x (+ 1 (* -1 x)))
(* x (+ 1 (* x (- x 1))))
(* x (+ 1 (* x (- (* x (+ 1 (* -1 x))) 1))))
1
(+ 1 x)
(+ 1 x)
(+ 1 x)
1
(+ 1 (* 2 (/ 1 (pow x 2))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(/ 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)))
1
(- 1 (/ 1 x))
(- (+ 1 (/ 1 (pow x 2))) (/ 1 x))
(- (+ 1 (/ 1 (pow x 2))) (+ (/ 1 x) (/ 1 (pow x 3))))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
1
(+ 1 (* 2 (/ 1 (pow x 2))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(/ 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)))
1
(- 1 (/ 1 x))
(+ 1 (* -1 (/ (- 1 (/ 1 x)) x)))
(+ 1 (* -1 (/ (+ 1 (* -1 (/ (- 1 (/ 1 x)) x))) x)))
x
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
(* x (+ 1 (/ 1 x)))
Outputs
-1
#s(literal -1 binary64)
(- (* -2 (pow x 2)) 1)
(fma.f64 (*.f64 x x) #s(literal -2 binary64) #s(literal -1 binary64))
(- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 1)
(fma.f64 (fma.f64 x x (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64) #s(literal -1 binary64))
(- (* (pow x 2) (- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 2)) 1)
(fma.f64 #s(literal -2 binary64) (fma.f64 (+.f64 (pow.f64 x #s(literal 3 binary64)) x) x (pow.f64 x #s(literal 6 binary64))) #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))
x
(* x (+ 1 (* -1 x)))
(fma.f64 (neg.f64 x) x x)
(* x (+ 1 (* x (- x 1))))
(*.f64 (fma.f64 (-.f64 x #s(literal 1 binary64)) x #s(literal 1 binary64)) x)
(* x (+ 1 (* x (- (* x (+ 1 (* -1 x))) 1))))
(*.f64 (-.f64 #s(literal 1 binary64) x) (+.f64 (pow.f64 x #s(literal 3 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 (* 2 (/ 1 (pow x 2))))
(+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64)))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(+.f64 (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 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 (/.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 (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) 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
#s(literal 1 binary64)
(- 1 (/ 1 x))
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x))
(- (+ 1 (/ 1 (pow x 2))) (/ 1 x))
(-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) x) #s(literal -1 binary64))
(- (+ 1 (/ 1 (pow x 2))) (+ (/ 1 x) (/ 1 (pow x 3))))
(-.f64 #s(literal 1 binary64) (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) 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
#s(literal 1 binary64)
(+ 1 (* 2 (/ 1 (pow x 2))))
(+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64)))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(+.f64 (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 6 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 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 (/.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 (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal -1 binary64)) x) #s(literal -1 binary64)) x) #s(literal -1 binary64)) 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))
1
#s(literal 1 binary64)
(- 1 (/ 1 x))
(-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) x))
(+ 1 (* -1 (/ (- 1 (/ 1 x)) x)))
(-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) x) #s(literal -1 binary64))
(+ 1 (* -1 (/ (+ 1 (* -1 (/ (- 1 (/ 1 x)) x))) x)))
(-.f64 #s(literal 1 binary64) (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1 binary64) 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))

rewrite154.0ms (11.4%)

Memory
23.9MiB live, 177.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

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

eval13.0ms (1%)

Memory
-16.9MiB live, 21.7MiB allocated
Compiler

Compiled 14 411 to 1 738 computations (87.9% saved)

prune1.0ms (0.1%)

Memory
2.0MiB live, 2.0MiB allocated
Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New6142616
Fresh000
Picked101
Done000
Total6152617
Accuracy
100.0%
Counts
617 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
26.2%
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal 1 binary64))
75.4%
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal -1 binary64))
Compiler

Compiled 4 to 6 computations (-50% saved)

simplify3.0ms (0.2%)

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

Found 2 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01028
01028
11628
21728
01728
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal -1 binary64))
#s(literal -1 binary64)
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal 1 binary64))
#s(literal 1 binary64)
Outputs
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal -1 binary64))
#s(literal -1 binary64)
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal 1 binary64))
#s(literal 1 binary64)

localize1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy47.248942822309004
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal 1 binary64))
accuracy15.749647607436334
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal -1 binary64))
Samples
0.0ms0valid
Compiler

Compiled 32 to 15 computations (53.1% saved)

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

series1.0ms (0.1%)

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

3 calls:

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

simplify155.0ms (11.5%)

Memory
2.9MiB live, 120.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029240
157240
2114240
3232232
4453232
5745228
61041228
71681228
82392228
93578228
105389228
116808228
127793228
08323218
Stop Event
iter limit
node limit
Counts
24 → 24
Calls
Call 1
Inputs
-1
(- (* -2 (pow x 2)) 1)
(- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 1)
(- (* (pow x 2) (- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 2)) 1)
-1
(- (* -2 (pow x 2)) 1)
(- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 1)
(- (* (pow x 2) (- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 2)) 1)
1
(+ 1 (* 2 (/ 1 (pow x 2))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
1
(+ 1 (* 2 (/ 1 (pow x 2))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
1
(+ 1 (* 2 (/ 1 (pow x 2))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
1
(+ 1 (* 2 (/ 1 (pow x 2))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
Outputs
-1
#s(literal -1 binary64)
(- (* -2 (pow x 2)) 1)
(fma.f64 (*.f64 x x) #s(literal -2 binary64) #s(literal -1 binary64))
(- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 1)
(fma.f64 (fma.f64 x x (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64) #s(literal -1 binary64))
(- (* (pow x 2) (- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 2)) 1)
(fma.f64 (fma.f64 (+.f64 (pow.f64 x #s(literal 5 binary64)) x) x (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64) #s(literal -1 binary64))
-1
#s(literal -1 binary64)
(- (* -2 (pow x 2)) 1)
(fma.f64 (*.f64 x x) #s(literal -2 binary64) #s(literal -1 binary64))
(- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 1)
(fma.f64 (fma.f64 x x (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64) #s(literal -1 binary64))
(- (* (pow x 2) (- (* (pow x 2) (- (* -2 (pow x 2)) 2)) 2)) 1)
(fma.f64 (fma.f64 (+.f64 (pow.f64 x #s(literal 5 binary64)) x) x (pow.f64 x #s(literal 4 binary64))) #s(literal -2 binary64) #s(literal -1 binary64))
1
#s(literal 1 binary64)
(+ 1 (* 2 (/ 1 (pow x 2))))
(+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(-.f64 (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 (* 2 (/ 1 (pow x 2))))
(+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(-.f64 (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 (* 2 (/ 1 (pow x 2))))
(+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(-.f64 (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 (* 2 (/ 1 (pow x 2))))
(+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 1 binary64))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (/ 2 (pow x 4))))
(-.f64 (/.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))
(+ 1 (+ (* 2 (/ 1 (pow x 2))) (+ (* 2 (/ 1 (pow x 6))) (/ 2 (pow x 4)))))
(-.f64 (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (*.f64 x x)) #s(literal 2 binary64)) (pow.f64 x #s(literal 4 binary64))) (-.f64 (/.f64 (/.f64 #s(literal -2 binary64) x) x) #s(literal 1 binary64)))

rewrite187.0ms (13.9%)

Memory
-1.8MiB live, 168.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01026
01026
16326
269826
0959026
Stop Event
iter limit
node limit
saturated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal -1 binary64))
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal 1 binary64))
Outputs
#<batchref>
#<batchref>

eval0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Compiler

Compiled 246 to 34 computations (86.2% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New26026
Fresh000
Picked022
Done000
Total26228
Accuracy
100.0%
Counts
28 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
26.2%
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal 1 binary64))
75.4%
#s(approx (+ (/ 1 (- x 1)) (/ x (+ x 1))) #s(literal -1 binary64))
Compiler

Compiled 19 to 16 computations (15.8% saved)

regimes0.0ms (0%)

Memory
0.3MiB live, 0.3MiB 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 x (+.f64 x #s(literal 1 binary64))))

Profiling

Loading profile data...