mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 21:31:19 +08:00
[Ada] Add support for 128-bit integer types to GNAT.Random_Numbers
gcc/ada/ * libgnat/g-rannum.ads (Random): New functions returning 128-bit. * libgnat/g-rannum.adb (Random): Implement them and alphabetize. (To_Signed): New unchecked conversion function for 128-bit.
This commit is contained in:
parent
bbf14e1350
commit
6d88dbdc5e
@ -58,6 +58,8 @@ is
|
||||
new Ada.Unchecked_Conversion (Unsigned_32, Integer_32);
|
||||
function To_Signed is
|
||||
new Ada.Unchecked_Conversion (Unsigned_64, Integer_64);
|
||||
function To_Signed is
|
||||
new Ada.Unchecked_Conversion (Unsigned_128, Integer_128);
|
||||
|
||||
------------------
|
||||
-- Insert_Image --
|
||||
@ -147,9 +149,9 @@ is
|
||||
return Random (Gen.Rep);
|
||||
end Random;
|
||||
|
||||
function Random (Gen : Generator) return Integer_64 is
|
||||
function Random (Gen : Generator) return Interfaces.Unsigned_128 is
|
||||
begin
|
||||
return To_Signed (Unsigned_64'(Random (Gen)));
|
||||
return Random (Gen.Rep);
|
||||
end Random;
|
||||
|
||||
function Random (Gen : Generator) return Integer_32 is
|
||||
@ -157,6 +159,16 @@ is
|
||||
return To_Signed (Unsigned_32'(Random (Gen)));
|
||||
end Random;
|
||||
|
||||
function Random (Gen : Generator) return Integer_64 is
|
||||
begin
|
||||
return To_Signed (Unsigned_64'(Random (Gen)));
|
||||
end Random;
|
||||
|
||||
function Random (Gen : Generator) return Integer_128 is
|
||||
begin
|
||||
return To_Signed (Unsigned_128'(Random (Gen)));
|
||||
end Random;
|
||||
|
||||
function Random (Gen : Generator) return Long_Integer is
|
||||
function Random_Long_Integer is new Random_Discrete (Long_Integer);
|
||||
begin
|
||||
|
@ -69,6 +69,8 @@ is
|
||||
function Random (Gen : Generator) return Interfaces.Unsigned_32;
|
||||
function Random (Gen : Generator) return Interfaces.Integer_64;
|
||||
function Random (Gen : Generator) return Interfaces.Unsigned_64;
|
||||
function Random (Gen : Generator) return Interfaces.Integer_128;
|
||||
function Random (Gen : Generator) return Interfaces.Unsigned_128;
|
||||
function Random (Gen : Generator) return Integer;
|
||||
function Random (Gen : Generator) return Long_Integer;
|
||||
-- Return pseudo-random numbers uniformly distributed on T'First .. T'Last
|
||||
|
Loading…
x
Reference in New Issue
Block a user