GRASS Programmer's Manual
6.4.2(2012)
|
00001 #include <stdio.h> 00002 #include <stdlib.h> 00003 #include <math.h> 00004 #include "local_proto.h" 00005 00006 00007 double *shapiro_wilk(double *x, int n) 00008 { 00009 static double y[2]; 00010 double a[25], s2, *xcopy; 00011 double sumb = 0.0, sumx = 0.0, sumx2 = 0.0; 00012 int i, k; 00013 00014 if ((xcopy = (double *)malloc(n * sizeof(double))) == NULL) { 00015 fprintf(stderr, "Memory error in shapiro_wilk\n"); 00016 exit(EXIT_FAILURE); 00017 } 00018 00019 k = n / 2; 00020 for (i = 0; i < n; ++i) { 00021 xcopy[i] = x[i]; 00022 sumx += x[i]; 00023 sumx2 += x[i] * x[i]; 00024 } 00025 s2 = sumx2 - sumx * sumx / n; 00026 00027 qsort(xcopy, n, sizeof(double), dcmp); 00028 00029 if (n == 3) { 00030 a[0] = (double).7071; 00031 } 00032 else if (n == 4) { 00033 a[0] = (double).6872; 00034 a[1] = (double).1677; 00035 } 00036 else if (n == 5) { 00037 a[0] = (double).6646; 00038 a[1] = (double).2413; 00039 } 00040 else if (n == 6) { 00041 a[0] = (double).6431; 00042 a[1] = (double).2806; 00043 a[2] = (double).0875; 00044 } 00045 else if (n == 7) { 00046 a[0] = (double).6233; 00047 a[1] = (double).3031; 00048 a[2] = (double).1401; 00049 } 00050 else if (n == 8) { 00051 a[0] = (double).6052; 00052 a[1] = (double).3164; 00053 a[2] = (double).1743; 00054 a[3] = (double).0561; 00055 } 00056 else if (n == 9) { 00057 a[0] = (double).5888; 00058 a[1] = (double).3244; 00059 a[2] = (double).1976; 00060 a[3] = (double).0947; 00061 } 00062 else if (n == 10) { 00063 a[0] = (double).5739; 00064 a[1] = (double).3291; 00065 a[2] = (double).2141; 00066 a[3] = (double).1224; 00067 a[4] = (double).0399; 00068 } 00069 else if (n == 11) { 00070 a[0] = (double).5601; 00071 a[1] = (double).3315; 00072 a[2] = (double).226; 00073 a[3] = (double).1429; 00074 a[4] = (double).0695; 00075 } 00076 else if (n == 12) { 00077 a[0] = (double).5475; 00078 a[1] = (double).3325; 00079 a[2] = (double).2347; 00080 a[3] = (double).1586; 00081 a[4] = (double).0922; 00082 a[5] = (double).0303; 00083 } 00084 else if (n == 13) { 00085 a[0] = (double).5359; 00086 a[1] = (double).3325; 00087 a[2] = (double).2412; 00088 a[3] = (double).1707; 00089 a[4] = (double).1099; 00090 a[5] = (double).0539; 00091 } 00092 else if (n == 14) { 00093 a[0] = (double).5251; 00094 a[1] = (double).3318; 00095 a[2] = (double).246; 00096 a[3] = (double).1802; 00097 a[4] = (double).124; 00098 a[5] = (double).0727; 00099 a[6] = (double).024; 00100 } 00101 else if (n == 15) { 00102 a[0] = (double).515; 00103 a[1] = (double).3306; 00104 a[2] = (double).2495; 00105 a[3] = (double).1878; 00106 a[4] = (double).1353; 00107 a[5] = (double).088; 00108 a[6] = (double).0433; 00109 } 00110 else if (n == 16) { 00111 a[0] = (double).5056; 00112 a[1] = (double).329; 00113 a[2] = (double).2521; 00114 a[3] = (double).1939; 00115 a[4] = (double).1447; 00116 a[5] = (double).1005; 00117 a[6] = (double).0593; 00118 a[7] = (double).0196; 00119 } 00120 else if (n == 17) { 00121 a[0] = (double).4968; 00122 a[1] = (double).3273; 00123 a[2] = (double).254; 00124 a[3] = (double).1988; 00125 a[4] = (double).1524; 00126 a[5] = (double).1109; 00127 a[6] = (double).0725; 00128 a[7] = (double).0359; 00129 } 00130 else if (n == 18) { 00131 a[0] = (double).4886; 00132 a[1] = (double).3253; 00133 a[2] = (double).2553; 00134 a[3] = (double).2027; 00135 a[4] = (double).1587; 00136 a[5] = (double).1197; 00137 a[6] = (double).0837; 00138 a[7] = (double).0496; 00139 a[8] = (double).0163; 00140 } 00141 else if (n == 19) { 00142 a[0] = (double).4808; 00143 a[1] = (double).3232; 00144 a[2] = (double).2561; 00145 a[3] = (double).2059; 00146 a[4] = (double).1641; 00147 a[5] = (double).1271; 00148 a[6] = (double).0932; 00149 a[7] = (double).0612; 00150 a[8] = (double).0303; 00151 } 00152 else if (n == 20) { 00153 a[0] = (double).4734; 00154 a[1] = (double).3211; 00155 a[2] = (double).2565; 00156 a[3] = (double).2085; 00157 a[4] = (double).1686; 00158 a[5] = (double).1334; 00159 a[6] = (double).1013; 00160 a[7] = (double).0711; 00161 a[8] = (double).0422; 00162 a[9] = (double).014; 00163 } 00164 else if (n == 21) { 00165 a[0] = (double).4643; 00166 a[1] = (double).3185; 00167 a[2] = (double).2578; 00168 a[3] = (double).2119; 00169 a[4] = (double).1736; 00170 a[5] = (double).1399; 00171 a[6] = (double).1092; 00172 a[7] = (double).0804; 00173 a[8] = (double).053; 00174 a[9] = (double).0263; 00175 } 00176 else if (n == 22) { 00177 a[0] = (double).459; 00178 a[1] = (double).3156; 00179 a[2] = (double).2571; 00180 a[3] = (double).2131; 00181 a[4] = (double).1764; 00182 a[5] = (double).1443; 00183 a[6] = (double).115; 00184 a[7] = (double).0878; 00185 a[8] = (double).0618; 00186 a[9] = (double).0368; 00187 a[10] = (double).0122; 00188 } 00189 else if (n == 23) { 00190 a[0] = (double).4542; 00191 a[1] = (double).3126; 00192 a[2] = (double).2563; 00193 a[3] = (double).2139; 00194 a[4] = (double).1787; 00195 a[5] = (double).148; 00196 a[6] = (double).1201; 00197 a[7] = (double).0941; 00198 a[8] = (double).0696; 00199 a[9] = (double).0459; 00200 a[10] = (double).0228; 00201 } 00202 else if (n == 24) { 00203 a[0] = (double).4493; 00204 a[1] = (double).3098; 00205 a[2] = (double).2554; 00206 a[3] = (double).2145; 00207 a[4] = (double).1807; 00208 a[5] = (double).1512; 00209 a[6] = (double).1245; 00210 a[7] = (double).0997; 00211 a[8] = (double).0764; 00212 a[9] = (double).0539; 00213 a[10] = (double).0321; 00214 a[11] = (double).0107; 00215 } 00216 else if (n == 25) { 00217 a[0] = (double).445; 00218 a[1] = (double).3069; 00219 a[2] = (double).2543; 00220 a[3] = (double).2148; 00221 a[4] = (double).1822; 00222 a[5] = (double).1539; 00223 a[6] = (double).1283; 00224 a[7] = (double).1046; 00225 a[8] = (double).0823; 00226 a[9] = (double).061; 00227 a[10] = (double).0403; 00228 a[11] = (double).02; 00229 } 00230 else if (n == 26) { 00231 a[0] = (double).4407; 00232 a[1] = (double).3043; 00233 a[2] = (double).2533; 00234 a[3] = (double).2151; 00235 a[4] = (double).1836; 00236 a[5] = (double).1563; 00237 a[6] = (double).1316; 00238 a[7] = (double).1089; 00239 a[8] = (double).0876; 00240 a[9] = (double).0672; 00241 a[10] = (double).0476; 00242 a[11] = (double).0284; 00243 a[12] = (double).0094; 00244 } 00245 else if (n == 27) { 00246 a[0] = (double).4366; 00247 a[1] = (double).3018; 00248 a[2] = (double).2522; 00249 a[3] = (double).2152; 00250 a[4] = (double).1848; 00251 a[5] = (double).1584; 00252 a[6] = (double).1346; 00253 a[7] = (double).1128; 00254 a[8] = (double).0923; 00255 a[9] = (double).0728; 00256 a[10] = (double).054; 00257 a[11] = (double).0358; 00258 a[12] = (double).0178; 00259 } 00260 else if (n == 28) { 00261 a[0] = (double).4328; 00262 a[1] = (double).2992; 00263 a[2] = (double).251; 00264 a[3] = (double).2151; 00265 a[4] = (double).1857; 00266 a[5] = (double).1601; 00267 a[6] = (double).1372; 00268 a[7] = (double).1162; 00269 a[8] = (double).0965; 00270 a[9] = (double).0778; 00271 a[10] = (double).0598; 00272 a[11] = (double).0424; 00273 a[12] = (double).0253; 00274 a[13] = (double).0084; 00275 } 00276 else if (n == 29) { 00277 a[0] = (double).4291; 00278 a[1] = (double).2968; 00279 a[2] = (double).2499; 00280 a[3] = (double).215; 00281 a[4] = (double).1864; 00282 a[5] = (double).1616; 00283 a[6] = (double).1395; 00284 a[7] = (double).1192; 00285 a[8] = (double).1002; 00286 a[9] = (double).0822; 00287 a[10] = (double).065; 00288 a[11] = (double).0483; 00289 a[12] = (double).032; 00290 a[13] = (double).0159; 00291 } 00292 else if (n == 30) { 00293 a[0] = (double).4254; 00294 a[1] = (double).2944; 00295 a[2] = (double).2487; 00296 a[3] = (double).2148; 00297 a[4] = (double).187; 00298 a[5] = (double).163; 00299 a[6] = (double).1415; 00300 a[7] = (double).1219; 00301 a[8] = (double).1036; 00302 a[9] = (double).0862; 00303 a[10] = (double).0697; 00304 a[11] = (double).0537; 00305 a[12] = (double).0381; 00306 a[13] = (double).0227; 00307 a[14] = (double).0076; 00308 } 00309 else if (n == 31) { 00310 a[0] = (double).422; 00311 a[1] = (double).2921; 00312 a[2] = (double).2475; 00313 a[3] = (double).2145; 00314 a[4] = (double).1874; 00315 a[5] = (double).1641; 00316 a[6] = (double).1433; 00317 a[7] = (double).1243; 00318 a[8] = (double).1066; 00319 a[9] = (double).0899; 00320 a[10] = (double).0739; 00321 a[11] = (double).0585; 00322 a[12] = (double).0435; 00323 a[13] = (double).0289; 00324 a[14] = (double).0144; 00325 } 00326 else if (n == 32) { 00327 a[0] = (double).4188; 00328 a[1] = (double).2898; 00329 a[2] = (double).2463; 00330 a[3] = (double).2141; 00331 a[4] = (double).1878; 00332 a[5] = (double).1651; 00333 a[6] = (double).1449; 00334 a[7] = (double).1265; 00335 a[8] = (double).1093; 00336 a[9] = (double).0931; 00337 a[10] = (double).0777; 00338 a[11] = (double).0629; 00339 a[12] = (double).0485; 00340 a[13] = (double).0344; 00341 a[14] = (double).0206; 00342 a[15] = (double).0068; 00343 } 00344 else if (n == 33) { 00345 a[0] = (double).4156; 00346 a[1] = (double).2876; 00347 a[2] = (double).2451; 00348 a[3] = (double).2137; 00349 a[4] = (double).188; 00350 a[5] = (double).166; 00351 a[6] = (double).1463; 00352 a[7] = (double).1284; 00353 a[8] = (double).1118; 00354 a[9] = (double).0961; 00355 a[10] = (double).0812; 00356 a[11] = (double).0669; 00357 a[12] = (double).053; 00358 a[13] = (double).0395; 00359 a[14] = (double).0262; 00360 a[15] = (double).0131; 00361 } 00362 else if (n == 34) { 00363 a[0] = (double).4127; 00364 a[1] = (double).2854; 00365 a[2] = (double).2439; 00366 a[3] = (double).2132; 00367 a[4] = (double).1882; 00368 a[5] = (double).1667; 00369 a[6] = (double).1475; 00370 a[7] = (double).1301; 00371 a[8] = (double).114; 00372 a[9] = (double).0988; 00373 a[10] = (double).0844; 00374 a[11] = (double).0706; 00375 a[12] = (double).0572; 00376 a[13] = (double).0441; 00377 a[14] = (double).0314; 00378 a[15] = (double).0187; 00379 a[16] = (double).0062; 00380 } 00381 else if (n == 35) { 00382 a[0] = (double).4096; 00383 a[1] = (double).2834; 00384 a[2] = (double).2427; 00385 a[3] = (double).2127; 00386 a[4] = (double).1883; 00387 a[5] = (double).1673; 00388 a[6] = (double).1487; 00389 a[7] = (double).1317; 00390 a[8] = (double).116; 00391 a[9] = (double).1013; 00392 a[10] = (double).0873; 00393 a[11] = (double).0739; 00394 a[12] = (double).061; 00395 a[13] = (double).0484; 00396 a[14] = (double).0361; 00397 a[15] = (double).0239; 00398 a[16] = (double).0119; 00399 } 00400 else if (n == 36) { 00401 a[0] = (double).4068; 00402 a[1] = (double).2813; 00403 a[2] = (double).2415; 00404 a[3] = (double).2121; 00405 a[4] = (double).1883; 00406 a[5] = (double).1678; 00407 a[6] = (double).1496; 00408 a[7] = (double).1331; 00409 a[8] = (double).1179; 00410 a[9] = (double).1036; 00411 a[10] = (double).09; 00412 a[11] = (double).077; 00413 a[12] = (double).0645; 00414 a[13] = (double).0523; 00415 a[14] = (double).0404; 00416 a[15] = (double).0287; 00417 a[16] = (double).0172; 00418 a[17] = (double).0057; 00419 } 00420 else if (n == 37) { 00421 a[0] = (double).404; 00422 a[1] = (double).2794; 00423 a[2] = (double).2403; 00424 a[3] = (double).2116; 00425 a[4] = (double).1883; 00426 a[5] = (double).1683; 00427 a[6] = (double).1505; 00428 a[7] = (double).1344; 00429 a[8] = (double).1196; 00430 a[9] = (double).1056; 00431 a[10] = (double).0924; 00432 a[11] = (double).0798; 00433 a[12] = (double).0677; 00434 a[13] = (double).0559; 00435 a[14] = (double).0444; 00436 a[15] = (double).0331; 00437 a[16] = (double).022; 00438 a[17] = (double).011; 00439 } 00440 else if (n == 38) { 00441 a[0] = (double).4015; 00442 a[1] = (double).2774; 00443 a[2] = (double).2391; 00444 a[3] = (double).211; 00445 a[4] = (double).1881; 00446 a[5] = (double).1686; 00447 a[6] = (double).1513; 00448 a[7] = (double).1356; 00449 a[8] = (double).1211; 00450 a[9] = (double).1075; 00451 a[10] = (double).0947; 00452 a[11] = (double).0824; 00453 a[12] = (double).0706; 00454 a[13] = (double).0592; 00455 a[14] = (double).0481; 00456 a[15] = (double).0372; 00457 a[16] = (double).0264; 00458 a[17] = (double).0158; 00459 a[18] = (double).0053; 00460 } 00461 else if (n == 39) { 00462 a[0] = (double).3989; 00463 a[1] = (double).2755; 00464 a[2] = (double).238; 00465 a[3] = (double).2104; 00466 a[4] = (double).188; 00467 a[5] = (double).1689; 00468 a[6] = (double).152; 00469 a[7] = (double).1366; 00470 a[8] = (double).1225; 00471 a[9] = (double).1092; 00472 a[10] = (double).0967; 00473 a[11] = (double).0848; 00474 a[12] = (double).0733; 00475 a[13] = (double).0622; 00476 a[14] = (double).0515; 00477 a[15] = (double).0409; 00478 a[16] = (double).0305; 00479 a[17] = (double).0203; 00480 a[18] = (double).0101; 00481 } 00482 else if (n == 40) { 00483 a[0] = (double).3964; 00484 a[1] = (double).2737; 00485 a[2] = (double).2368; 00486 a[3] = (double).2098; 00487 a[4] = (double).1878; 00488 a[5] = (double).1691; 00489 a[6] = (double).1526; 00490 a[7] = (double).1376; 00491 a[8] = (double).1237; 00492 a[9] = (double).1108; 00493 a[10] = (double).0986; 00494 a[11] = (double).087; 00495 a[12] = (double).0759; 00496 a[13] = (double).0651; 00497 a[14] = (double).0546; 00498 a[15] = (double).0444; 00499 a[16] = (double).0343; 00500 a[17] = (double).0244; 00501 a[18] = (double).0146; 00502 a[19] = (double).0049; 00503 } 00504 else if (n == 41) { 00505 a[0] = (double).394; 00506 a[1] = (double).2719; 00507 a[2] = (double).2357; 00508 a[3] = (double).2091; 00509 a[4] = (double).1876; 00510 a[5] = (double).1693; 00511 a[6] = (double).1531; 00512 a[7] = (double).1384; 00513 a[8] = (double).1249; 00514 a[9] = (double).1123; 00515 a[10] = (double).1004; 00516 a[11] = (double).0891; 00517 a[12] = (double).0782; 00518 a[13] = (double).0677; 00519 a[14] = (double).0575; 00520 a[15] = (double).0476; 00521 a[16] = (double).0379; 00522 a[17] = (double).0283; 00523 a[18] = (double).0188; 00524 a[19] = (double).0094; 00525 } 00526 else if (n == 42) { 00527 a[0] = (double).3917; 00528 a[1] = (double).2701; 00529 a[2] = (double).2345; 00530 a[3] = (double).2085; 00531 a[4] = (double).1874; 00532 a[5] = (double).1694; 00533 a[6] = (double).1535; 00534 a[7] = (double).1392; 00535 a[8] = (double).1259; 00536 a[9] = (double).1136; 00537 a[10] = (double).102; 00538 a[11] = (double).0909; 00539 a[12] = (double).0804; 00540 a[13] = (double).0701; 00541 a[14] = (double).0602; 00542 a[15] = (double).0506; 00543 a[16] = (double).0411; 00544 a[17] = (double).0318; 00545 a[18] = (double).0227; 00546 a[19] = (double).0136; 00547 a[20] = (double).0045; 00548 } 00549 else if (n == 43) { 00550 a[0] = (double).3894; 00551 a[1] = (double).2684; 00552 a[2] = (double).2334; 00553 a[3] = (double).2078; 00554 a[4] = (double).1871; 00555 a[5] = (double).1695; 00556 a[6] = (double).1539; 00557 a[7] = (double).1398; 00558 a[8] = (double).1269; 00559 a[9] = (double).1149; 00560 a[10] = (double).1035; 00561 a[11] = (double).0927; 00562 a[12] = (double).0824; 00563 a[13] = (double).0724; 00564 a[14] = (double).0628; 00565 a[15] = (double).0534; 00566 a[16] = (double).0442; 00567 a[17] = (double).0352; 00568 a[18] = (double).0263; 00569 a[19] = (double).0175; 00570 a[20] = (double).0087; 00571 } 00572 else if (n == 44) { 00573 a[0] = (double).3872; 00574 a[1] = (double).2667; 00575 a[2] = (double).2323; 00576 a[3] = (double).2072; 00577 a[4] = (double).1868; 00578 a[5] = (double).1695; 00579 a[6] = (double).1542; 00580 a[7] = (double).1405; 00581 a[8] = (double).1278; 00582 a[9] = (double).116; 00583 a[10] = (double).1049; 00584 a[11] = (double).0943; 00585 a[12] = (double).0842; 00586 a[13] = (double).0745; 00587 a[14] = (double).0651; 00588 a[15] = (double).056; 00589 a[16] = (double).0471; 00590 a[17] = (double).0383; 00591 a[18] = (double).0296; 00592 a[19] = (double).0211; 00593 a[20] = (double).0126; 00594 a[21] = (double).0042; 00595 } 00596 else if (n == 45) { 00597 a[0] = (double).385; 00598 a[1] = (double).2651; 00599 a[2] = (double).2313; 00600 a[3] = (double).2065; 00601 a[4] = (double).1865; 00602 a[5] = (double).1695; 00603 a[6] = (double).1545; 00604 a[7] = (double).141; 00605 a[8] = (double).1286; 00606 a[9] = (double).117; 00607 a[10] = (double).1062; 00608 a[11] = (double).0959; 00609 a[12] = (double).086; 00610 a[13] = (double).0765; 00611 a[14] = (double).0673; 00612 a[15] = (double).0584; 00613 a[16] = (double).0497; 00614 a[17] = (double).0412; 00615 a[18] = (double).0328; 00616 a[19] = (double).0245; 00617 a[20] = (double).0163; 00618 a[21] = (double).0081; 00619 } 00620 else if (n == 46) { 00621 a[0] = (double).383; 00622 a[1] = (double).2635; 00623 a[2] = (double).2302; 00624 a[3] = (double).2058; 00625 a[4] = (double).1862; 00626 a[5] = (double).1695; 00627 a[6] = (double).1548; 00628 a[7] = (double).1415; 00629 a[8] = (double).1293; 00630 a[9] = (double).118; 00631 a[10] = (double).1073; 00632 a[11] = (double).0972; 00633 a[12] = (double).0876; 00634 a[13] = (double).0783; 00635 a[14] = (double).0694; 00636 a[15] = (double).0607; 00637 a[16] = (double).0522; 00638 a[17] = (double).0439; 00639 a[18] = (double).0357; 00640 a[19] = (double).0277; 00641 a[20] = (double).0197; 00642 a[21] = (double).0118; 00643 a[22] = (double).0039; 00644 } 00645 else if (n == 47) { 00646 a[0] = (double).3808; 00647 a[1] = (double).262; 00648 a[2] = (double).2291; 00649 a[3] = (double).2052; 00650 a[4] = (double).1859; 00651 a[5] = (double).1695; 00652 a[6] = (double).155; 00653 a[7] = (double).142; 00654 a[8] = (double).13; 00655 a[9] = (double).1189; 00656 a[10] = (double).1085; 00657 a[11] = (double).0986; 00658 a[12] = (double).0892; 00659 a[13] = (double).0801; 00660 a[14] = (double).0713; 00661 a[15] = (double).0628; 00662 a[16] = (double).0546; 00663 a[17] = (double).0465; 00664 a[18] = (double).0385; 00665 a[19] = (double).0307; 00666 a[20] = (double).0229; 00667 a[21] = (double).0153; 00668 a[22] = (double).0076; 00669 } 00670 else if (n == 48) { 00671 a[0] = (double).3789; 00672 a[1] = (double).2604; 00673 a[2] = (double).2281; 00674 a[3] = (double).2045; 00675 a[4] = (double).1855; 00676 a[5] = (double).1693; 00677 a[6] = (double).1551; 00678 a[7] = (double).1423; 00679 a[8] = (double).1306; 00680 a[9] = (double).1197; 00681 a[10] = (double).1095; 00682 a[11] = (double).0998; 00683 a[12] = (double).0906; 00684 a[13] = (double).0817; 00685 a[14] = (double).0731; 00686 a[15] = (double).0648; 00687 a[16] = (double).0568; 00688 a[17] = (double).0489; 00689 a[18] = (double).0411; 00690 a[19] = (double).0335; 00691 a[20] = (double).0259; 00692 a[21] = (double).0185; 00693 a[22] = (double).0111; 00694 a[23] = (double).0037; 00695 } 00696 else if (n == 49) { 00697 a[0] = (double).377; 00698 a[1] = (double).2589; 00699 a[2] = (double).2271; 00700 a[3] = (double).2038; 00701 a[4] = (double).1851; 00702 a[5] = (double).1692; 00703 a[6] = (double).1553; 00704 a[7] = (double).1427; 00705 a[8] = (double).1312; 00706 a[9] = (double).1205; 00707 a[10] = (double).1105; 00708 a[11] = (double).101; 00709 a[12] = (double).0919; 00710 a[13] = (double).0832; 00711 a[14] = (double).0748; 00712 a[15] = (double).0667; 00713 a[16] = (double).0588; 00714 a[17] = (double).0511; 00715 a[18] = (double).0436; 00716 a[19] = (double).0361; 00717 a[20] = (double).0288; 00718 a[21] = (double).0215; 00719 a[22] = (double).0143; 00720 a[23] = (double).0071; 00721 } 00722 else if (n == 50) { 00723 a[0] = (double).3751; 00724 a[1] = (double).2574; 00725 a[2] = (double).226; 00726 a[3] = (double).2032; 00727 a[4] = (double).1847; 00728 a[5] = (double).1691; 00729 a[6] = (double).1554; 00730 a[7] = (double).143; 00731 a[8] = (double).1317; 00732 a[9] = (double).1212; 00733 a[10] = (double).1113; 00734 a[11] = (double).102; 00735 a[12] = (double).0932; 00736 a[13] = (double).0846; 00737 a[14] = (double).0764; 00738 a[15] = (double).0685; 00739 a[16] = (double).0608; 00740 a[17] = (double).0532; 00741 a[18] = (double).0459; 00742 a[19] = (double).0386; 00743 a[20] = (double).0314; 00744 a[21] = (double).0244; 00745 a[22] = (double).0174; 00746 a[23] = (double).0104; 00747 a[24] = (double).0035; 00748 } 00749 00750 if (n > 50 || n < 3) { 00751 #ifdef NOISY 00752 fprintf(stdout, 00753 " THIS IS THE SHAPIRO-WILK TEST FOR SMALL SAMPLES\n"); 00754 fprintf(stdout, 00755 " THE SAMPLE SIZE MUST BE LESS THAN OR EQUAL TO 50\n"); 00756 #endif /* NOISY */ 00757 00758 y[0] = y[1] = 0.0; 00759 } 00760 else { 00761 for (i = 1; i <= k; ++i) 00762 sumb += a[i - 1] * (x[n - i + 1] - x[i]); 00763 00764 y[0] = sumb * sumb / s2; 00765 y[1] = s2; 00766 00767 #ifdef NOISY 00768 fprintf(stdout, " TEST13 SW(N) =%10.4f\n", y[0]); 00769 #endif /* NOISY */ 00770 } 00771 00772 free(xcopy); 00773 00774 return y; 00775 }