1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-05 10:23:52 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

445 lines
33 KiB
Plaintext

LABEL 0000000000XXXXXX0010000001
BEGIN SMR 1
COMMENT STEPWISE MULTIPLE REGRESSION SMR 2
CHARLES L. CLARK SMR 3
PROFESSIONAL SERVICES DIVISIONAL GROUP SMR 4
BURROUGHS CORPORATION SMR 5
PROGRAM CONTAINS 405 CARDS SMR 6
FIRST RELEASE DATE AUGUST 25, 1964 ; SMR 7
INTEGER I,NOVA,NSAM,NAD ; SMR 8
INTEGER ARRAY ID[0:4] ; SMR 9
BOOLEAN WT,STAP,SSQ,MEAN,RESD,COEF,PRED,CNST,TR ; SMR 10
REAL TOL,FIN,FOUT,CONS ; SMR 11
LABEL START,NOMO,LL1 ; SMR 12
FORMAT IN FORM1 (5A6,3F10.5,2I5,2L5/7L5,I2), SMR 13
FORM2 (12I6), SMR 14
FORM3 (26I3), SMR 15
FORM4 (12F6.1) ; SMR 16
FORMAT OUT TITLE(X41,"STEPWISE MULTIPLE REGRESSION ANALYSIS"///), SMR 17
FRM2 (X45,5A6//X1,"NO. OF DATA =",I5/ SMR 18
X1,"NO. OF VARIABLES =",I5/ SMR 19
X1,"WEIGHTED DEGREES OF FREEDOM =",F12.2/ SMR 20
X1,"F LEVEL TO ENTER VARIABLE =",F10.3/ SMR 21
X1,"F LEVEL TO REMOVE VARIABLE =",F9.3//), SMR 22
FRM3 (//X1,"SUM OF VARIABLES"// SMR 23
(X6,"SUM X(",I2,") =",F12.4)), SMR 24
FRM4 (X6,"SUM Y =",F12.4///X1,"SUM OF SQUARES AND ", SMR 25
"CROSS PRODUCTS"//), SMR 26
FRM5 (X6,"X(",I2,") VS X(",I2,") =",F15.6), SMR 27
FRM6 (X6,"X(",I2,") VS Y =",F15.6), SMR 28
FRM7 (X6," Y VS Y =",F15.6), SMR 29
FRM8 (//X1,"MEAN VALUE OF VARIABLES"// SMR 30
(X5,"MEAN X(",I2,") =",F12.4)), SMR 31
FRM9 (X5,"MEAN Y =",F12.4//), SMR 32
FRM10(X1,"RESIDUAL SUMS OF SQUARES AND CROSS PRODUCTS"/), SMR 33
FRM11(X1,"VARIABLE",I4," IS CONSTANT"/), SMR 34
FRM12(//X1,"CORRELATION COEFFICIENTS"/), SMR 35
FRM13(//X1,"SQUARE NON-POSITIVE,END STEP",I4/), SMR 36
FRM14(//X1,"NO MORE DEGREES OF FREEDOM, STEP ",I4/), SMR 37
FRM15(//X1,"SQUARE OF X",I4," IS NEGATIVE, END OF STEP ", SMR 38
I4/), SMR 39
FRM16(//X1,"STANDARD ERROR 6F Y = ",F12.6/), SMR 40
FRM17(//"STEP NO.",I4/X1,"VARIABLE REMOVED",I5), SMR 41
FRM18(//"STEP NO.",I4/X1,"VARIABLE ENTERING",I5), SMR 42
FRM19(X1,"F LEVEL ",F12.4/X1,"STANDARD ERROR OF ESTIMATE",SMR 43
X1,F12.4/X1,"CONSTANT ",F13.5/X1,"VARIABLE",X3, SMR 44
"COEFFICIENT",X3,"STD ERROR OF COEF"// SMR 45
((X3,"X",I3,X5,F10.5,X5,F10.5)/)), SMR 46
FRM20(//"STEPS OF REGRESSIO5 COMPLETED",I5/), SMR 47
FRM21(//"DIAGONAL ELEMENTS OF INVERSE OF CORRELATION ", SMR 48
"MATRIX"//X4,"VAR. NO."X5,"VALUE"//(I7,F16.6)/), SMR 49
FRM22(///X19,"PREDICTED VS ACTUAL VALUES"/X10,"RUN NO.", SMR 50
X4,"ACTUAL",X7,"PREDICTED",X5,"DEVIATION"/), SMR 51
FRM23(X8,I6,X2,F12.5,X3,F12.5,X2,F12.5) ; SMR 52
FILE IN CARDR(1,10) ; SMR 53
FILE OUT PRINT 1 (1,15) ; SMR 54
START: BEGIN SMR 55
LIST HEAD(FOR I ~ 0 STEP 1 UNTIL 4 DO ID[I],TOL,FIN,FOUT,NOVA, SMR 56
NSAM,WT,STAP,SSQ,MEAN,RESD,COEF,PRED,CNST,TR,NAD) ; SMR 57
READ (CARDR,FORM1,HEAD) [NOMO] ; SMR 58
WRITE(PRINT[PAGE]) ; SMR 59
WRITE(PRINT,TITLE) SMR 60
END ; SMR 61
LL1: BEGIN SMR 62
INTEGER NIN,K,NENT,NMIN,NMAX,NVP1,MARY,NEWV,NVA1 ; SMR 63
REAL VAR,FLEV ; SMR 64
LABEL LL2 ; SMR 65
K ~ 0 ; SMR 66
NENT ~ 0 ; SMR 67
NMIN ~ 0 ; SMR 68
NMAX ~ 0 ; SMR 69
NVA1 ~ NOVA + 1 ; SMR 70
NVP1 ~ NOVA + 1 + NAD ; SMR 71
MARY ~ NOVA + 1 + ABS(NAD) ; SMR 72
NEWV ~ NOVA + NAD ; SMR 73
LL2: BEGIN SMR 74
INTEGER N,J,L,VMI,VPL,NSTEP,IP1,VM2,STM1 ; SMR 75
BOOLEAN SWICH ; SMR 76
INTEGER ARRAY T[0:99],SC[0:NVA1],INDX[0:NVP1] ; SMR 77
REAL W,DF,SIGY,VMIN,VMAX,YPRE,DEV ; SMR 78
REAL ARRAY VEC[0:NVP1,0:NVP1],DATA[0:MARY],X[0:MARY],AVE[0:NVP1], SMR 79
SIG[0:NVP1],COEN[0:NVP1],SIGC[0:NVP1] ; SMR 80
LABEL LL6,LL8,LL9,LL10,LL11,LL12,LL13,LL14,LL15,LL16,NAXT, SMR 81
L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15 ; SMR 82
LIST SCAL(FOR I ~ 1 STEP 1 UNTIL NVA1 DO SC[I]), SMR 83
OUTT(FOR I ~ 0 STEP 1 UNTIL 4 DO ID[I],NSAM,NOVA, SMR 84
VEC[VPL,VPL],FIN,FOUT), SMR 85
TRAN(FOR J ~ 1 STEP 1 UNTIL NEWV DO T[J]), SMR 86
DATR(FOR L ~ 1 STEP 1 UNTIL NOVA DO DATA[L]), SMR 87
DATE(FOR L ~ 1 STEP 1 UNTIL NOVA DO DATA[L],W), SMR 88
SUMX(FOR I ~ 1 STEP 1 UNTIL VMI DO [I,VEC[I,VPL]]), SMR 89
SSQX(FOR J ~ I STEP 1 UNTIL VMI DO [I,J,VEC[I,J]]), SMR 90
SSYX(FOR I ~ 1 STEP 1 UNTIL VMI DO [I,VEC[I,NOVA]]), SMR 91
AVEX(FOR I ~ 1 STEP 1 UNTIL VMI DO [I,AVE[I]]), SMR 92
CORR(FOR J ~ IP1 STEP 1 UNTIL VMI DO [I,J,VEC[I,J]]), SMR 93
KOEF(FLEV,SIGY,CONS,FOR J ~ 1 STEP 1 UNTIL NIN DO SMR 94
[INDX[J],COEN[J],SIGC[J]]), SMR 95
DIAG(FOR L ~ 1 STEP 1 UNTIL VMI DO [L,VEC[L,L]]) ; SMR 96
SWITCH U ~ L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15 ; SMR 97
FILE TAPEB (2,NEWV+1) ; SMR 98
FOR I ~ 1 STEP 1 UNTIL NVP1 DO SMR 99
FOR J ~ 1 STEP 1 UNTIL NVP1 DO SMR 100
VEC[I,J] ~ 0.0 ; SMR 101
READ (CARDR,FORM2,SCAL) ; SMR 102
IF TR THEN SMR 103
READ (CARDR,FORM3,TRAN) ; SMR 104
FOR N ~ 1 STEP 1 UNTIL NSAM DO SMR 105
BEGIN SMR 106
IF WT THEN SMR 107
READ (CARDR,FORM4,DATE) SMR 108
ELSE SMR 109
READ (CARDR,FORM4,DATR) ; SMR 110
FOR J ~ 1 STEP 1 UNTIL NOVA DO SMR 111
BEGIN SMR 112
X[J] ~ DATA[J]|10.0*SC[J] ; SMR 113
DATA[J] ~ X[J] SMR 114
END ; SMR 115
COMMENT TRANSFORMATIONS ; SMR 116
IF TR THEN SMR 117
BEGIN SMR 118
FOR J ~ NEWV STEP -1 UNTIL 1 DO SMR 119
BEGIN SMR 120
GO TO U[T[J]] ; SMR 121
L1: DATA[J] ~ X[J] ; SMR 122
GO TO NAXT ; SMR 123
L2: DATA[J] ~ X[J]|X[J] ; SMR 124
GO TO NAXT ; SMR 125
L3: DATA[J] ~ 1 / X[J] ; SMR 126
GO TO NAXT ; SMR 127
L4: DATA[J] ~ SQRT(X[J]) ; SMR 128
GO TO NAXT ; SMR 129
L5: DATA[J] ~ EXP(X[J]) ; SMR 130
GO TO NAXT ; SMR 131
L6: DATA[J] ~ LN(X[J]) ; SMR 132
GO TO NAXT ; SMR 133
L7: DATA[J] ~ SIN(X[J]) ; SMR 134
GO TO NAXT ; SMR 135
L8: DATA[J] ~ COS(X[J]) ; SMR 136
GO TO NAXT ; SMR 137
L9: DATA[J] ~ X[J+1] ; SMR 138
GO TO NAXT ; SMR 139
L10: DATA[J] ~ X[J+2] ; SMR 140
GO TO NAXT ; SMR 141
L11: DATA[J] ~ X[J+3] ; SMR 142
GO TO NAXT ; SMR 143
L12: DATA[J] ~ X[J+4] ; SMR 144
GO TO NAXT ; SMR 145
L13: DATA[J] ~ X[J+5] ; SMR 146
GO TO NAXT ; SMR 147
L14: DATA[J] ~ X[J+6] ; SMR 148
GO TO NAXT ; SMR 149
L15: DATA[J] ~ X[J+7] ; SMR 150
GO TO NAXT ; SMR 151
NAXT: END SMR 152
END ; SMR 153
IF WT THEN SMR 154
W ~ W|10.0*SC[NVA1] ; SMR 155
WRITE(TAPEB,NEWV+1,DATA[*]) ; SMR 156
FOR I ~ 1 STEP 1 UNTIL NEWV DO SMR 157
BEGIN SMR 158
L ~ NEWV + 1 ; SMR 159
IF WT THEN SMR 160
DF ~ DATA[I]|W SMR 161
ELSE SMR 162
DF ~ DATA[I] ; SMR 163
VEC[I,L] ~ VEC[I,L] + DF ; SMR 164
FOR J ~ I STEP 1 UNTIL NEWV DO SMR 165
VEC[I,J] ~ VEC[I,J] + DF|DATA[J] SMR 166
END ; SMR 167
IF NOT WT THEN SMR 168
W ~ 1.0 ; SMR 169
VEC[NVP1,NVP1] ~ VEC[NVP1,NVP1] + W SMR 170
END ; SMR 171
NOVA ~ NEWV ; SMR 172
VMI ~ NOVA - 1 ; SMR 173
VPL ~ NOVA + 1 ; SMR 174
WRITE(PRINT,FRM2,OUTT) ; SMR 175
IF SSQ THEN SMR 176
BEGIN SMR 177
WRITE(PRINT,FRM3,SUMX) ; SMR 178
WRITE(PRINT,FRM4,VEC[NOVA,VPL]) ; SMR 179
FOR I ~ 1 STEP 1 UNTIL VMI DO SMR 180
WRITE(PRINT,FRM5,SSQX) ; SMR 181
WRITE(PRINT,FRM6,SSYX) ; SMR 182
WRITE(PRINT,FRM7,VEC[NOVA,NOVA]) SMR 183
END ; SMR 184
IF CNST THEN SMR 185
FOR I ~ 1 STEP 1 UNTIL NOVA DO SMR 186
FOR J ~ 1 STEP 1 UNTIL NOVA DO SMR 187
VEC[I,J] ~ VEC[I,J]-(VEC[I,VPL]|VEC[J,VPL]/VEC[VPL,VPL]) ;SMR 188
FOR I ~ 1 STEP 1 UNTIL NOVA DO SMR 189
AVE[I] ~ VEC[I,VPL] / VEC[VPL,VPL] ; SMR 190
IF MEAN THEN SMR 191
BEGIN SMR 192
WRITE(PRINT,FRM8,AVEX) ; SMR 193
WRITE(PRINT,FRM9,AVE[NOVA]) SMR 194
END ; SMR 195
IF RESD THEN SMR 196
BEGIN SMR 197
WRITE(PRINT,FRM10) ; SMR 198
FOR I ~ 1 STEP 1 UNTIL VMI DO SMR 199
WRITE(PRINT,FRM5,SSQX) ; SMR 200
WRITE(PRINT,FRM6,SSYX) ; SMR 201
WRITE(PRINT,FRM7,VEC[NOVA,NOVA]) SMR 202
END ; SMR 203
NSTEP ~ -1 ; SMR 204
SWICH ~ FALSE ; SMR 205
DF ~ VEC[VPL,VPL] - 1.0 ; SMR 206
FOR I ~ 1 STEP 1 UNTIL NOVA DO SMR 207
BEGIN SMR 208
IF VEC[I,I] = 0 THEN SMR 209
BEGIN SMR 210
WRITE(PRINT,FRM11,I) ; SMR 211
SIG[I] ~ 1.0 SMR 212
END SMR 213
ELSE SMR 214
SIG[I] ~ SQRT(VEC[I,I]) ; SMR 215
VEC[I,I] ~ 1.0 SMR 216
END ; SMR 217
FOR I ~ 1 STEP 1 UNTIL VMI DO SMR 218
BEGIN SMR 219
IP1 ~ I + 1 ; SMR 220
FOR J ~ IP1 STEP 1 UNTIL NOVA DO SMR 221
BEGIN SMR 222
VEC[I,J] ~ VEC[I,J] / (SIG[I]|SIG[J]) ; SMR 223
VEC[J,I] ~ VEC[I,J] SMR 224
END SMR 225
END ; SMR 226
IF COEF THEN SMR 227
BEGIN SMR 228
WRITE(PRINT,FRM12) ; SMR 229
VM2 ~ VMI - 1 ; SMR 230
FOR I ~ 1 STEP 1 UNTIL VM2 DO SMR 231
BEGIN SMR 232
IP1 ~ I + 1 ; SMR 233
WRITE(PRINT,FRM5,CORR) SMR 234
END ; SMR 235
WRITE(PRINT,FRM6,SSYX) SMR 236
END ; SMR 237
COMMENT COMPUTE NEXT REGRESSION EQUATION ; SMR 238
LL12: NSTEP ~ NSTEP + 1 ; SMR 239
IF VEC[NOVA,NOVA] { 0 THEN SMR 240
BEGIN SMR 241
STM1 ~ NSTEP - 1 ; SMR 242
WRITE(PRINT,FRM13,STM1) ; SMR 243
GO TO LL14 SMR 244
END ; SMR 245
SIGY ~ SIG[NOVA] | SQRT(VEC[NOVA,NOVA] / DF) ; SMR 246
DF ~ DF - 1.0 ; SMR 247
IF DF { 0 THEN SMR 248
BEGIN SMR 249
WRITE(PRINT,FRM14,NSTEP) ; SMR 250
GO TO LL14 SMR 251
END ; SMR 252
VMIN ~ 0.0 ; SMR 253
VMAX ~ 0.0 ; SMR 254
NIN ~ 0 ; SMR 255
FOR I ~ 1 STEP 1 UNTIL VMI DO SMR 256
BEGIN SMR 257
IF VEC[I,I] < 0 THEN SMR 258
BEGIN SMR 259
WRITE(PRINT,FRM15,NSTEP) ; SMR 260
GO TO LL14 SMR 261
END SMR 262
ELSE IF VEC[I,I] = 0 THEN SMR 263
GO TO LL8 SMR 264
ELSE IF VEC[I,I] - TOL < 0 THEN SMR 265
GO TO LL8 SMR 266
ELSE SMR 267
VAR ~ VEC[I,NOVA] | VEC[NOVA,I] / VEC[I,I] ; SMR 268
IF VAR < 0 THEN SMR 269
BEGIN SMR 270
NIN ~ NIN + 1 ; SMR 271
INDX[NIN] ~ I ; SMR 272
COEN[NIN] ~ VEC[I,NOVA] | SIG[NOVA] / SIG[I] ; SMR 273
SIGC[NIN] ~ (SIGY / SIG[I]) | SQRT(VEC[I,I]) ; SMR 274
COMMENT CHOOSE NEXT ENTERING VARIABLE AND LEAVING VARIABLE ; SMR 275
IF VMIN > 0 THEN SMR 276
BEGIN SMR 277
REWIND(TAPEB) ; SMR 278
GO TO START SMR 279
END SMR 280
ELSE IF VMIN = 0 THEN SMR 281
BEGIN SMR 282
LL6: VMIN ~ VAR ; SMR 283
NMIN ~ I ; SMR 284
GO TO LL8 SMR 285
END SMR 286
ELSE IF VAR - VMIN > 0 THEN SMR 287
GO TO LL6 SMR 288
ELSE SMR 289
GO TO LL8 SMR 290
END SMR 291
ELSE IF VAR = 0 THEN SMR 292
GO TO LL8 SMR 293
ELSE SMR 294
BEGIN SMR 295
IF VAR - VMAX { 0 THEN SMR 296
GO TO LL8 SMR 297
ELSE SMR 298
BEGIN SMR 299
VMAX ~ VAR ; SMR 300
NMAX ~ I SMR 301
END SMR 302
END ; SMR 303
LL8: END ; SMR 304
IF NIN < 0 THEN SMR 305
BEGIN SMR 306
REWIND(TAPEB) ; SMR 307
GO TO START SMR 308
END SMR 309
ELSE IF NIN = 0 THEN SMR 310
BEGIN SMR 311
WRITE(PRINT,FRM16,SIGY) ; SMR 312
GO TO LL10 SMR 313
END SMR 314
ELSE IF CNST THEN SMR 315
CONS ~ AVE[NOVA] SMR 316
ELSE SMR 317
BEGIN SMR 318
CONS ~ 0.0 ; SMR 319
GO TO LL9 SMR 320
END ; SMR 321
FOR I ~ 1 STEP 1 UNTIL NIN DO SMR 322
BEGIN SMR 323
J ~ INDX[I] ; SMR 324
CONS ~ CONS - (COEN[I] | AVE[J]) SMR 325
END ; SMR 326
LL9: IF STAP THEN SMR 327
BEGIN SMR 328
IF NENT { 0 THEN SMR 329
WRITE(PRINT,FRM17,NSTEP,K) SMR 330
ELSE SMR 331
WRITE(PRINT,FRM18,NSTEP,K) ; SMR 332
WRITE(PRINT,FRM19,KOEF) SMR 333
END ; SMR 334
COMMENT TESTS TO REMOVE OR ENTER VARIABLE ; SMR 335
IF SWICH THEN SMR 336
GO TO LL15 ; SMR 337
FLEV ~ VMIN | DF / VEC[NOVA,NOVA] ; SMR 338
IF FOUT + FLEV > 0 THEN SMR 339
BEGIN SMR 340
K ~ NMIN ; SMR 341
NENT ~ 0 ; SMR 342
GO TO LL16 SMR 343
END ; SMR 344
LL10: FLEV ~ VMAX | DF / (VEC[NOVA,NOVA] - VMAX) ; SMR 345
IF (FIN > FLEV) OR ((FIN = FLEV) AND (FIN { 0)) THEN SMR 346
GO TO LL13 ; SMR 347
K ~ NMAX ; SMR 348
NENT ~ K ; SMR 349
COMMENT COMPUTE NEXT MATRIX ; SMR 350
LL16: IF K { 0 THEN SMR 351
BEGIN SMR 352
REWIND(TAPEB) ; SMR 353
GO TO START SMR 354
END ; SMR 355
FOR I ~ 1 STEP 1 UNTIL NOVA DO SMR 356
BEGIN SMR 357
IF I = K THEN SMR 358
GO TO LL11 ; SMR 359
FOR J ~ 1 STEP 1 UNTIL NOVA DO SMR 360
BEGIN SMR 361
IF J ! K THEN SMR 362
VEC[I,J] ~ VEC[I,J] - VEC[I,K] | VEC[K,J] / VEC[K,K] SMR 363
END ; SMR 364
LL11: END ; SMR 365
FOR I ~ 1 STEP 1 UNTIL NOVA DO SMR 366
BEGIN SMR 367
IF I ! K THEN SMR 368
VEC[I,K] ~ - VEC[I,K] / VEC[K,K] SMR 369
END ; SMR 370
FOR J ~ 1 STEP 1 UNTIL NOVA DO SMR 371
BEGIN SMR 372
IF J ! K THEN SMR 373
VEC[K,J] ~ VEC[K,J] / VEC[K,K] SMR 374
END ; SMR 375
VEC[K,K] ~ 1.0 / VEC[K,K] ; SMR 376
GO TO LL12 ; SMR 377
LL13: WRITE(PRINT,FRM20,NSTEP) ; SMR 378
LL14: IF STAP THEN SMR 379
GO TO LL15 ; SMR 380
SWICH ~ TRUE ; SMR 381
GO TO LL9 ; SMR 382
LL15: WRITE(PRINT,FRM21,DIAG) ; SMR 383
IF PRED THEN SMR 384
BEGIN SMR 385
REWIND(TAPEB) ; SMR 386
WRITE(PRINT,FRM22) ; SMR 387
FOR N ~ 1 STEP 1 UNTIL NSAM DO SMR 388
BEGIN SMR 389
READ (TAPEB,NOVA+1,DATA[*]) ; SMR 390
YPRE ~ CONS ; SMR 391
FOR I ~ 1 STEP 1 UNTIL NIN DO SMR 392
BEGIN SMR 393
K ~ INDX[I] ; SMR 394
YPRE ~ YPRE + COEN[I] | DATA[K] SMR 395
END ; SMR 396
DEV ~ DATA[NOVA] - YPRE ; SMR 397
WRITE(PRINT,FRM23,N,DATA[NOVA],YPRE,DEV) SMR 398
END SMR 399
END ; SMR 400
REWIND(TAPEB) ; SMR 401
END SMR 402
END ; SMR 403
GO TO START ; SMR 404
NOMO: END PROGRAM. SMR 405
LABEL 000000000CARDR 0010000001
PROF. SERV. DEPT. PROB. 90010000.001000002.500000002.50000 4 15FALSE TRUE
TRUE TRUE TRUE TRUE TRUE TRUEFALSE
32.0 48.0 54.0 15.0
36.0 33.0 19.0 16.0
3.0 28.0 30.0 14.0
12.0 33.0 64.0 22.0
36.0 34.0 60.0 24.0
24.0 36.0 53.0 19.0
19.0 42.0 29.0 13.0
20.0 33.0 55.0 15.0
27.0 36.0 62.0 23.0
15.0 22.0 33.0 12.0
45.0 46.0 68.0 25.0
9.0 28.0 42.0 17.0
11.0 32.0 45.0 18.0
33.0 34.0 39.0 19.0
21.0 45.0 39.0 18.0
PROF. SERV. DEPT. PROB. 9032 0.001 2.5 0.2 4 15 TRUE TRUE
TRUE TRUE TRUE TRUE TRUEFALSE TRUE-1
4 9 9
32.0 48.0 54.0 15.0 0.1
36.0 33.0 19.0 16.0 1.0
3.0 28.0 30.0 14.0 1.0
12.0 33.0 64.0 22.0 1.0
36.0 34.0 60.0 24.0 0.4
24.0 36.0 53.0 19.0 3.0
19.0 42.0 29.0 13.0 1.0
20.0 33.0 55.0 15.0 0.2
27.0 36.0 62.0 23.0 1.0
15.0 22.0 33.0 12.0 0.3
45.0 46.0 68.0 25.0 2.0
9.0 28.0 42.0 17.0 1.0
11.0 32.0 45.0 18.0 1.0
33.0 34.0 39.0 19.0 1.0
21.0 45.0 39.0 18.0 1.0