2atan (example 3.5)

Time bar (total: 2.3s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze2.0ms (0.1%)

Memory
1.8MiB live, 1.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%8.1%91.9%0%0%0%0
0%0%8.1%91.9%0%0%0%1
50%4.1%4.1%91.9%0%0%0%2
75%6.1%2%91.9%0%0%0%3
87.5%7.1%1%91.9%0%0%0%4
93.8%7.6%0.5%91.9%0%0%0%5
96.9%7.9%0.3%91.9%0%0%0%6
98.4%8%0.1%91.9%0%0%0%7
99.2%8%0.1%91.9%0%0%0%8
99.6%8.1%0%91.9%0%0%0%9
99.8%8.1%0%91.9%0%0%0%10
99.9%8.1%0%91.9%0%0%0%11
100%8.1%0%91.9%0%0%0%12
Compiler

Compiled 15 to 11 computations (26.7% saved)

sample1.5s (67%)

Memory
32.2MiB live, 1 265.7MiB allocated
Samples
1.1s7 236×1valid
67.0ms364×2valid
27.0ms404×0valid
Precisions
Click to see histograms. Total time spent on operations: 955.0ms
ival-atan: 403.0ms (42.2% of total)
adjust: 195.0ms (20.4% of total)
const: 112.0ms (11.7% of total)
ival-add: 96.0ms (10% of total)
ival-sub: 76.0ms (8% of total)
ival-<: 26.0ms (2.7% of total)
ival->: 25.0ms (2.6% of total)
ival-and: 12.0ms (1.3% of total)
exact: 7.0ms (0.7% of total)
ival-assert: 3.0ms (0.3% of total)
Bogosity

explain2.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
40-0-(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
00-0-N
00-0-(+.f64 N #s(literal 1 binary64))
00-0-#s(literal 1 binary64)
00-0-(atan.f64 N)
00-0-(atan.f64 (+.f64 N #s(literal 1 binary64)))
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
-.f64(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))cancellation40
Confusion
Predicted +Predicted -
+40
-00
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+400
-000
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
14
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
1.0ms1valid
0.0ms2valid
Compiler

Compiled 65 to 28 computations (56.9% saved)

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

preprocess16.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
11817
24116
37316
412116
517816
620116
721216
067
0107
1157
2197
3257
4337
5487
6807
71067
81507
91657
101737
01737
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
Outputs
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
(-.f64 (atan.f64 (+.f64 #s(literal 1 binary64) N)) (atan.f64 N))
Compiler

Compiled 7 to 6 computations (14.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
3.9%
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify6.0ms (0.3%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(atan.f64 N)
cost-diff0
(+.f64 N #s(literal 1 binary64))
cost-diff0
(atan.f64 (+.f64 N #s(literal 1 binary64)))
cost-diff0
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0618
01018
11518
21918
32518
43318
54818
68018
710618
815018
916518
1017318
017318
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
(atan.f64 (+.f64 N #s(literal 1 binary64)))
(+.f64 N #s(literal 1 binary64))
N
#s(literal 1 binary64)
(atan.f64 N)
Outputs
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
(-.f64 (atan.f64 (+.f64 #s(literal 1 binary64) N)) (atan.f64 N))
(atan.f64 (+.f64 N #s(literal 1 binary64)))
(atan.f64 (+.f64 #s(literal 1 binary64) N))
(+.f64 N #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) N)
N
#s(literal 1 binary64)
(atan.f64 N)

localize1.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(+.f64 N #s(literal 1 binary64))
accuracy0
(atan.f64 (+.f64 N #s(literal 1 binary64)))
accuracy0
(atan.f64 N)
accuracy61.479779494677246
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
Samples
0.0ms1valid
0.0ms2valid
Compiler

Compiled 38 to 14 computations (63.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
adjust: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-atan: 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
1.4MiB live, 1.4MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())
#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())
Outputs
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor 0 N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor 0 N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor 0 N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor 0 N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor 0 N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor 0 N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor 0 N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor 0 N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor 0 N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor 0 N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor 0 N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor 0 N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (+ 1 N)) (atan N)) (taylor inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (+ 1 N)) (taylor inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt N (taylor inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (- (atan (- 1 (* -1 N))) (atan N)) (taylor -inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (- 1 (* -1 N))) (atan N)) (taylor -inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (- 1 (* -1 N))) (atan N)) (taylor -inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (- (atan (- 1 (* -1 N))) (atan N)) (taylor -inf N) (#s(alt (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) (patch (-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N)) #<representation binary64>) () ())) ())
#s(alt (atan (- 1 (* -1 N))) (taylor -inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (- 1 (* -1 N))) (taylor -inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (- 1 (* -1 N))) (taylor -inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan (- 1 (* -1 N))) (taylor -inf N) (#s(alt (atan.f64 (+.f64 N #s(literal 1 binary64))) (patch (atan.f64 (+.f64 N #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt N (taylor -inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (+.f64 N #s(literal 1 binary64)) (patch (+.f64 N #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor -inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor -inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor -inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
#s(alt (atan N) (taylor -inf N) (#s(alt (atan.f64 N) (patch (atan.f64 N) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
0.0ms
N
@inf
((- (atan (+ N 1)) (atan N)) (atan (+ N 1)) (+ N 1) (atan N))
0.0ms
N
@-inf
((- (atan (+ N 1)) (atan N)) (atan (+ N 1)) (+ N 1) (atan N))
0.0ms
N
@0
((- (atan (+ N 1)) (atan N)) (atan (+ N 1)) (+ N 1) (atan N))

simplify12.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
014186
134186
244186
389186
4189186
5335186
6383186
7420186
8474186
9489186
10497186
0497186
Stop Event
iter limit
saturated
Counts
48 → 46
Calls
Call 1
Inputs
(- (atan (+ 1 N)) (atan N))
(- (atan (+ 1 N)) (atan N))
(- (atan (+ 1 N)) (atan N))
(- (atan (+ 1 N)) (atan N))
(atan (+ 1 N))
(atan (+ 1 N))
(atan (+ 1 N))
(atan (+ 1 N))
1
(+ 1 N)
(+ 1 N)
(+ 1 N)
(atan N)
(atan N)
(atan N)
(atan N)
(- (atan (+ 1 N)) (atan N))
(- (atan (+ 1 N)) (atan N))
(- (atan (+ 1 N)) (atan N))
(- (atan (+ 1 N)) (atan N))
(atan (+ 1 N))
(atan (+ 1 N))
(atan (+ 1 N))
(atan (+ 1 N))
N
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(atan N)
(atan N)
(atan N)
(atan N)
(- (atan (- 1 (* -1 N))) (atan N))
(- (atan (- 1 (* -1 N))) (atan N))
(- (atan (- 1 (* -1 N))) (atan N))
(- (atan (- 1 (* -1 N))) (atan N))
(atan (- 1 (* -1 N)))
(atan (- 1 (* -1 N)))
(atan (- 1 (* -1 N)))
(atan (- 1 (* -1 N)))
N
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(atan N)
(atan N)
(atan N)
(atan N)
Outputs
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (+ 1 N)) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (+ 1 N))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
N
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(- (atan (- 1 (* -1 N))) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (- 1 (* -1 N))) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (- 1 (* -1 N))) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(- (atan (- 1 (* -1 N))) (atan N))
(-.f64 (atan.f64 (-.f64 N #s(literal -1 binary64))) (atan.f64 N))
(atan (- 1 (* -1 N)))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (- 1 (* -1 N)))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (- 1 (* -1 N)))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
(atan (- 1 (* -1 N)))
(atan.f64 (-.f64 N #s(literal -1 binary64)))
N
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)
(atan N)
(atan.f64 N)

rewrite136.0ms (6.1%)

Memory
-28.9MiB live, 90.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0616
01016
14416
228416
3288516
0835316
Stop Event
iter limit
node limit
iter limit
Counts
4 → 239
Calls
Call 1
Inputs
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))
(atan.f64 (+.f64 N #s(literal 1 binary64)))
(+.f64 N #s(literal 1 binary64))
(atan.f64 N)
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>

eval6.0ms (0.3%)

Memory
6.9MiB live, 6.9MiB allocated
Compiler

Compiled 7 832 to 922 computations (88.2% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New2841285
Fresh000
Picked101
Done000
Total2851286
Accuracy
99.6%
Counts
286 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64)))
Compiler

Compiled 8 to 5 computations (37.5% saved)

simplify4.0ms (0.2%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 #s(literal 1 binary64) N)
cost-diff0
(fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64))
cost-diff0
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0519
0919
11419
22119
32919
43919
54219
64519
04519
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64)))
#s(literal 1 binary64)
(fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) N)
N
Outputs
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64)))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 N #s(literal 1 binary64)) N #s(literal 1 binary64)))
#s(literal 1 binary64)
(fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64))
(fma.f64 (+.f64 N #s(literal 1 binary64)) N #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) N)
(+.f64 N #s(literal 1 binary64))
N

localize1.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64))
accuracy0
(+.f64 #s(literal 1 binary64) N)
accuracy0.25
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64)))
Samples
0.0ms0valid
Compiler

Compiled 42 to 13 computations (69% saved)

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

series2.0ms (0.1%)

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

3 calls:

TimeVariablePointExpression
0.0ms
N
@-inf
((atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (+ 1 N))
0.0ms
N
@inf
((atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (+ 1 N))
0.0ms
N
@0
((atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (+ 1 N))

simplify133.0ms (5.9%)

Memory
-15.4MiB live, 73.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025208
167200
2117200
3451200
42326200
55354200
08132180
Stop Event
iter limit
node limit
Counts
36 → 34
Calls
Call 1
Inputs
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
1
(+ 1 N)
(+ 1 (* N (+ 1 N)))
(+ 1 (* N (+ 1 N)))
1
(+ 1 N)
(+ 1 N)
(+ 1 N)
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
N
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
N
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
Outputs
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
N
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
N
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))

rewrite132.0ms (5.9%)

Memory
15.6MiB live, 88.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0517
0917
13717
226217
3279117
0837917
Stop Event
iter limit
node limit
iter limit
Counts
3 → 289
Calls
Call 1
Inputs
(atan2.f64 #s(literal 1 binary64) (fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64)))
(fma.f64 (+.f64 #s(literal 1 binary64) N) N #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) N)
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>

eval7.0ms (0.3%)

Memory
7.5MiB live, 7.5MiB allocated
Compiler

Compiled 7 546 to 1 145 computations (84.8% saved)

prune1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New3194323
Fresh000
Picked101
Done000
Total3204324
Accuracy
99.6%
Counts
324 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
8.5%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
94.5%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
7.0%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
Compiler

Compiled 23 to 20 computations (13% saved)

simplify13.0ms (0.6%)

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

Found 11 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 N N N)
cost-diff0
#s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))
cost-diff0
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
cost-diff0
(-.f64 N #s(literal -1 binary64))
cost-diff0
#s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))
cost-diff0
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
cost-diff0
(*.f64 N N)
cost-diff0
#s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))
cost-diff0
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
cost-diff0
#s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))
cost-diff0
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017112
024104
133104
245104
350104
467104
590104
6128104
7198104
8319104
9382104
10384104
0384104
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))
(*.f64 N N)
N
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))
(-.f64 N #s(literal -1 binary64))
N
#s(literal -1 binary64)
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))
(fma.f64 N N N)
N
Outputs
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))
(*.f64 N N)
N
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))
(-.f64 N #s(literal -1 binary64))
N
#s(literal -1 binary64)
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
#s(literal 1 binary64)
#s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))
(fma.f64 N N N)
N

localize1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Localize:

Found 11 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 N N N)
accuracy0
#s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))
accuracy0.25
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
accuracy0
(-.f64 N #s(literal -1 binary64))
accuracy0.25
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
accuracy58.54646318656738
#s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))
accuracy0
(*.f64 N N)
accuracy0.25
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
accuracy3.414748108393026
#s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))
accuracy0.25
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
accuracy59.54546478695091
#s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))
Samples
0.0ms0valid
Compiler

Compiled 141 to 26 computations (81.6% saved)

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

series5.0ms (0.2%)

Memory
4.7MiB live, 4.7MiB allocated
Counts
11 → 132
Calls
Call 1
Inputs
#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())
#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())
#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())
#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())
#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())
#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())
Outputs
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor 0 N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor 0 N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor 0 N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor 0 N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (+ 1 N)))) (taylor 0 N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (+ 1 N) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* N (+ 1 N))) (taylor 0 N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt N (taylor 0 N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 N)) (taylor 0 N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 N)) (taylor 0 N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 N)) (taylor 0 N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt N (taylor inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (+ N (pow N 2)))) (taylor inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) (patch #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt (*.f64 N N) (patch (*.f64 N N) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) (patch #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))) #<representation binary64>) () ())) ())
#s(alt N (taylor -inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* N (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (-.f64 N #s(literal -1 binary64)) (patch (-.f64 N #s(literal -1 binary64)) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (atan2 1 (+ 1 (* N (- 1 (* -1 N))))) (taylor -inf N) (#s(alt (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) (patch (atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2))))) (taylor -inf N) (#s(alt #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) (patch #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)) #<representation binary64>) () ())) ())
#s(alt (pow N 2) (taylor -inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
#s(alt (* (pow N 2) (+ 1 (/ 1 N))) (taylor -inf N) (#s(alt (fma.f64 N N N) (patch (fma.f64 N N N) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
N
@-inf
((atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (* N N) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (- N -1) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (+ (* N N) N))
1.0ms
N
@inf
((atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (* N N) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (- N -1) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (+ (* N N) N))
1.0ms
N
@0
((atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (* N N) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (- N -1) (atan2 1 (+ (* (+ 1 N) N) 1)) (+ (* (+ 1 N) N) 1) (+ (* N N) N))

simplify121.0ms (5.4%)

Memory
-9.6MiB live, 72.0MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025798
167798
2117798
3451798
42326798
55354798
08132709
Stop Event
iter limit
node limit
Counts
132 → 129
Calls
Call 1
Inputs
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
1
(+ 1 N)
(+ 1 (* N (+ 1 N)))
(+ 1 (* N (+ 1 N)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
1
(+ 1 N)
(+ 1 (* N (+ 1 N)))
(+ 1 (* N (+ 1 N)))
(pow N 2)
(pow N 2)
(pow N 2)
(pow N 2)
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
1
(+ 1 N)
(+ 1 (* N (+ 1 N)))
(+ 1 (* N (+ 1 N)))
1
(+ 1 N)
(+ 1 N)
(+ 1 N)
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2 1 (+ 1 (* N (+ 1 N))))
1
(+ 1 N)
(+ 1 (* N (+ 1 N)))
(+ 1 (* N (+ 1 N)))
N
(* N (+ 1 N))
(* N (+ 1 N))
(* N (+ 1 N))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(pow N 2)
(pow N 2)
(pow N 2)
(pow N 2)
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
N
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2 1 (+ 1 (+ N (pow N 2))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (/ 1 N)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(pow N 2)
(pow N 2)
(pow N 2)
(pow N 2)
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
N
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(* N (+ 1 (/ 1 N)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(pow N 2)
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (/ 1 N)))
(* (pow N 2) (+ 1 (/ 1 N)))
Outputs
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (+ 1 N))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
1
#s(literal 1 binary64)
(+ 1 N)
(-.f64 N #s(literal -1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(+ 1 (* N (+ 1 N)))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
N
(* N (+ 1 N))
(fma.f64 N N N)
(* N (+ 1 N))
(fma.f64 N N N)
(* N (+ 1 N))
(fma.f64 N N N)
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
N
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (+ N (pow N 2))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(pow N 2)
(*.f64 N N)
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
N
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(* N (+ 1 (/ 1 N)))
(-.f64 N #s(literal -1 binary64))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(atan2 1 (+ 1 (* N (- 1 (* -1 N)))))
(atan2.f64 #s(literal 1 binary64) (fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64)))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(* (pow N 2) (+ 1 (+ (/ 1 N) (/ 1 (pow N 2)))))
(fma.f64 (-.f64 N #s(literal -1 binary64)) N #s(literal 1 binary64))
(pow N 2)
(*.f64 N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)
(* (pow N 2) (+ 1 (/ 1 N)))
(fma.f64 N N N)

rewrite132.0ms (5.8%)

Memory
8.2MiB live, 82.1MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
017104
02496
17796
251596
3727396
0851396
Stop Event
iter limit
node limit
iter limit
Counts
11 → 249
Calls
Call 1
Inputs
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
#s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64))
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
#s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N))
(*.f64 N N)
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
#s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64)))
(-.f64 N #s(literal -1 binary64))
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
#s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N))
(fma.f64 N N N)
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>

eval5.0ms (0.2%)

Memory
5.9MiB live, 5.9MiB allocated
Compiler

Compiled 5 601 to 1 038 computations (81.5% saved)

prune3.0ms (0.1%)

Memory
-36.9MiB live, 1.4MiB allocated
Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New3780378
Fresh000
Picked044
Done000
Total3784382
Accuracy
99.6%
Counts
382 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (fma.f64 N N N)))
8.5%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (-.f64 N #s(literal -1 binary64))))
94.5%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) (*.f64 N N)))
7.0%
(atan2.f64 #s(literal 1 binary64) #s(approx (+ (* (+ 1 N) N) 1) #s(literal 1 binary64)))
Compiler

Compiled 61 to 41 computations (32.8% saved)

regimes0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 7 to 6 computations (14.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Calls

1 calls:

0.0ms
(-.f64 (atan.f64 (+.f64 N #s(literal 1 binary64))) (atan.f64 N))

Profiling

Loading profile data...