Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Numbers/ts_random.adb, Revision 1.1.1.1
1.1 maekawa 1: with text_io,integer_io; use text_io,integer_io;
2: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
3: with Standard_Floating_Numbers_io; use Standard_Floating_Numbers_io;
4: with Standard_Complex_Numbers;
5: with Standard_Complex_Numbers_io; use Standard_Complex_Numbers_io;
6: with Standard_Random_Numbers; use Standard_Random_Numbers;
7: with Multprec_Natural_Numbers; use Multprec_Natural_Numbers;
8: with Multprec_Natural_Numbers_io; use Multprec_Natural_Numbers_io;
9: with Multprec_Integer_Numbers; use Multprec_Integer_Numbers;
10: with Multprec_Integer_Numbers_io; use Multprec_Integer_Numbers_io;
11: with Multprec_Floating_Numbers; use Multprec_Floating_Numbers;
12: with Multprec_Floating_Numbers_io; use Multprec_Floating_Numbers_io;
13: with Multprec_Complex_Numbers;
14: with Multprec_Complex_Numbers_io; use Multprec_Complex_Numbers_io;
15: with Multprec_Random_Numbers; use Multprec_Random_Numbers;
16:
17: procedure ts_random is
18:
19: procedure Random_Standard_Integer is
20:
21: n : natural;
22: low,upp,rndi : integer;
23:
24: begin
25: new_line;
26: put_line("Testing the random generation of standard integer numbers.");
27: new_line;
28: put("Give lower bound : "); get(low);
29: put("Give lower bound : "); get(upp);
30: put("Give number of random integers : "); get(n);
31: put_line("Generating random numbers : ");
32: for i in 1..n loop
33: rndi := Random(low,upp);
34: put(rndi); new_line;
35: end loop;
36: end Random_Standard_Integer;
37:
38: procedure Random_Standard_Complex is
39:
40: n : natural;
41: use Standard_Complex_Numbers;
42: rndc : Complex_Number;
43: absv : double_float;
44:
45: begin
46: new_line;
47: put_line("Testing the random generation of standard complex numbers.");
48: new_line;
49: put("Give the number of randoms to be generated : "); get(n);
50: for k in 1..n loop
51: rndc := Random;
52: put(" x = "); put(rndc);
53: absv := AbsVal(rndc);
54: put(" |x| = "); put(absv,3,3,3); new_line;
55: end loop;
56: end Random_Standard_Complex;
57:
58: procedure Random_Multprec_Natural is
59:
60: n,sz : natural;
61: rnd : Natural_Number;
62:
63: begin
64: new_line;
65: put_line("Testing the random generation of multi-precision naturals.");
66: new_line;
67: put("Give the size of the numbers : "); get(sz);
68: put("Give number of random naturals : "); get(n);
69: put_line("Generating random numbers : ");
70: for i in 1..n loop
71: rnd := Random(sz); put(rnd); new_line;
72: end loop;
73: end Random_Multprec_Natural;
74:
75: procedure Random_Multprec_Integer is
76:
77: n,sz : natural;
78: rnd : Integer_Number;
79:
80: begin
81: new_line;
82: put_line("Testing the random generation of multi-precision integers.");
83: new_line;
84: put("Give the size of the numbers : "); get(sz);
85: put("Give number of random integers : "); get(n);
86: put_line("Generating random numbers : ");
87: for i in 1..n loop
88: rnd := Random(sz); put(rnd); new_line;
89: end loop;
90: end Random_Multprec_Integer;
91:
92: procedure Random_Multprec_Floating is
93:
94: n,sz : natural;
95: rnd : Floating_Number;
96:
97: begin
98: new_line;
99: put_line("Testing the random generation of multi-precision floats.");
100: new_line;
101: put("Give the size of the numbers : "); get(sz);
102: put("Give number of random floating numbers : "); get(n);
103: put_line("Generating random numbers : ");
104: for i in 1..n loop
105: rnd := Random(sz); put(rnd); new_line;
106: end loop;
107: end Random_Multprec_Floating;
108:
109: procedure Random_Multprec_Complex is
110:
111: n,sz : natural;
112: use Multprec_Complex_Numbers;
113: rnd : Complex_Number;
114:
115: begin
116: new_line;
117: put_line("Testing the random generation of multi-precision complex");
118: new_line;
119: put("Give the size of the numbers : "); get(sz);
120: put("Give number of random complex numbers : "); get(n);
121: put_line("Generating random numbers : ");
122: for i in 1..n loop
123: rnd := Random(sz); put(rnd); new_line;
124: end loop;
125: end Random_Multprec_Complex;
126:
127: procedure Main is
128:
129: ans : character;
130:
131: begin
132: new_line;
133: put_line("Testing the Random Number Generators");
134: loop
135: new_line;
136: put_line("Choose one of the following :");
137: put_line(" 0. exit the program.");
138: put_line(" 1. standard integer numbers.");
139: put_line(" 2. standard complex numbers.");
140: put_line(" 3. multi-precision natural numbers.");
141: put_line(" 4. multi-precision integer numbers.");
142: put_line(" 5. multi-precision floating numbers.");
143: put_line(" 6. multi-precision complex numbers.");
144: put("Make your choice (0,1,2,3,4,5 or 6) : "); get(ans);
145: exit when (ans = '0');
146: case ans is
147: when '1' => Random_Standard_Integer;
148: when '2' => Random_Standard_Complex;
149: when '3' => Random_Multprec_Natural;
150: when '4' => Random_Multprec_Integer;
151: when '5' => Random_Multprec_Floating;
152: when '6' => Random_Multprec_Complex;
153: when others => null;
154: end case;
155: end loop;
156: end Main;
157:
158: begin
159: Main;
160: end ts_random;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>