Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Numbers/multprec_random_numbers.adb, Revision 1.1
1.1 ! maekawa 1: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
! 2: with Standard_Random_Numbers;
! 3:
! 4: package body Multprec_Random_Numbers is
! 5:
! 6: function Random ( size : natural ) return Natural_Number is
! 7:
! 8: res : Natural_Number;
! 9: arn : Array_of_Naturals(0..size);
! 10:
! 11: begin
! 12: for i in arn'range loop
! 13: arn(i) := Standard_Random_Numbers.Random(0,Base-1);
! 14: end loop;
! 15: res := Create(arn);
! 16: return res;
! 17: end Random;
! 18:
! 19: function Random ( size : natural ) return Integer_Number is
! 20:
! 21: res : Integer_Number;
! 22: sig : double_float := Standard_Random_Numbers.Random;
! 23: rnd : Natural_Number := Random(size);
! 24:
! 25: begin
! 26: res := Create(rnd);
! 27: if sig < 0.0
! 28: then Min(res);
! 29: end if;
! 30: Clear(rnd);
! 31: return res;
! 32: end Random;
! 33:
! 34: function Random ( size : natural ) return Floating_Number is
! 35:
! 36: res : Floating_Number;
! 37: naturfrac : Natural_Number := Random(size);
! 38: frac,expo : Integer_Number;
! 39:
! 40: begin
! 41: frac := Create(naturfrac);
! 42: Clear(naturfrac);
! 43: expo := Create(-Decimal_Places(frac));
! 44: res := Create(frac,expo);
! 45: Clear(frac); Clear(expo);
! 46: return res;
! 47: end Random;
! 48:
! 49: function Random ( size : natural ) return Complex_Number is
! 50:
! 51: res : Complex_Number;
! 52: re : Floating_Number := Random(size);
! 53: im : Floating_Number := Random(size);
! 54:
! 55: begin
! 56: res := Create(re,im);
! 57: Clear(re); Clear(im);
! 58: return res;
! 59: end Random;
! 60:
! 61: end Multprec_Random_Numbers;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>