Open
Description
ds:= DataSeries withKeys: #(1 2 3 4) values:#(1 10 2 3) name:2 .
ds1:= DataSeries withKeys: #(1 2 3 4) values:#(1.0001 10 2 3) name:2 .
ds closeTo: ds1.
Returns true
ds:= DataSeries withKeys: #(1 2 3 4) values:#(5 10 2 3) name:2 .
ds1:= DataSeries withKeys: #(1 2 3 4) values:#(5.0001 10 2 3) name:2 .
ds closeTo: ds1.
Also returns true.
However,
ds:= DataSeries withKeys: #(1 2 3 4) values:#(2 10 2 3) name:2 .
ds1:= DataSeries withKeys: #(1 2 3 4) values:#(2.0001 10 2 3) name:2 .
ds closeTo: ds1.
Returns false.
With certain numbers, it allows the default precision of 0.0001 ( 1, 4.....31, 256.......2047, 8192.....16383 )
And with the other numbers, it returns false.
This code can be used to see at which numbers it returns true ( set the range accordingly, the current range is 1 to 100):
ds:= DataSeries withKeys: #(1 2 3 4) values:#(1 10 2 3) name:2 .
ds1:= DataSeries withKeys: #(1 2 3 4) values:#(1 10 2 3) name:2 .
1 to: 100 do: [ :x |
ds at: 1 put: x.
ds1 at: 1 put: x + 0.0001.
(ds closeTo: ds1) = true ifTrue: [ Transcript crShow: x ] ].