GRASS Programmer's Manual  6.4.2(2012)
shapiro1.c
Go to the documentation of this file.
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 }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines