2frac (problem 3.3.1)

Time bar (total: 2.0s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze4.0ms (0.2%)

Memory
3.9MiB live, 3.9MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
50%50%50%0%0%0%0%2
75%75%25%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 11 to 8 computations (27.3% saved)

sample1.1s (53.6%)

Memory
-5.1MiB live, 814.0MiB allocated
Samples
671.0ms3 726×1valid
190.0ms4 278×0valid
Precisions
Click to see histograms. Total time spent on operations: 667.0ms
ival-add: 306.0ms (45.9% of total)
ival-div: 195.0ms (29.3% of total)
adjust: 96.0ms (14.4% of total)
ival-sub: 55.0ms (8.3% of total)
ival-true: 6.0ms (0.9% of total)
exact: 5.0ms (0.8% of total)
ival-assert: 3.0ms (0.5% of total)
Bogosity

explain2.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB 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) x))
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) x)
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) x))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
1.0ms1valid
0.0ms0valid
Compiler

Compiled 79 to 28 computations (64.6% saved)

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

preprocess19.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
12019
25318
310818
416918
521218
622618
069
0109
1159
2239
3329
4449
5649
61059
71479
82139
92479
102569
02569
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) x))
Outputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) x))
(-.f64 (/.f64 #s(literal -1 binary64) x) (/.f64 #s(literal -1 binary64) (-.f64 x #s(literal -1 binary64))))
Compiler

Compiled 9 to 6 computations (33.3% 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
76.6%
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) x))
Compiler

Compiled 9 to 6 computations (33.3% saved)

