intervals 0.3.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION.txt +1 -0
- data/ext/crlibm/AUTHORS +2 -0
- data/ext/crlibm/COPYING +504 -0
- data/ext/crlibm/ChangeLog +80 -0
- data/ext/crlibm/INSTALL +182 -0
- data/ext/crlibm/Makefile.am +84 -0
- data/ext/crlibm/Makefile.in +530 -0
- data/ext/crlibm/NEWS +0 -0
- data/ext/crlibm/README +31 -0
- data/ext/crlibm/TODO +47 -0
- data/ext/crlibm/VERSION +1 -0
- data/ext/crlibm/aclocal.m4 +989 -0
- data/ext/crlibm/atan-itanium.c +846 -0
- data/ext/crlibm/atan-pentium.c +261 -0
- data/ext/crlibm/atan_accurate.c +244 -0
- data/ext/crlibm/atan_accurate.h +191 -0
- data/ext/crlibm/atan_fast.c +324 -0
- data/ext/crlibm/atan_fast.h +678 -0
- data/ext/crlibm/config.guess +1461 -0
- data/ext/crlibm/config.sub +1566 -0
- data/ext/crlibm/configure +7517 -0
- data/ext/crlibm/configure.ac +364 -0
- data/ext/crlibm/crlibm.h +125 -0
- data/ext/crlibm/crlibm_config.h +149 -0
- data/ext/crlibm/crlibm_config.h.in +148 -0
- data/ext/crlibm/crlibm_private.c +293 -0
- data/ext/crlibm/crlibm_private.h +658 -0
- data/ext/crlibm/csh_fast.c +631 -0
- data/ext/crlibm/csh_fast.h +771 -0
- data/ext/crlibm/double-extended.h +496 -0
- data/ext/crlibm/exp-td.c +962 -0
- data/ext/crlibm/exp-td.h +685 -0
- data/ext/crlibm/exp_accurate.c +197 -0
- data/ext/crlibm/exp_accurate.h +85 -0
- data/ext/crlibm/gappa/log-de-E0-logir0.gappa +106 -0
- data/ext/crlibm/gappa/log-de-E0.gappa +79 -0
- data/ext/crlibm/gappa/log-de.gappa +81 -0
- data/ext/crlibm/gappa/log-td-E0-logir0.gappa +126 -0
- data/ext/crlibm/gappa/log-td-E0.gappa +143 -0
- data/ext/crlibm/gappa/log-td-accurate-E0-logir0.gappa +230 -0
- data/ext/crlibm/gappa/log-td-accurate-E0.gappa +213 -0
- data/ext/crlibm/gappa/log-td-accurate.gappa +217 -0
- data/ext/crlibm/gappa/log-td.gappa +156 -0
- data/ext/crlibm/gappa/trigoSinCosCase3.gappa +204 -0
- data/ext/crlibm/gappa/trigoTanCase2.gappa +73 -0
- data/ext/crlibm/install-sh +269 -0
- data/ext/crlibm/log-de.c +431 -0
- data/ext/crlibm/log-de.h +732 -0
- data/ext/crlibm/log-td.c +852 -0
- data/ext/crlibm/log-td.h +819 -0
- data/ext/crlibm/log10-td.c +906 -0
- data/ext/crlibm/log10-td.h +823 -0
- data/ext/crlibm/log2-td.c +935 -0
- data/ext/crlibm/log2-td.h +821 -0
- data/ext/crlibm/maple/atan.mpl +359 -0
- data/ext/crlibm/maple/common-procedures.mpl +997 -0
- data/ext/crlibm/maple/csh.mpl +446 -0
- data/ext/crlibm/maple/double-extended.mpl +151 -0
- data/ext/crlibm/maple/exp-td.mpl +195 -0
- data/ext/crlibm/maple/log-de.mpl +243 -0
- data/ext/crlibm/maple/log-td.mpl +316 -0
- data/ext/crlibm/maple/log10-td.mpl +345 -0
- data/ext/crlibm/maple/log2-td.mpl +334 -0
- data/ext/crlibm/maple/trigo.mpl +728 -0
- data/ext/crlibm/maple/triple-double.mpl +58 -0
- data/ext/crlibm/missing +198 -0
- data/ext/crlibm/mkinstalldirs +40 -0
- data/ext/crlibm/rem_pio2_accurate.c +219 -0
- data/ext/crlibm/rem_pio2_accurate.h +53 -0
- data/ext/crlibm/scs_lib/AUTHORS +3 -0
- data/ext/crlibm/scs_lib/COPYING +504 -0
- data/ext/crlibm/scs_lib/ChangeLog +16 -0
- data/ext/crlibm/scs_lib/INSTALL +215 -0
- data/ext/crlibm/scs_lib/Makefile.am +18 -0
- data/ext/crlibm/scs_lib/Makefile.in +328 -0
- data/ext/crlibm/scs_lib/NEWS +0 -0
- data/ext/crlibm/scs_lib/README +9 -0
- data/ext/crlibm/scs_lib/TODO +4 -0
- data/ext/crlibm/scs_lib/addition_scs.c +623 -0
- data/ext/crlibm/scs_lib/config.guess +1461 -0
- data/ext/crlibm/scs_lib/config.sub +1566 -0
- data/ext/crlibm/scs_lib/configure +6226 -0
- data/ext/crlibm/scs_lib/division_scs.c +110 -0
- data/ext/crlibm/scs_lib/double2scs.c +174 -0
- data/ext/crlibm/scs_lib/install-sh +269 -0
- data/ext/crlibm/scs_lib/missing +198 -0
- data/ext/crlibm/scs_lib/mkinstalldirs +40 -0
- data/ext/crlibm/scs_lib/multiplication_scs.c +456 -0
- data/ext/crlibm/scs_lib/poly_fct.c +112 -0
- data/ext/crlibm/scs_lib/print_scs.c +73 -0
- data/ext/crlibm/scs_lib/rand_scs.c +63 -0
- data/ext/crlibm/scs_lib/scs.h +353 -0
- data/ext/crlibm/scs_lib/scs2double.c +391 -0
- data/ext/crlibm/scs_lib/scs2mpf.c +58 -0
- data/ext/crlibm/scs_lib/scs2mpfr.c +61 -0
- data/ext/crlibm/scs_lib/scs_private.c +23 -0
- data/ext/crlibm/scs_lib/scs_private.h +133 -0
- data/ext/crlibm/scs_lib/tests/tbx_timing.h +102 -0
- data/ext/crlibm/scs_lib/wrapper_scs.h +486 -0
- data/ext/crlibm/scs_lib/zero_scs.c +52 -0
- data/ext/crlibm/stamp-h.in +1 -0
- data/ext/crlibm/tests/Makefile.am +43 -0
- data/ext/crlibm/tests/Makefile.in +396 -0
- data/ext/crlibm/tests/blind_test.c +148 -0
- data/ext/crlibm/tests/generate_test_vectors.c +258 -0
- data/ext/crlibm/tests/soak_test.c +334 -0
- data/ext/crlibm/tests/test_common.c +627 -0
- data/ext/crlibm/tests/test_common.h +28 -0
- data/ext/crlibm/tests/test_perf.c +570 -0
- data/ext/crlibm/tests/test_val.c +249 -0
- data/ext/crlibm/trigo_accurate.c +500 -0
- data/ext/crlibm/trigo_accurate.h +331 -0
- data/ext/crlibm/trigo_fast.c +1219 -0
- data/ext/crlibm/trigo_fast.h +639 -0
- data/ext/crlibm/triple-double.h +878 -0
- data/ext/extconf.rb +31 -0
- data/ext/fpu.c +107 -0
- data/ext/jamis-mod.rb +591 -0
- data/lib/fpu.rb +287 -0
- data/lib/interval.rb +1170 -0
- data/lib/intervals.rb +212 -0
- data/lib/struct_float.rb +133 -0
- data/test/data_atan.txt +360 -0
- data/test/data_cos.txt +346 -0
- data/test/data_cosh.txt +3322 -0
- data/test/data_exp.txt +3322 -0
- data/test/data_log.txt +141 -0
- data/test/data_sin.txt +140 -0
- data/test/data_sinh.txt +3322 -0
- data/test/data_tan.txt +342 -0
- metadata +186 -0
data/lib/intervals.rb
ADDED
@@ -0,0 +1,212 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
=begin rdoc
|
3
|
+
= Intervals -- Interval arithmetic in Ruby
|
4
|
+
|
5
|
+
Besides making obvious a possible loss of precision during floating
|
6
|
+
point calculations, interval arithmetic provides not-so-conventional
|
7
|
+
methods for a variety of computational applications.
|
8
|
+
|
9
|
+
This library implements an interval system in the extended real set
|
10
|
+
that is closed under arithmetic operations. Correct rounding ensures
|
11
|
+
that the operations are inclusion-wise monotonic.
|
12
|
+
|
13
|
+
== Introduction
|
14
|
+
|
15
|
+
Fire up ruby's interactive shell by typing
|
16
|
+
|
17
|
+
irb
|
18
|
+
|
19
|
+
on the command line. Take into consideration the rather innocent
|
20
|
+
looking function
|
21
|
+
|
22
|
+
def f(x,y)
|
23
|
+
(333.75-x**2)* y**6 + x**2 * (11* x**2 * y**2-121 * y**4 -2) +
|
24
|
+
5.5 * y**8 + x/(2*y)
|
25
|
+
end
|
26
|
+
|
27
|
+
We can calculate it for some specific +x+ and +y+,
|
28
|
+
|
29
|
+
f(77617.0,33096.0) # => 1.17260394005318
|
30
|
+
|
31
|
+
There is only one problem: this result is *WRONG*. The correct
|
32
|
+
result can be obtained by calculating separately the numerator and
|
33
|
+
denominator of +f+ using integer arithmetic.
|
34
|
+
|
35
|
+
def f_num(x,y)
|
36
|
+
((33375- 100 * x**2)* y**6 +
|
37
|
+
100 * x**2 * (11* x**2 * y**2-121 * y**4 -2) +
|
38
|
+
550 * y**8) *
|
39
|
+
2*y + 100 *x
|
40
|
+
end
|
41
|
+
|
42
|
+
def f_den(x,y)
|
43
|
+
200*y
|
44
|
+
end
|
45
|
+
|
46
|
+
f_num(77617, 33096).to_f / f_den(77617, 33096).to_f
|
47
|
+
# => -0.827396059946821
|
48
|
+
|
49
|
+
The result obtained by directly calculating +f+ is completely wrong:
|
50
|
+
sign, order of magnitude, and all digits are wrong. No warnings, no
|
51
|
+
errors are generated, but the computation simply yields unreliable
|
52
|
+
results.
|
53
|
+
|
54
|
+
Using interval arithmetic it is possible to detect the loss of
|
55
|
+
precision due to floating-point roundings.
|
56
|
+
|
57
|
+
require "intervals" # you must have installed this package, obviously
|
58
|
+
|
59
|
+
1/Interval[3.0] # => Interval[0.333333333333333, 0.333333333333333]
|
60
|
+
|
61
|
+
yields an interval that is very sharp. Its width
|
62
|
+
|
63
|
+
(1/Interval[3.0]).width # => 5.55111512312578e-17
|
64
|
+
|
65
|
+
corresponds to one bit in the least significant position. We cannot
|
66
|
+
do any-better with floating point operations. But if we calculate
|
67
|
+
+f+ with intervals we obtain
|
68
|
+
|
69
|
+
f(Interval[77617.0], Interval[33096.0])
|
70
|
+
# => Interval[-2.36118324143482e+21, 1.18059162071741e+21]
|
71
|
+
|
72
|
+
The result has an uncertainity of the order of 10 to the power of 21 !
|
73
|
+
|
74
|
+
== Cool Applications
|
75
|
+
|
76
|
+
Obviously, interval arithmetics allows us to detect whenever
|
77
|
+
floating-point calculations become unreliable. But it also has other
|
78
|
+
interesting applications.
|
79
|
+
|
80
|
+
Finding all solutions of an equation that fall into an interval, for
|
81
|
+
instance. Take the equation
|
82
|
+
|
83
|
+
x**3 == x
|
84
|
+
|
85
|
+
We rewrite it first in the form
|
86
|
+
|
87
|
+
x**3 - x == 0
|
88
|
+
|
89
|
+
The left-hand side of this equation has derivative
|
90
|
+
|
91
|
+
3* x**2 - 1
|
92
|
+
|
93
|
+
To find all solutions in [-100,100] we do
|
94
|
+
|
95
|
+
Interval[-100,100].newton(proc {|x| x**3 - x}, proc {|x| 3* x**2 - 1})
|
96
|
+
# => Interval[[-1.0], [-0.0], [1.0]]
|
97
|
+
|
98
|
+
which shows that the equation has the three solutions -1, 0, and +1.
|
99
|
+
|
100
|
+
== Intervals in Ruby
|
101
|
+
|
102
|
+
An Interval can be created starting from a number
|
103
|
+
|
104
|
+
a = Interval[3] # Or, in alternative, as
|
105
|
+
b = 3.to_interval # equivalent to above
|
106
|
+
a == b # => true
|
107
|
+
|
108
|
+
An Interval can also be created from a pair of numbers that
|
109
|
+
represent its lower and upper bounds:
|
110
|
+
|
111
|
+
c = Interval[1,2] # In mathematical notation: [1,2]
|
112
|
+
c.include?(1.5) # => true
|
113
|
+
c.include?(0) # => false
|
114
|
+
c.include?(3) # => false
|
115
|
+
|
116
|
+
The interval is _closed_, i.e., it includes its bounds:
|
117
|
+
|
118
|
+
c.include?(1) # => true
|
119
|
+
c.include?(2) # => true
|
120
|
+
|
121
|
+
An interval can be _unbounded_, i.e., one or both of its extrema are infinite:
|
122
|
+
|
123
|
+
d = Interval[5,Infinity] # includes all reals > 1
|
124
|
+
d.include?(Infinity) # => true
|
125
|
+
d.width # => Infinity
|
126
|
+
|
127
|
+
An interval can have more than one connected components:
|
128
|
+
|
129
|
+
e = Interval[[1,2],[3,4]] # The set {x | 1<= x <= 2 or 3 <= x <= 4}
|
130
|
+
|
131
|
+
This way, the set of intervals is closed under set union
|
132
|
+
|
133
|
+
a | c # => Interval[[1, 2], [3]]
|
134
|
+
|
135
|
+
The intersection is also well-defined on intervals
|
136
|
+
|
137
|
+
Interval[1,3] & Interval[2,4]
|
138
|
+
# => Interval[2, 3]
|
139
|
+
|
140
|
+
All arithmetic operations are defined on intervals
|
141
|
+
|
142
|
+
a + c # => Interval[4, 5]
|
143
|
+
3 + Interval[1,2] # equivalent to above
|
144
|
+
a * c # => Interval[3, 6]
|
145
|
+
(a | c) + a * c # => Interval[4, 9]
|
146
|
+
(-c) ** 2 # => Interval[1, 4]
|
147
|
+
1 / a # => Interval[0.333333333333333, 0.333333333333333]
|
148
|
+
|
149
|
+
Note that the rounding is consistent with the arithmetic
|
150
|
+
operations. If we look into bits of the result of the last
|
151
|
+
operation, we see that _sup_ is _inf_ plus one bit in the least
|
152
|
+
significant position:
|
153
|
+
|
154
|
+
(1/a).inf.to_struct # => Struct::Float[1, 1021, 1501199875790165]
|
155
|
+
(1/a).sup.to_struct # => Struct::Float[1, 1021, 1501199875790166]
|
156
|
+
(1/a).width # => 5.55111512312578e-17
|
157
|
+
(1/a).width == 2 ** -54 # => true
|
158
|
+
|
159
|
+
We say that 1/a is sharp
|
160
|
+
|
161
|
+
(1/a).sharp? # => true
|
162
|
+
|
163
|
+
== Installation
|
164
|
+
|
165
|
+
This projects homepage is at http://intervals.rubyforge.org and its
|
166
|
+
cockpit at http://rubyforge.org/projects/intervals .
|
167
|
+
|
168
|
+
You can download the library from http://rubyforge.org/frs/?group_id=1458 .
|
169
|
+
|
170
|
+
You can browse the project
|
171
|
+
repository[http://rubyforge.org/plugins/scmsvn/viewcvs.php/trunk?root=intervals].
|
172
|
+
|
173
|
+
To compile the C extension, go into the directory with the project files and type
|
174
|
+
|
175
|
+
ruby extconf.rb
|
176
|
+
make
|
177
|
+
|
178
|
+
On a unix-like system you can type
|
179
|
+
|
180
|
+
./extconf.rb && make
|
181
|
+
|
182
|
+
== Testing
|
183
|
+
|
184
|
+
Executing interval.rb runs the library testsuite.
|
185
|
+
|
186
|
+
== References
|
187
|
+
|
188
|
+
Eldon Hansen, G. William Walster, {Global Optimization Using
|
189
|
+
Interval
|
190
|
+
Analysis}[http://www.ebooks.dekker.com/eBookCover.asp?eBookID=0824758706&type=ISBN]
|
191
|
+
- Second Edition, Revised and Expanded. John Dekker, Inc., 2003.
|
192
|
+
|
193
|
+
== Author & License
|
194
|
+
|
195
|
+
Copyright (c) 2006, Stefano Taschini.
|
196
|
+
|
197
|
+
You can reach me using the concact information provided in
|
198
|
+
http://www.taschini.net/contact .
|
199
|
+
|
200
|
+
This work is licensed under the terms of LGPL[http://www.gnu.org/copyleft/lesser.html].
|
201
|
+
|
202
|
+
Correctly-rounded transcendetal functions are computed using
|
203
|
+
CRlibm[http://lipforge.ens-lyon.fr/www/crlibm/], which is developed
|
204
|
+
at the {ENS Lyon}[http://www.ens-lyon.fr/LIP/] and is also released
|
205
|
+
under the terms of LGPL.
|
206
|
+
|
207
|
+
RDoc template by {Jamis Buck}[http://rubyforge.org/frs/?group_id=1458].
|
208
|
+
|
209
|
+
=end
|
210
|
+
require 'interval'
|
211
|
+
|
212
|
+
Test::Unit.run = (__FILE__ != $0)
|
data/lib/struct_float.rb
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# Definitions for the Struct::Float class.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2006 Stefano Taschini <taschini@ieee.org>.
|
6
|
+
# Licensed under the terms of LGPL: http://www.gnu.org/copyleft/lesser.html
|
7
|
+
|
8
|
+
# Symbolic constant for IEEE-754 plus infinity
|
9
|
+
Kernel::Infinity = 1/0.0
|
10
|
+
|
11
|
+
Struct.new('Float', :sign, :biased_exp, :fraction)
|
12
|
+
|
13
|
+
# Struct class for the fields that form a Float
|
14
|
+
# according to the IEEE-754 standard: sign, biased exponent, fraction.
|
15
|
+
class Struct::Float
|
16
|
+
|
17
|
+
# Assemble a float number from a Float::Struct.
|
18
|
+
# It is the inverse of Float#to_struct.
|
19
|
+
#
|
20
|
+
# Struct::Float[1,1024,0].to_f
|
21
|
+
# # => 2.0
|
22
|
+
#
|
23
|
+
def to_f
|
24
|
+
["%b%011b%052b" % [sign < 0 ? 1 : 0, biased_exp , fraction]].pack("B*").unpack("G").first
|
25
|
+
end
|
26
|
+
|
27
|
+
# Overrides Object#inspect.
|
28
|
+
def inspect
|
29
|
+
self.class.name + to_a.inspect
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
class Float
|
35
|
+
|
36
|
+
# Split a float number into a Struct::Float fields: sign, biased exponent, fraction.
|
37
|
+
# It is the inverse of Struct::Float#to_f.
|
38
|
+
#
|
39
|
+
# (2.0).to_struct # => Struct::Float[1, 1024, 0]
|
40
|
+
#
|
41
|
+
def to_struct
|
42
|
+
x, = [self].pack("G").unpack("B*")
|
43
|
+
Struct::Float[x[0] == ?1 ? -1 : 1, x[1,11].to_i(2), x[12,52].to_i(2)]
|
44
|
+
end
|
45
|
+
|
46
|
+
# Unit in the last place. The least significant bit of the fraction of a
|
47
|
+
# floating point number in its standard representation is its last place.
|
48
|
+
# The value represented by this bit (e.g., the absolute difference between
|
49
|
+
# two numbers whose structure are identical except for this bit)
|
50
|
+
# is the unit in the last place of that number.
|
51
|
+
#
|
52
|
+
# (1.0).ulp # => 2 ** -52
|
53
|
+
# (1.1).ulp # => 2 ** -52
|
54
|
+
# (0.1).ulp # => 2 ** -56
|
55
|
+
#
|
56
|
+
def ulp
|
57
|
+
2.0 ** if !finite?
|
58
|
+
Infinity
|
59
|
+
elsif zero?
|
60
|
+
-1074
|
61
|
+
else
|
62
|
+
[Math.frexp(self).last - 53, -1074].max
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
require 'test/unit'
|
69
|
+
|
70
|
+
# Tests Struct::Float.
|
71
|
+
class Struct::Float::Test < Test::Unit::TestCase
|
72
|
+
|
73
|
+
def assert_consistent(f,s)
|
74
|
+
assert_equal(f,s.to_f)
|
75
|
+
assert_equal(s,f.to_struct)
|
76
|
+
assert_equal(s, eval(s.inspect))
|
77
|
+
assert(f.ulp.infinite? || (f/f.ulp).to_i == f/f.ulp, [f,f.ulp].inspect)
|
78
|
+
end
|
79
|
+
|
80
|
+
def assert_nan(s)
|
81
|
+
# NaN does not have a unique representation, and therefore
|
82
|
+
# it does not make sense to have it as a constant as for
|
83
|
+
# Infinity. In particular a NaN has 2047 as biased exponent and
|
84
|
+
# non-zero fraction
|
85
|
+
assert(2047, s.biased_exp)
|
86
|
+
assert(!s.fraction.zero?, s.fraction)
|
87
|
+
# You cannot test for NaN with equality. You MUST use nan?
|
88
|
+
assert(s.to_f.nan?, s.to_f)
|
89
|
+
assert_equal(s, eval(s.inspect))
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_consistency
|
93
|
+
assert_consistent Infinity, Struct::Float[1,2047,0]
|
94
|
+
assert_consistent -Infinity, Struct::Float[-1,2047,0]
|
95
|
+
assert_consistent 2.0 ** -1074, Struct::Float[1,0,1]
|
96
|
+
assert_consistent 0.0, Struct::Float[1,0,0]
|
97
|
+
assert_consistent -0.0, Struct::Float[-1,0,0]
|
98
|
+
assert_consistent 1.0, Struct::Float[1,1023, 0]
|
99
|
+
assert_consistent 1/3.0, Struct::Float[1,1021,0x5555555555555]
|
100
|
+
assert_consistent 1/5.0, Struct::Float[1,1020,0x999999999999a]
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_nan
|
104
|
+
assert_nan( (0.0/0.0).to_struct)
|
105
|
+
assert_nan( Struct::Float[-1,2047,34])
|
106
|
+
assert_nan( Struct::Float[+1,2047,34])
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_denormalized
|
110
|
+
assert_consistent 34 * 2.0 ** -(1023+51), Struct::Float[1,0,34]
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_normalized
|
114
|
+
assert_consistent -(2**52+34) * 2.0**(1043-1023-52), Struct::Float[-1,1043,34]
|
115
|
+
end
|
116
|
+
|
117
|
+
def test_samples
|
118
|
+
n = 1000
|
119
|
+
srand 12345
|
120
|
+
n.times{
|
121
|
+
s = Struct::Float[2*rand(2) -1, rand(2048), rand(2**52)]
|
122
|
+
f = s.to_f
|
123
|
+
if f.nan?
|
124
|
+
assert_nan(s)
|
125
|
+
else
|
126
|
+
assert_consistent(f,s)
|
127
|
+
end
|
128
|
+
}
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
Test::Unit.run = (__FILE__ != $0)
|
data/test/data_atan.txt
ADDED
@@ -0,0 +1,360 @@
|
|
1
|
+
-49 -6676745168884016 -52 -6695412621809827
|
2
|
+
-30 -4861106110007748 -52 -7074236757254170
|
3
|
+
-29 -5362405488479229 -52 -7074237301139068
|
4
|
+
-10 7422940652573050 -52 7074237752027820
|
5
|
+
-56 8350049073576612 -56 8312971906493987
|
6
|
+
-20 6686836979619935 -52 7074237751322222
|
7
|
+
-31 4996362415435413 -52 7074235816338883
|
8
|
+
-16 7993329455915879 -52 7074237751991516
|
9
|
+
-30 -7832367964376866 -52 -7074237134628529
|
10
|
+
-34 -5670071353421996 -52 -7074224106476624
|
11
|
+
-44 4908274183574264 -52 7058096065503260
|
12
|
+
-25 6616520859494375 -52 7074237729189288
|
13
|
+
-34 -6897813713270117 -52 -7074226535249375
|
14
|
+
-18 4750063628585111 -52 7074237751779899
|
15
|
+
-51 6283760758550648 -52 5524566621009389
|
16
|
+
-44 8685813128183540 -52 7065116204856259
|
17
|
+
-9 8054599679028929 -52 7074237752028154
|
18
|
+
-45 -5376903770095701 -52 -7044768364027066
|
19
|
+
-32 -6028762688456171 -52 -7074234543606726
|
20
|
+
-46 6083765743530758 -52 7022148547480404
|
21
|
+
-48 7886386524171885 -52 6913566862338224
|
22
|
+
-11 -6408340492808532 -52 -7074237752027000
|
23
|
+
-51 8974883386486003 -52 5967137188717274
|
24
|
+
-14 6269990605230410 -52 7074237752016673
|
25
|
+
-11 8952336012353831 -52 7074237752027411
|
26
|
+
-50 5627183984336594 -52 6184890802852611
|
27
|
+
-12 -7210616123731563 -52 -7074237752025882
|
28
|
+
-11 5654083981120363 -52 7074237752026809
|
29
|
+
-40 8773729828431031 -52 7073673367185500
|
30
|
+
-18 4557049905856740 -52 7074237751769371
|
31
|
+
-13 8095513431826583 -52 7074237752023883
|
32
|
+
-13 6917603096342324 -52 7074237752023107
|
33
|
+
-17 -8408020525220567 -52 -7074237751958233
|
34
|
+
-26 -5659695092548994 -52 -7074237698627779
|
35
|
+
-9 -5539225035292282 -52 -7074237752028024
|
36
|
+
-24 -5398563840997248 -52 -7074237738032520
|
37
|
+
-53 7213017425312897 -53 6081949995546634
|
38
|
+
-10 -4889013770309537 -52 -7074237752027497
|
39
|
+
-24 -5398563841318084 -52 -7074237738032521
|
40
|
+
-28 -8332694619496757 -52 -7074237606946221
|
41
|
+
-23 -4716531970377033 -52 -7074237744018544
|
42
|
+
-23 -5983062640679389 -52 -7074237745714126
|
43
|
+
-31 6417264544425362 -52 7074236244936675
|
44
|
+
-36 7883889025917166 -52 7074198496654754
|
45
|
+
-51 8301272625598633 -52 5881299659417314
|
46
|
+
-50 8659630853679287 -52 6491959254457818
|
47
|
+
-52 6546230263066222 -53 8720689060095029
|
48
|
+
-12 -5651098405753654 -52 -7074237752025175
|
49
|
+
-8 5163661619656860 -52 7074237752028217
|
50
|
+
-47 -4580372742674242 -52 -6935902733499553
|
51
|
+
-39 8180030493813520 -52 7073935078330987
|
52
|
+
-2 -7915014755394663 -52 -7074237752028437
|
53
|
+
-35 -7673788035457036 -52 -7074217586954269
|
54
|
+
-25 8315023577327304 -52 7074237733854623
|
55
|
+
-19 5743905400979178 -52 7074237751617364
|
56
|
+
-17 -5681533095476947 -52 -7074237751924543
|
57
|
+
-47 7973900975981561 -52 6994758523590856
|
58
|
+
-43 6356257461171345 -52 7068005459486531
|
59
|
+
-18 -6953439369247259 -52 -7074237751858655
|
60
|
+
-33 6443909080170189 -52 7074231748587711
|
61
|
+
-38 5538660629756963 -52 7074014243111571
|
62
|
+
-14 -8075380245201889 -52 -7074237752019302
|
63
|
+
-10 5256826173771725 -52 7074237752027564
|
64
|
+
-51 5573466478855810 -52 5344998260262317
|
65
|
+
-47 -7526291182379321 -52 -6990032740047549
|
66
|
+
-39 -7763550144845679 -52 -7073918841217246
|
67
|
+
-16 -4817539807515188 -52 -7074237751967174
|
68
|
+
-34 -4693933252258754 -52 -7074221268783303
|
69
|
+
-6 -7945520526923850 -52 -7074237752028403
|
70
|
+
-3 -4951817484616873 -52 -7074237752028432
|
71
|
+
-49 -8329767197513852 -52 -6770333485570071
|
72
|
+
-43 -7849188580362113 -52 -7069190852687350
|
73
|
+
-30 -5417939574386929 -52 -7074236859492964
|
74
|
+
-36 -5877818206934241 -52 -7074185098986289
|
75
|
+
-48 -8166094051967038 -52 -6919065778702098
|
76
|
+
-39 -7820525575821808 -52 -7073921164600844
|
77
|
+
-12 -7313531862082622 -52 -7074237752025918
|
78
|
+
-3 4951836814829880 -52 7074237752028433
|
79
|
+
-23 -8723725200447980 -52 -7074237747697844
|
80
|
+
-55 6528457036738331 -55 6458381038228554
|
81
|
+
-37 8787130241231394 -52 7074167311508885
|
82
|
+
-45 -8714270568872257 -52 -7056054306524929
|
83
|
+
-7 -5134327898415580 -52 -7074237752028327
|
84
|
+
-32 -5859945482704943 -52 -7074234451176380
|
85
|
+
-42 5175484385816680 -52 7070410663705062
|
86
|
+
-16 -8479001620843270 -52 -7074237751993631
|
87
|
+
-30 8632105164682643 -52 7074237191828677
|
88
|
+
-21 7440328686910488 -52 7074237750759044
|
89
|
+
-11 8561755344018095 -52 7074237752027363
|
90
|
+
-20 4776849915848136 -52 7074237751039847
|
91
|
+
-4 5427736524026002 -52 7074237752028427
|
92
|
+
-15 -6197649985754546 -52 -7074237752004629
|
93
|
+
-1 -7060484441362482 -52 -7074237752028439
|
94
|
+
-55 -5018043258006925 -55 -4985968176082536
|
95
|
+
-47 -8193733614400224 -52 -6996890475444739
|
96
|
+
-25 8358193290813304 -52 7074237733948489
|
97
|
+
-28 7159678999044318 -52 7074237583176482
|
98
|
+
-39 -6317111304104169 -52 -7073845819711099
|
99
|
+
-54 7745007694309976 -54 7314613275119242
|
100
|
+
-12 7503936071959207 -52 7074237752025983
|
101
|
+
-21 6644798921957811 -52 7074237750607068
|
102
|
+
-56 5829680918067314 -56 5817011617561633
|
103
|
+
-13 -8074252884931639 -52 -7074237752023870
|
104
|
+
-33 9002850770762419 -52 7074233454986625
|
105
|
+
-4 8707062609193408 -52 7074237752028433
|
106
|
+
-52 8245660807233913 -52 4822869285731787
|
107
|
+
-21 -8853054343549432 -52 -7074237750961607
|
108
|
+
-9 -5273200803018387 -52 -7074237752028002
|
109
|
+
-49 7033788768772385 -52 6714558409141340
|
110
|
+
-14 7517565260791892 -52 7074237752018625
|
111
|
+
-48 8649541151443065 -52 6927732476883626
|
112
|
+
-24 -5260077118099210 -52 -7074237737664038
|
113
|
+
-44 6281526399614621 -52 7061624901212693
|
114
|
+
-18 8568779177826050 -52 7074237751890662
|
115
|
+
-2 -7915762172198987 -52 -7074237752028438
|
116
|
+
-32 7291756019291007 -52 7074235099332291
|
117
|
+
-56 -8508052373226590 -56 -8468842291585479
|
118
|
+
-32 5286847131351178 -52 7074234093361444
|
119
|
+
-20 -4684765264905091 -52 -7074237751020413
|
120
|
+
-44 -7372790180017576 -52 -7063491750824057
|
121
|
+
-44 -8450692827142862 -52 -7064862420362054
|
122
|
+
-14 8851311819283196 -52 7074237752020104
|
123
|
+
-46 -8207649073777348 -52 -7035626831584532
|
124
|
+
-55 7088890124964889 -55 6999480473640342
|
125
|
+
-32 5624610406737997 -52 7074234313067924
|
126
|
+
-12 -4573638195416916 -52 -7074237752024407
|
127
|
+
-42 8887332342286145 -52 7072009069871766
|
128
|
+
-42 -8139557730670931 -52 -7071804322675597
|
129
|
+
-18 4564661521721110 -52 7074237751769804
|
130
|
+
-44 5579999223267263 -52 7060039201662116
|
131
|
+
-32 -6466361833585952 -52 -7074234760730766
|
132
|
+
-4 -4717122230842631 -52 -7074237752028425
|
133
|
+
-24 -8897952373415419 -52 -7074237743536838
|
134
|
+
-35 5278532582957760 -52 7074208436588500
|
135
|
+
-33 7830855330466550 -52 7074232811875086
|
136
|
+
-35 8522863278914607 -52 7074219595864268
|
137
|
+
-21 6288852820382094 -52 7074237750526620
|
138
|
+
-13 -6656739900311236 -52 -7074237752022898
|
139
|
+
-35 7248321512868041 -52 7074216403292098
|
140
|
+
-28 -4956891741597365 -52 -7074237508140560
|
141
|
+
-51 8194336304817978 -52 5866463162859028
|
142
|
+
-33 5760410091289691 -52 7074231036252026
|
143
|
+
-29 7611330646056895 -52 7074237434363665
|
144
|
+
-55 7415571026782073 -55 7313438725482747
|
145
|
+
-30 -8542842653890073 -52 -7074237185975256
|
146
|
+
-5 8342042070771333 -52 7074237752028423
|
147
|
+
-24 8189610396922894 -52 7074237742802377
|
148
|
+
-28 7939203753583904 -52 7074237599755510
|
149
|
+
-38 4886866681773973 -52 7073984432239179
|
150
|
+
-27 -6341065457088490 -52 -7074237656703307
|
151
|
+
-53 6954918379615667 -53 5922483138569978
|
152
|
+
-30 -4571031407498819 -52 -7074236694126437
|
153
|
+
-41 -5410362198557212 -52 -7072407279426887
|
154
|
+
-1 7060237450447329 -52 7074237752028440
|
155
|
+
-20 -8471930411811767 -52 -7074237751471027
|
156
|
+
-24 5407049589174038 -52 7074237738054487
|
157
|
+
-7 -8968554475863365 -52 -7074237752028375
|
158
|
+
-19 -4679638799713993 -52 -7074237751523875
|
159
|
+
-43 -5692309413505514 -52 -7067278529180735
|
160
|
+
-53 -6449491238214693 -53 -5597149308470579
|
161
|
+
-30 -8247115081444027 -52 -7074237165677549
|
162
|
+
-29 4741992271164001 -52 7074237242147467
|
163
|
+
-40 -8647083634277326 -52 -7073665101139437
|
164
|
+
-17 -6849864479373372 -52 -7074237751942263
|
165
|
+
-11 -8740248149138188 -52 -7074237752027385
|
166
|
+
-6 -8661871452648979 -52 -7074237752028407
|
167
|
+
-1 -7060239598468739 -52 -7074237752028439
|
168
|
+
-22 8411163793457497 -52 7074237749782679
|
169
|
+
-32 7102221646358434 -52 7074235028540767
|
170
|
+
-48 6625427109887130 -52 6883021586560288
|
171
|
+
-3 4951888360853153 -52 7074237752028433
|
172
|
+
-22 4793687838465350 -52 7074237748087953
|
173
|
+
-33 5037551492709695 -52 7074230072578159
|
174
|
+
-17 8586710923490501 -52 7074237751959695
|
175
|
+
-6 -7338631672232787 -52 -7074237752028401
|
176
|
+
-34 -6640169989730872 -52 -7074226100029684
|
177
|
+
-31 5892290758242923 -52 7074236110662298
|
178
|
+
-34 8498334067564255 -52 7074228647743784
|
179
|
+
-4 7768372624658816 -52 7074237752028432
|
180
|
+
-40 -5319858496741530 -52 -7073306945299339
|
181
|
+
-3 -4951890508054820 -52 -7074237752028432
|
182
|
+
-52 -5087796255121572 -53 -7622174978478882
|
183
|
+
-42 -6131032036652416 -52 -7071007131618577
|
184
|
+
-17 6474083934948123 -52 7074237751937262
|
185
|
+
-14 8751579042007142 -52 7074237752020009
|
186
|
+
-28 -6485705268614996 -52 -7074237565629927
|
187
|
+
-57 -5682856434446167 -57 -5679913677639312
|
188
|
+
-16 6792305067417004 -52 7074237751984988
|
189
|
+
-10 -6576137724758490 -52 -7074237752027739
|
190
|
+
-46 -6619295705325359 -52 -7026362460404083
|
191
|
+
-35 -5951131755189007 -52 -7074211749830661
|
192
|
+
-29 7948599940098146 -52 7074237447842590
|
193
|
+
-20 8520969917420164 -52 7074237751474236
|
194
|
+
-19 -8894776888768346 -52 -7074237751762983
|
195
|
+
-40 -8714351068247504 -52 -7073669521520845
|
196
|
+
-22 6430447127284201 -52 7074237749090937
|
197
|
+
-15 -5969512010341847 -52 -7074237752003719
|
198
|
+
-47 -8438645494322425 -52 -6999134876235455
|
199
|
+
-39 -5344774715415482 -52 -7073774518271795
|
200
|
+
-23 -7738347492163984 -52 -7074237747146399
|
201
|
+
-27 -4630281922039889 -52 -7074237621482845
|
202
|
+
-51 5733649741925627 -52 5388869056488382
|
203
|
+
-14 8751579042149628 -52 7074237752020009
|
204
|
+
-37 -7911526026902446 -52 -7074159515539363
|
205
|
+
-29 -8363980642578203 -52 -7074237462949383
|
206
|
+
-56 -5471361555839683 -56 -5460882872524809
|
207
|
+
-25 -8740163642192211 -52 -7074237734738635
|
208
|
+
-54 -7293798276823893 -54 -6930360960521604
|
209
|
+
-20 -5924075390274085 -52 -7074237751231291
|
210
|
+
-35 5316238428037218 -52 7074208644510596
|
211
|
+
-23 -6438887565851618 -52 -7074237746161133
|
212
|
+
-39 -8783266031433407 -52 -7073955865988955
|
213
|
+
-29 5450641376010239 -52 7074237308438142
|
214
|
+
-10 8615532986338452 -52 7074237752027905
|
215
|
+
-29 8916598080078003 -52 7074237480865423
|
216
|
+
-53 -7621911932155515 -53 -6325621976850426
|
217
|
+
-6 -8930241024601165 -52 -7074237752028407
|
218
|
+
-36 8394812251504800 -52 7074200885806715
|
219
|
+
-19 -8058830822182016 -52 -7074237751735446
|
220
|
+
-39 6482966766724009 -52 7073855846619740
|
221
|
+
-15 8833972851343274 -52 7074237752011736
|
222
|
+
-17 -6068926507539837 -52 -7074237751931175
|
223
|
+
-17 -5839293699485431 -52 -7074237751927350
|
224
|
+
-21 7308517160838253 -52 7074237750736149
|
225
|
+
-36 5134218815465219 -52 7074177473138715
|
226
|
+
-32 -5520038755694706 -52 -7074234247920232
|
227
|
+
-18 -5359716634007052 -52 -7074237751808168
|
228
|
+
-32 6951969565653881 -52 7074234969678355
|
229
|
+
-3 -6829111545014507 -52 -7074237752028434
|
230
|
+
-12 6237749041886070 -52 7074237752025484
|
231
|
+
-12 -8918899681429038 -52 -7074237752026371
|
232
|
+
-56 4538369543843802 -56 4532382852903039
|
233
|
+
-10 5436541046956387 -52 7074237752027593
|
234
|
+
-21 -8100084332480526 -52 -7074237750862435
|
235
|
+
-19 -4679638799662613 -52 -7074237751523875
|
236
|
+
-54 5324410975629659 -54 5177019016980924
|
237
|
+
-37 -6873391062959741 -52 -7074147698950725
|
238
|
+
-45 -4705930441671496 -52 -7040566754434276
|
239
|
+
-41 8070757011613524 -52 7073010665144899
|
240
|
+
-38 7976984851872774 -52 7074082563061459
|
241
|
+
-53 4797051248905019 -54 8815713119371226
|
242
|
+
-45 5654824372855079 -52 7046216673064072
|
243
|
+
-47 -7077235955521838 -52 -6984691243327956
|
244
|
+
-55 -7642108931780940 -55 -7530497651889227
|
245
|
+
-7 -6385553723968823 -52 -7074237752028350
|
246
|
+
-39 5744425319652186 -52 7073806746325827
|
247
|
+
-55 -7457638946007913 -55 -7353787618504137
|
248
|
+
-47 7305006666454828 -52 6987482609077841
|
249
|
+
-10 8615532985901724 -52 7074237752027905
|
250
|
+
-4 -6390483422890183 -52 -7074237752028429
|
251
|
+
-3 -4951890508162731 -52 -7074237752028432
|
252
|
+
-4 5047546654932597 -52 7074237752028427
|
253
|
+
-3 -4951890508209012 -52 -7074237752028432
|
254
|
+
-12 6237749041537918 -52 7074237752025484
|
255
|
+
-30 -8759820937046622 -52 -7074237199996234
|
256
|
+
-36 7682559227253178 -52 7074197467925103
|
257
|
+
-54 -5064411173450590 -54 -4936980006185010
|
258
|
+
-51 -4512146585915903 -52 -4989568152983964
|
259
|
+
-34 7937737750520733 -52 7074228004761035
|
260
|
+
-10 8615532985891792 -52 7074237752027905
|
261
|
+
-3 -8426279266841558 -52 -7074237752028436
|
262
|
+
-34 5651620059214397 -52 7074224061926904
|
263
|
+
-27 -6386477418599027 -52 -7074237657381130
|
264
|
+
-38 7794366224858560 -52 7074078927051136
|
265
|
+
-13 8030316425878167 -52 7074237752023847
|
266
|
+
-33 5311247477625746 -52 7074230468310935
|
267
|
+
-31 6413536055658885 -52 7074236244060531
|
268
|
+
-32 -5103955739788071 -52 -7074233962259465
|
269
|
+
-41 -7785611388108184 -52 -7072965723467387
|
270
|
+
-31 -4582661250289816 -52 -7074235641593907
|
271
|
+
-10 8615532986362298 -52 7074237752027905
|
272
|
+
-21 6544361683821565 -52 7074237750585255
|
273
|
+
-32 6415342104946022 -52 7074234736941670
|
274
|
+
-15 -7680832482089317 -52 -7074237752009227
|
275
|
+
-46 5101102787421158 -52 7012115390830925
|
276
|
+
-43 -7813033408197856 -52 -7069167497947749
|
277
|
+
-43 -8091372821567080 -52 -7069341912159763
|
278
|
+
-28 -8537314766843932 -52 -7074237610423514
|
279
|
+
-15 -7680832482083896 -52 -7074237752009227
|
280
|
+
-49 -7579834100268866 -52 -6740370941207896
|
281
|
+
-18 -8557351016156329 -52 -7074237751890477
|
282
|
+
-10 8615532985973451 -52 7074237752027905
|
283
|
+
-54 -8987374063802812 -54 -8336465663026128
|
284
|
+
-35 -8098788497074548 -52 -7074218645157707
|
285
|
+
-43 7609248734740904 -52 7069031710671010
|
286
|
+
-20 -7190034759967473 -52 -7074237751371647
|
287
|
+
-17 -6245110485182150 -52 -7074237751933918
|
288
|
+
-23 -4715604143976837 -52 -7074237744016968
|
289
|
+
-49 -8133918448833037 -52 -6763039067316581
|
290
|
+
-27 -8534159932910234 -52 -7074237681199803
|
291
|
+
-41 7608523209080351 -52 7072936117037474
|
292
|
+
-19 -8073766254741575 -52 -7074237751735989
|
293
|
+
-22 6844665898701309 -52 7074237749268705
|
294
|
+
-36 7645540661218370 -52 7074197272875490
|
295
|
+
-45 -5185664086328955 -52 -7043681608990561
|
296
|
+
-35 6596162447822515 -52 7074214292553915
|
297
|
+
-15 -7680832482067889 -52 -7074237752009227
|
298
|
+
-15 -5969512010100428 -52 -7074237752003719
|
299
|
+
-30 -7852363488186396 -52 -7074237136200697
|
300
|
+
-13 8030316425602391 -52 7074237752023846
|
301
|
+
-36 -6624138793332516 -52 -7074191031236580
|
302
|
+
-17 6249738879349834 -52 7074237751933989
|
303
|
+
-40 -7485139648846966 -52 -7073576206572533
|
304
|
+
-40 4976594840597848 -52 7073242742341059
|
305
|
+
-35 7748007726286247 -52 7074217780119484
|
306
|
+
-55 -5966260648412790 -55 -5912604420596429
|
307
|
+
-32 5411163019632823 -52 7074234177415544
|
308
|
+
-16 6792305067381763 -52 7074237751984988
|
309
|
+
-28 6388676504575429 -52 7074237562798978
|
310
|
+
-51 7044900798434440 -52 5680949257935218
|
311
|
+
-25 -4843807041145495 -52 -7074237720830721
|
312
|
+
-29 4746695836700061 -52 7074237242652715
|
313
|
+
-46 -7638977227858808 -52 -7032752658285623
|
314
|
+
-37 -6545301239066017 -52 -7074143184949409
|
315
|
+
-50 5882778757475151 -52 6222596552576839
|
316
|
+
-17 -7441177873324560 -52 -7074237751949111
|
317
|
+
-15 -7680832482039989 -52 -7074237752009226
|
318
|
+
-13 8030316425662713 -52 7074237752023846
|
319
|
+
-45 -4905511974623420 -52 -7041936616337242
|
320
|
+
-15 -7774302428725324 -52 -7074237752009458
|
321
|
+
-56 -8288956411644484 -56 -8252682909701180
|
322
|
+
-40 -7642702660678738 -52 -7073589845084675
|
323
|
+
-52 -6831354408208498 -53 -8898598972954509
|
324
|
+
-32 -7937933608741855 -52 -7074235315271714
|
325
|
+
-51 6396087923721403 -52 5549733840675865
|
326
|
+
-38 5180777260480380 -52 7073998803319418
|
327
|
+
-20 7699950691972749 -52 7074237751415143
|
328
|
+
-20 4938648283903888 -52 7074237751072234
|
329
|
+
-31 -6455075629546510 -52 -7074236253764576
|
330
|
+
-19 5189855416726743 -52 7074237751573479
|
331
|
+
-31 7079281768040026 -52 7074236385871975
|
332
|
+
-21 8889886055810120 -52 7074237750966027
|
333
|
+
-33 -5328431600805587 -52 -7074230491800830
|
334
|
+
-16 -6697514255990588 -52 -7074237751984371
|
335
|
+
-13 8030316425677069 -52 7074237752023846
|
336
|
+
-45 -7964092628435941 -52 -7054341537665273
|
337
|
+
-34 -8826761087529042 -52 -7074228986496928
|
338
|
+
-49 -4781199554722326 -52 -6546403301736464
|
339
|
+
-30 7450960322085769 -52 7074237103024410
|
340
|
+
-27 6284152311108511 -52 7074237655839985
|
341
|
+
-40 -5748888131341270 -52 -7073376409803016
|
342
|
+
-49 4838920254247035 -52 6552643048786412
|
343
|
+
-47 -7580517496876195 -52 -6990634951539118
|
344
|
+
-36 7323348550135157 -52 7074195491987464
|
345
|
+
-24 6807595373101775 -52 7074237740929388
|
346
|
+
-30 -8514118686358328 -52 -7074237184065571
|
347
|
+
-36 9006361717026027 -52 7074203389094823
|
348
|
+
-55 5513981653051039 -55 5471526515220154
|
349
|
+
-49 -6475299391693719 -52 -6683685532125379
|
350
|
+
-43 -5945816576787180 -52 -7067575243717524
|
351
|
+
-34 8310930260042113 -52 7074228442450567
|
352
|
+
-40 7716247959397717 -52 7073596020431727
|
353
|
+
-39 -5060554770806041 -52 -7073748501307725
|
354
|
+
-39 7305403504638245 -52 7073898841238322
|
355
|
+
-56 7483914275442359 -56 7457177606375096
|
356
|
+
-30 7146762035990167 -52 7074237075399884
|
357
|
+
-39 -7556125040420787 -52 -7073910086715736
|
358
|
+
-25 -5810825808894515 -52 -7074237726022545
|
359
|
+
-19 -5811467076621487 -52 -7074237751622142
|
360
|
+
-57 -5415522076366179 -57 -5412975172869364
|