forked from johannesgerer/jburkardt-f
-
Notifications
You must be signed in to change notification settings - Fork 1
/
asa144.html
197 lines (167 loc) · 4.63 KB
/
asa144.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<html>
<head>
<title>
ASA144 - Random generation of a table.
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
ASA144 <br> Random generation of a table.
</h1>
<hr>
<p>
<b>ASA144</b>
is a FORTRAN90 library which
randomly generates an RxC contingency table,
by James Boyett.
</p>
<p>
<b>ASA144</b> is Applied Statistics Algorithm 144. Source code for many
Applied Statistics Algorithms is available through
<a href = "http://lib.stat.cmu.edu/apstat">STATLIB</a>.
</p>
<p>
<b>ASA144</b> accepts a table shape (the number of rows and columns),
and two vectors, the lists of row and column sums. There may be 0, 1, or
many tables with nonnegative, integral entries that have the given
shape and sums. The program will generate, at random, one of the
tables and return it. Repeated calls to the program will return
new random selections.
</p>
<p>
For example, suppose M = 2, N = 3, row sum = (/ 6, 5 /) and
column sum = (/ 3, 4, 4 /), then here are two tables that satisfy
the constraints:
<pre>
1 2 3
2 2 1
</pre>
and
<pre>
3 0 3
0 4 1
</pre>
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>ASA144</b> is available in
<a href = "../../c_src/asa144/asa144.html"> a C version</a> and
<a href = "../../cpp_src/asa144/asa144.html"> a C++ version</a> and
<a href = "../../f77_src/asa144/asa144.html"> a FORTRAN77 version</a> and
<a href = "../../f_src/asa144/asa144.html"> a FORTRAN90 version</a> and
<a href = "../../m_src/asa144/asa144.html"> a MATLAB version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../f_src/asa159/asa159.html">
ASA159</a>,
a FORTRAN90 routine which
randomly generates an RxC contingency table.
</p>
<p>
<a href = "../../f_src/asa205/asa205.html">
ASA205</a>,
a FORTRAN90 library which
generates all the contingency
tables corresponding to a given set of row and column sums.
</p>
<p>
<a href = "../../f_src/subset/subset.html">
SUBSET</a>,
a FORTRAN90 library which
includes a routine called <b>IMAT_01_ROWCOLSUM</b> which
generates a (0,1) matrix with given row and column sums.
</p>
<h3 align = "center">
Author:
</h3>
<p>
Original FORTRAN77 version by James Boyett;
FORTRAN90 version by John Burkardt.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
<ol>
<li>
James Boyett,<br>
Algorithm AS 144:
Random R x C Tables with Given Row and Column Totals,<br>
Applied Statistics,<br>
Volume 28, Number 3, 1979, pages 329-332.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "asa144.f90">asa144.f90</a>, the source code.
</li>
<li>
<a href = "asa144.sh">asa144.sh</a>, commands to
compile the source code.
</li>
</ul>
</p>
<h3 align = "center">
Examples and Tests:
</h3>
<p>
<ul>
<li>
<a href = "asa144_prb.f90">asa144_prb.f90</a>, a sample problem.
</li>
<li>
<a href = "asa144_prb.sh">asa144_prb.sh</a>,
commands to compile, link and run the sample problem.
</li>
<li>
<a href = "asa144_prb_output.txt">asa144_prb_output.txt</a>,
the output file.
</li>
</ul>
</p>
<h3 align = "center">
List of Routines:
</h3>
<p>
<ul>
<li>
<b>I4MAT_PRINT</b> prints an integer matrix.
</li>
<li>
<b>I4MAT_PRINT_SOME</b> prints some of an integer matrix.
</li>
<li>
<b>I4VEC_PRINT</b> prints an integer vector.
</li>
<li>
<b>R8_UNIFORM_01</b> returns a unit double precision pseudorandom number.
</li>
<li>
<b>RCONT</b> generates a random two-way table with given marginal totals.
</li>
<li>
<b>TIMESTAMP</b> prints out the current YMDHMS date as a timestamp.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../f_src.html">
the FORTRAN90 source codes</a>.
</p>
<hr>
<i>
Last revised on 28 January 2008
</i>
<!-- John Burkardt -->
</body>
</html>