simplify8.0ms (0.4%)

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

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0622
01022
11522
22322
33222
44422
56422
610522
714722
821322
924722
1025622
025622
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) x))
(/.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) x)
Outputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) x))
(-.f64 (/.f64 #s(literal -1 binary64) x) (/.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) x)

localize1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Localize:

Found 4 expressions of interest:

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

Compiled 46 to 14 computations (69.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-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series3.0ms (0.1%)

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

3 calls:

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

simplify146.0ms (7.1%)

Memory
14.4MiB live, 89.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053305
1150286
2351274
31021268
43180263
55260262
66620262
77436262
87938262
08035260
Stop Event
iter limit
node limit
Counts
48 → 46
Calls
Call 1
Inputs
(/ -1 x)
(/ (- x 1) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
1
(+ 1 (* -1 x))
(+ 1 (* x (- x 1)))
(+ 1 (* x (- (* x (+ 1 (* -1 x))) 1)))
1
(+ 1 x)
(+ 1 x)
(+ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 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 x)
(/ 1 x)
(/ 1 x)
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (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 x)
(/ 1 x)
(/ 1 x)
Outputs
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ (- x 1) x)
(/.f64 (-.f64 x #s(literal 1 binary64)) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(-.f64 (/.f64 (-.f64 x #s(literal 1 binary64)) x) x)
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(*.f64 (-.f64 (/.f64 #s(literal -1 binary64) x) x) (-.f64 #s(literal 1 binary64) x))
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 #s(literal 1 binary64) x)
(+ 1 x)
(+.f64 #s(literal 1 binary64) x)
(+ 1 x)
(+.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (- 1 (/ 1 x)) x)
(/.f64 (/.f64 (-.f64 x #s(literal 1 binary64)) x) x)
(/ (- (+ 1 (/ 1 (pow x 2))) (/ 1 x)) x)
(/.f64 (-.f64 (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x) #s(literal -1 binary64)) x)
(/ (- (+ 1 (/ 1 (pow x 2))) (+ (/ 1 x) (/ 1 (pow x 3)))) x)
(/.f64 (-.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) #s(literal -1 binary64)) x)
x
(* x (+ 1 (/ 1 x)))
(+.f64 #s(literal 1 binary64) x)
(* x (+ 1 (/ 1 x)))
(+.f64 #s(literal 1 binary64) x)
(* x (+ 1 (/ 1 x)))
(+.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (/ (- (/ 1 x) 1) x))
(/.f64 (/.f64 (-.f64 x #s(literal 1 binary64)) x) x)
(* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x))
(/.f64 (-.f64 (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x) #s(literal -1 binary64)) x)
(* -1 (/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) x))
(/.f64 (-.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) #s(literal -1 binary64)) x)
x
(* x (+ 1 (/ 1 x)))
(+.f64 #s(literal 1 binary64) x)
(* x (+ 1 (/ 1 x)))
(+.f64 #s(literal 1 binary64) x)
(* x (+ 1 (/ 1 x)))
(+.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)

rewrite124.0ms (6%)

Memory
-29.2MiB live, 95.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0620
01020
15920
255120
3602220
0942818
Stop Event
iter limit
node limit
iter limit
Counts
4 → 325
Calls
Call 1
Inputs
(-.f64 (/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) x))
(/.f64 #s(literal 1 binary64) (+.f64 x #s(literal 1 binary64)))
(+.f64 x #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval6.0ms (0.3%)

Memory
10.9MiB live, 10.9MiB allocated
Compiler

Compiled 7 236 to 949 computations (86.9% saved)

prune1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New3692371
Fresh000
Picked101
Done000
Total3702372
Accuracy
100.0%
Counts
372 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 (/.f64 #s(literal -1 binary64) x) x))
28.6%
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
Compiler

Compiled 10 to 9 computations (10% saved)

simplify14.0ms (0.7%)

Memory
-19.9MiB live, 16.2MiB allocated
Algorithm
egg-herbie
Localize:

Found 5 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01143
01343
12043
22743
34343
46643
511143
618043
723543
829143
934343
1034743
034743
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
(/.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
x
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 (/.f64 #s(literal -1 binary64) x) x))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
x
Outputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
(/.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
x
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 (/.f64 #s(literal -1 binary64) x) x))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
x

localize1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Localize:

Found 5 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
accuracy0
(/.f64 #s(literal -1 binary64) x)
accuracy14.899131877367596
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 (/.f64 #s(literal -1 binary64) x) x))
accuracy0
(/.f64 #s(literal -1 binary64) x)
accuracy45.69089977401539
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
Samples
0.0ms1valid
0.0ms0valid
Compiler

Compiled 60 to 17 computations (71.7% 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-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series3.0ms (0.2%)

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

3 calls:

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

simplify137.0ms (6.7%)

Memory
3.6MiB live, 117.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
040358
1107348
2255332
3692316
42141308
55894304
67825304
08072304
Stop Event
iter limit
node limit
Counts
48 → 48
Calls
Call 1
Inputs
(/ -1 x)
(/ (- x 1) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ (- x 1) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ -1 x)
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
Outputs
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ (- x 1) x)
(/.f64 (-.f64 x #s(literal 1 binary64)) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(-.f64 (-.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal -1 binary64))
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (/.f64 #s(literal -1 binary64) x) x))
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ (- x 1) x)
(/.f64 (-.f64 x #s(literal 1 binary64)) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(-.f64 (-.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal -1 binary64))
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (/.f64 #s(literal -1 binary64) x) x))
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)

rewrite126.0ms (6.1%)

Memory
36.5MiB live, 110.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
01336
17234
261634
3653134
0843532
Stop Event
iter limit
node limit
iter limit
Counts
4 → 46
Calls
Call 1
Inputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
(/.f64 #s(literal -1 binary64) x)
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 (/.f64 #s(literal -1 binary64) x) x))
(/.f64 (/.f64 #s(literal -1 binary64) 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>

eval1.0ms (0.1%)

Memory
1.2MiB live, 1.2MiB allocated
Compiler

Compiled 1 003 to 189 computations (81.2% saved)

prune0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1251126
Fresh000
Picked112
Done000
Total1262128
Accuracy
100.0%
Counts
128 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
28.6%
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
Compiler

Compiled 10 to 9 computations (10% saved)

simplify72.0ms (3.5%)

Memory
-25.0MiB live, 24.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 3 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
01225
11925
22625
34225
46525
511125
618025
723625
829125
934525
1034925
034925
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
(/.f64 #s(literal -1 binary64) (*.f64 x x))
#s(literal -1 binary64)
(*.f64 x x)
x
Outputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
(/.f64 #s(literal -1 binary64) (*.f64 x x))
#s(literal -1 binary64)
(*.f64 x x)
x

localize1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal -1 binary64) (*.f64 x x))
accuracy0
(*.f64 x x)
accuracy14.899131877367596
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
Samples
0.0ms1valid
0.0ms0valid
Compiler

Compiled 37 to 16 computations (56.8% 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-add: 0.0ms (0% of total)
ival-mult: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)
ival-sub: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series2.0ms (0.1%)

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

simplify142.0ms (6.9%)

Memory
-14.9MiB live, 92.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
040227
1107222
2255214
3692206
42141202
55894200
67825200
08072200
Stop Event
iter limit
node limit
Counts
36 → 36
Calls
Call 1
Inputs
(/ -1 x)
(/ (- x 1) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(/ -1 (pow x 2))
(/ (- (/ 1 x) 1) (pow x 2))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(/ -1 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
Outputs
(/ -1 x)
(/.f64 #s(literal -1 binary64) x)
(/ (- x 1) x)
(/.f64 (-.f64 x #s(literal 1 binary64)) x)
(/ (- (* x (+ 1 (* -1 x))) 1) x)
(-.f64 (-.f64 (/.f64 #s(literal -1 binary64) x) x) #s(literal -1 binary64))
(/ (- (* x (+ 1 (* x (- x 1)))) 1) x)
(*.f64 (-.f64 #s(literal 1 binary64) x) (-.f64 (/.f64 #s(literal -1 binary64) x) x))
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) 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)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (/ 1 x) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (+ (/ 1 x) (/ 1 (pow x 3))) (+ 1 (/ 1 (pow x 2)))) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) 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)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ (- (/ 1 x) 1) (pow x 2))
(/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64)))
(/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) (pow x 2))
(/.f64 (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) x) x)) x) x)
(/ (- (* -1 (/ (- (* -1 (/ (- (/ 1 x) 1) x)) 1) x)) 1) (pow x 2))
(*.f64 (/.f64 (-.f64 #s(literal 1 binary64) x) (pow.f64 x #s(literal 3 binary64))) (-.f64 (/.f64 (/.f64 #s(literal 1 binary64) x) x) #s(literal -1 binary64)))
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) x) x)
(/ -1 (pow x 2))
(/.f64 (/.f64 #s(literal -1 binary64) 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)

rewrite136.0ms (6.7%)

Memory
34.9MiB live, 117.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
01223
17021
259321
3633821
0823620
Stop Event
iter limit
node limit
iter limit
Counts
3 → 44
Calls
Call 1
Inputs
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
(/.f64 #s(literal -1 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>

eval1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Compiler

Compiled 635 to 161 computations (74.6% saved)

prune1.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New80080
Fresh000
Picked011
Done011
Total80282
Accuracy
100.0%
Counts
82 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
76.7%
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) (*.f64 x x)))
28.6%
#s(approx (- (/ 1 (+ x 1)) (/ 1 x)) (/.f64 #s(literal -1 binary64) x))
Compiler

Compiled 35 to 23 computations (34.3% saved)

regimes0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 9 to 6 computations (33.3% 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) x))

Profiling

Loading profile data...