Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -0,0 +1 @@
|
|||
subtype Consistent_Float is Float range Float'Range; -- No IEEE ideals
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
|
||||
procedure IEEE is -- Non portable, bad, never do this!
|
||||
Zero : Float := 0.0;
|
||||
PInf : Float := 1.0 / Zero;
|
||||
NInf : Float := -PInf;
|
||||
PZero : Float := 1.0 / PInf;
|
||||
NZero : Float := 1.0 / NInf;
|
||||
NaN : Float := 0.0 / Zero;
|
||||
begin
|
||||
Put_Line (" -oo = " & Float'Image (NInf));
|
||||
Put_Line (" +oo = " & Float'Image (PInf));
|
||||
Put_Line (" NaN = " & Float'Image (NaN));
|
||||
Put_Line (" -0 = " & Float'Image (NZero));
|
||||
|
||||
Put_Line (" -oo < first " & Boolean'Image (NInf < Float'First));
|
||||
Put_Line (" +oo > last " & Boolean'Image (PInf > Float'Last));
|
||||
Put_Line (" NaN = NaN " & Boolean'Image (NaN = NaN));
|
||||
Put_Line (" -0 = 0 " & Boolean'Image (NZero = 0.0));
|
||||
Put_Line (" +0 = 0 " & Boolean'Image (PZero = 0.0));
|
||||
Put_Line (" +0 < least positive " & Boolean'Image (PZero < Float'Succ (Zero)));
|
||||
Put_Line (" -0 > biggest negative " & Boolean'Image (NZero > Float'Pred (Zero)));
|
||||
|
||||
-- Validness checks
|
||||
Put_Line ("Valid -oo is " & Boolean'Image (NInf'Valid));
|
||||
Put_Line ("Valid +oo is " & Boolean'Image (PInf'Valid));
|
||||
Put_Line ("Valid NaN is " & Boolean'Image (NaN'Valid));
|
||||
|
||||
end IEEE;
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
constant inf = 1E400
|
||||
constant minus_inf = -inf
|
||||
constant nan = 0*inf
|
||||
|
||||
printf(1,"positive infinity: %f\n", inf)
|
||||
printf(1,"negative infinity: %f\n", minus_inf)
|
||||
printf(1,"not a number: %f\n", nan)
|
||||
|
||||
-- some arithmetic
|
||||
|
||||
printf(1,"+inf + 2.0 = %f\n", inf + 2.0)
|
||||
printf(1,"+inf - 10.1 = %f\n", inf - 10.1)
|
||||
printf(1,"+inf + -inf = %f\n", inf + minus_inf)
|
||||
printf(1,"0.0 * +inf = %f\n", 0.0 * inf)
|
||||
printf(1,"NaN + 1.0 = %f\n", nan + 1.0)
|
||||
printf(1,"NaN + NaN = %f\n", nan + nan)
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
-- Using pre-defined constants.
|
||||
local inf = math.inf -- or its synonym math.huge
|
||||
local neginf = -inf
|
||||
local zero = 0.0
|
||||
local negzero = -zero
|
||||
print(inf, neginf, zero, negzero)
|
||||
print(inf + inf, neginf + inf, negzero + zero, negzero + negzero)
|
||||
print(inf / inf, neginf / 2, inf / zero, zero / negzero)
|
||||
print()
|
||||
|
||||
-- Values computed from other 'normal' values.
|
||||
local inf2 = 1.0 / 0.0
|
||||
local neginf2 = -1.0 / 0.0
|
||||
local nan = 0.0 / 0.0
|
||||
local nan2 = math.sqrt(-1.0)
|
||||
|
||||
-- Using built-in comparison operators.
|
||||
print(inf == inf2)
|
||||
print(neginf == neginf2)
|
||||
print(negzero == zero)
|
||||
print(nan == nan)
|
||||
print(nan == nan2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue