shapiro1.c 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include "local_proto.h"
  5. double *Cdhc_shapiro_wilk(double *x, int n)
  6. {
  7. static double y[2];
  8. double a[25], s2, *xcopy;
  9. double sumb = 0.0, sumx = 0.0, sumx2 = 0.0;
  10. int i, k;
  11. if ((xcopy = (double *)malloc(n * sizeof(double))) == NULL) {
  12. fprintf(stderr, "Memory error in Cdhc_shapiro_wilk\n");
  13. exit(EXIT_FAILURE);
  14. }
  15. k = n / 2;
  16. for (i = 0; i < n; ++i) {
  17. xcopy[i] = x[i];
  18. sumx += x[i];
  19. sumx2 += x[i] * x[i];
  20. }
  21. s2 = sumx2 - sumx * sumx / n;
  22. qsort(xcopy, n, sizeof(double), Cdhc_dcmp);
  23. if (n == 3) {
  24. a[0] = (double).7071;
  25. }
  26. else if (n == 4) {
  27. a[0] = (double).6872;
  28. a[1] = (double).1677;
  29. }
  30. else if (n == 5) {
  31. a[0] = (double).6646;
  32. a[1] = (double).2413;
  33. }
  34. else if (n == 6) {
  35. a[0] = (double).6431;
  36. a[1] = (double).2806;
  37. a[2] = (double).0875;
  38. }
  39. else if (n == 7) {
  40. a[0] = (double).6233;
  41. a[1] = (double).3031;
  42. a[2] = (double).1401;
  43. }
  44. else if (n == 8) {
  45. a[0] = (double).6052;
  46. a[1] = (double).3164;
  47. a[2] = (double).1743;
  48. a[3] = (double).0561;
  49. }
  50. else if (n == 9) {
  51. a[0] = (double).5888;
  52. a[1] = (double).3244;
  53. a[2] = (double).1976;
  54. a[3] = (double).0947;
  55. }
  56. else if (n == 10) {
  57. a[0] = (double).5739;
  58. a[1] = (double).3291;
  59. a[2] = (double).2141;
  60. a[3] = (double).1224;
  61. a[4] = (double).0399;
  62. }
  63. else if (n == 11) {
  64. a[0] = (double).5601;
  65. a[1] = (double).3315;
  66. a[2] = (double).226;
  67. a[3] = (double).1429;
  68. a[4] = (double).0695;
  69. }
  70. else if (n == 12) {
  71. a[0] = (double).5475;
  72. a[1] = (double).3325;
  73. a[2] = (double).2347;
  74. a[3] = (double).1586;
  75. a[4] = (double).0922;
  76. a[5] = (double).0303;
  77. }
  78. else if (n == 13) {
  79. a[0] = (double).5359;
  80. a[1] = (double).3325;
  81. a[2] = (double).2412;
  82. a[3] = (double).1707;
  83. a[4] = (double).1099;
  84. a[5] = (double).0539;
  85. }
  86. else if (n == 14) {
  87. a[0] = (double).5251;
  88. a[1] = (double).3318;
  89. a[2] = (double).246;
  90. a[3] = (double).1802;
  91. a[4] = (double).124;
  92. a[5] = (double).0727;
  93. a[6] = (double).024;
  94. }
  95. else if (n == 15) {
  96. a[0] = (double).515;
  97. a[1] = (double).3306;
  98. a[2] = (double).2495;
  99. a[3] = (double).1878;
  100. a[4] = (double).1353;
  101. a[5] = (double).088;
  102. a[6] = (double).0433;
  103. }
  104. else if (n == 16) {
  105. a[0] = (double).5056;
  106. a[1] = (double).329;
  107. a[2] = (double).2521;
  108. a[3] = (double).1939;
  109. a[4] = (double).1447;
  110. a[5] = (double).1005;
  111. a[6] = (double).0593;
  112. a[7] = (double).0196;
  113. }
  114. else if (n == 17) {
  115. a[0] = (double).4968;
  116. a[1] = (double).3273;
  117. a[2] = (double).254;
  118. a[3] = (double).1988;
  119. a[4] = (double).1524;
  120. a[5] = (double).1109;
  121. a[6] = (double).0725;
  122. a[7] = (double).0359;
  123. }
  124. else if (n == 18) {
  125. a[0] = (double).4886;
  126. a[1] = (double).3253;
  127. a[2] = (double).2553;
  128. a[3] = (double).2027;
  129. a[4] = (double).1587;
  130. a[5] = (double).1197;
  131. a[6] = (double).0837;
  132. a[7] = (double).0496;
  133. a[8] = (double).0163;
  134. }
  135. else if (n == 19) {
  136. a[0] = (double).4808;
  137. a[1] = (double).3232;
  138. a[2] = (double).2561;
  139. a[3] = (double).2059;
  140. a[4] = (double).1641;
  141. a[5] = (double).1271;
  142. a[6] = (double).0932;
  143. a[7] = (double).0612;
  144. a[8] = (double).0303;
  145. }
  146. else if (n == 20) {
  147. a[0] = (double).4734;
  148. a[1] = (double).3211;
  149. a[2] = (double).2565;
  150. a[3] = (double).2085;
  151. a[4] = (double).1686;
  152. a[5] = (double).1334;
  153. a[6] = (double).1013;
  154. a[7] = (double).0711;
  155. a[8] = (double).0422;
  156. a[9] = (double).014;
  157. }
  158. else if (n == 21) {
  159. a[0] = (double).4643;
  160. a[1] = (double).3185;
  161. a[2] = (double).2578;
  162. a[3] = (double).2119;
  163. a[4] = (double).1736;
  164. a[5] = (double).1399;
  165. a[6] = (double).1092;
  166. a[7] = (double).0804;
  167. a[8] = (double).053;
  168. a[9] = (double).0263;
  169. }
  170. else if (n == 22) {
  171. a[0] = (double).459;
  172. a[1] = (double).3156;
  173. a[2] = (double).2571;
  174. a[3] = (double).2131;
  175. a[4] = (double).1764;
  176. a[5] = (double).1443;
  177. a[6] = (double).115;
  178. a[7] = (double).0878;
  179. a[8] = (double).0618;
  180. a[9] = (double).0368;
  181. a[10] = (double).0122;
  182. }
  183. else if (n == 23) {
  184. a[0] = (double).4542;
  185. a[1] = (double).3126;
  186. a[2] = (double).2563;
  187. a[3] = (double).2139;
  188. a[4] = (double).1787;
  189. a[5] = (double).148;
  190. a[6] = (double).1201;
  191. a[7] = (double).0941;
  192. a[8] = (double).0696;
  193. a[9] = (double).0459;
  194. a[10] = (double).0228;
  195. }
  196. else if (n == 24) {
  197. a[0] = (double).4493;
  198. a[1] = (double).3098;
  199. a[2] = (double).2554;
  200. a[3] = (double).2145;
  201. a[4] = (double).1807;
  202. a[5] = (double).1512;
  203. a[6] = (double).1245;
  204. a[7] = (double).0997;
  205. a[8] = (double).0764;
  206. a[9] = (double).0539;
  207. a[10] = (double).0321;
  208. a[11] = (double).0107;
  209. }
  210. else if (n == 25) {
  211. a[0] = (double).445;
  212. a[1] = (double).3069;
  213. a[2] = (double).2543;
  214. a[3] = (double).2148;
  215. a[4] = (double).1822;
  216. a[5] = (double).1539;
  217. a[6] = (double).1283;
  218. a[7] = (double).1046;
  219. a[8] = (double).0823;
  220. a[9] = (double).061;
  221. a[10] = (double).0403;
  222. a[11] = (double).02;
  223. }
  224. else if (n == 26) {
  225. a[0] = (double).4407;
  226. a[1] = (double).3043;
  227. a[2] = (double).2533;
  228. a[3] = (double).2151;
  229. a[4] = (double).1836;
  230. a[5] = (double).1563;
  231. a[6] = (double).1316;
  232. a[7] = (double).1089;
  233. a[8] = (double).0876;
  234. a[9] = (double).0672;
  235. a[10] = (double).0476;
  236. a[11] = (double).0284;
  237. a[12] = (double).0094;
  238. }
  239. else if (n == 27) {
  240. a[0] = (double).4366;
  241. a[1] = (double).3018;
  242. a[2] = (double).2522;
  243. a[3] = (double).2152;
  244. a[4] = (double).1848;
  245. a[5] = (double).1584;
  246. a[6] = (double).1346;
  247. a[7] = (double).1128;
  248. a[8] = (double).0923;
  249. a[9] = (double).0728;
  250. a[10] = (double).054;
  251. a[11] = (double).0358;
  252. a[12] = (double).0178;
  253. }
  254. else if (n == 28) {
  255. a[0] = (double).4328;
  256. a[1] = (double).2992;
  257. a[2] = (double).251;
  258. a[3] = (double).2151;
  259. a[4] = (double).1857;
  260. a[5] = (double).1601;
  261. a[6] = (double).1372;
  262. a[7] = (double).1162;
  263. a[8] = (double).0965;
  264. a[9] = (double).0778;
  265. a[10] = (double).0598;
  266. a[11] = (double).0424;
  267. a[12] = (double).0253;
  268. a[13] = (double).0084;
  269. }
  270. else if (n == 29) {
  271. a[0] = (double).4291;
  272. a[1] = (double).2968;
  273. a[2] = (double).2499;
  274. a[3] = (double).215;
  275. a[4] = (double).1864;
  276. a[5] = (double).1616;
  277. a[6] = (double).1395;
  278. a[7] = (double).1192;
  279. a[8] = (double).1002;
  280. a[9] = (double).0822;
  281. a[10] = (double).065;
  282. a[11] = (double).0483;
  283. a[12] = (double).032;
  284. a[13] = (double).0159;
  285. }
  286. else if (n == 30) {
  287. a[0] = (double).4254;
  288. a[1] = (double).2944;
  289. a[2] = (double).2487;
  290. a[3] = (double).2148;
  291. a[4] = (double).187;
  292. a[5] = (double).163;
  293. a[6] = (double).1415;
  294. a[7] = (double).1219;
  295. a[8] = (double).1036;
  296. a[9] = (double).0862;
  297. a[10] = (double).0697;
  298. a[11] = (double).0537;
  299. a[12] = (double).0381;
  300. a[13] = (double).0227;
  301. a[14] = (double).0076;
  302. }
  303. else if (n == 31) {
  304. a[0] = (double).422;
  305. a[1] = (double).2921;
  306. a[2] = (double).2475;
  307. a[3] = (double).2145;
  308. a[4] = (double).1874;
  309. a[5] = (double).1641;
  310. a[6] = (double).1433;
  311. a[7] = (double).1243;
  312. a[8] = (double).1066;
  313. a[9] = (double).0899;
  314. a[10] = (double).0739;
  315. a[11] = (double).0585;
  316. a[12] = (double).0435;
  317. a[13] = (double).0289;
  318. a[14] = (double).0144;
  319. }
  320. else if (n == 32) {
  321. a[0] = (double).4188;
  322. a[1] = (double).2898;
  323. a[2] = (double).2463;
  324. a[3] = (double).2141;
  325. a[4] = (double).1878;
  326. a[5] = (double).1651;
  327. a[6] = (double).1449;
  328. a[7] = (double).1265;
  329. a[8] = (double).1093;
  330. a[9] = (double).0931;
  331. a[10] = (double).0777;
  332. a[11] = (double).0629;
  333. a[12] = (double).0485;
  334. a[13] = (double).0344;
  335. a[14] = (double).0206;
  336. a[15] = (double).0068;
  337. }
  338. else if (n == 33) {
  339. a[0] = (double).4156;
  340. a[1] = (double).2876;
  341. a[2] = (double).2451;
  342. a[3] = (double).2137;
  343. a[4] = (double).188;
  344. a[5] = (double).166;
  345. a[6] = (double).1463;
  346. a[7] = (double).1284;
  347. a[8] = (double).1118;
  348. a[9] = (double).0961;
  349. a[10] = (double).0812;
  350. a[11] = (double).0669;
  351. a[12] = (double).053;
  352. a[13] = (double).0395;
  353. a[14] = (double).0262;
  354. a[15] = (double).0131;
  355. }
  356. else if (n == 34) {
  357. a[0] = (double).4127;
  358. a[1] = (double).2854;
  359. a[2] = (double).2439;
  360. a[3] = (double).2132;
  361. a[4] = (double).1882;
  362. a[5] = (double).1667;
  363. a[6] = (double).1475;
  364. a[7] = (double).1301;
  365. a[8] = (double).114;
  366. a[9] = (double).0988;
  367. a[10] = (double).0844;
  368. a[11] = (double).0706;
  369. a[12] = (double).0572;
  370. a[13] = (double).0441;
  371. a[14] = (double).0314;
  372. a[15] = (double).0187;
  373. a[16] = (double).0062;
  374. }
  375. else if (n == 35) {
  376. a[0] = (double).4096;
  377. a[1] = (double).2834;
  378. a[2] = (double).2427;
  379. a[3] = (double).2127;
  380. a[4] = (double).1883;
  381. a[5] = (double).1673;
  382. a[6] = (double).1487;
  383. a[7] = (double).1317;
  384. a[8] = (double).116;
  385. a[9] = (double).1013;
  386. a[10] = (double).0873;
  387. a[11] = (double).0739;
  388. a[12] = (double).061;
  389. a[13] = (double).0484;
  390. a[14] = (double).0361;
  391. a[15] = (double).0239;
  392. a[16] = (double).0119;
  393. }
  394. else if (n == 36) {
  395. a[0] = (double).4068;
  396. a[1] = (double).2813;
  397. a[2] = (double).2415;
  398. a[3] = (double).2121;
  399. a[4] = (double).1883;
  400. a[5] = (double).1678;
  401. a[6] = (double).1496;
  402. a[7] = (double).1331;
  403. a[8] = (double).1179;
  404. a[9] = (double).1036;
  405. a[10] = (double).09;
  406. a[11] = (double).077;
  407. a[12] = (double).0645;
  408. a[13] = (double).0523;
  409. a[14] = (double).0404;
  410. a[15] = (double).0287;
  411. a[16] = (double).0172;
  412. a[17] = (double).0057;
  413. }
  414. else if (n == 37) {
  415. a[0] = (double).404;
  416. a[1] = (double).2794;
  417. a[2] = (double).2403;
  418. a[3] = (double).2116;
  419. a[4] = (double).1883;
  420. a[5] = (double).1683;
  421. a[6] = (double).1505;
  422. a[7] = (double).1344;
  423. a[8] = (double).1196;
  424. a[9] = (double).1056;
  425. a[10] = (double).0924;
  426. a[11] = (double).0798;
  427. a[12] = (double).0677;
  428. a[13] = (double).0559;
  429. a[14] = (double).0444;
  430. a[15] = (double).0331;
  431. a[16] = (double).022;
  432. a[17] = (double).011;
  433. }
  434. else if (n == 38) {
  435. a[0] = (double).4015;
  436. a[1] = (double).2774;
  437. a[2] = (double).2391;
  438. a[3] = (double).211;
  439. a[4] = (double).1881;
  440. a[5] = (double).1686;
  441. a[6] = (double).1513;
  442. a[7] = (double).1356;
  443. a[8] = (double).1211;
  444. a[9] = (double).1075;
  445. a[10] = (double).0947;
  446. a[11] = (double).0824;
  447. a[12] = (double).0706;
  448. a[13] = (double).0592;
  449. a[14] = (double).0481;
  450. a[15] = (double).0372;
  451. a[16] = (double).0264;
  452. a[17] = (double).0158;
  453. a[18] = (double).0053;
  454. }
  455. else if (n == 39) {
  456. a[0] = (double).3989;
  457. a[1] = (double).2755;
  458. a[2] = (double).238;
  459. a[3] = (double).2104;
  460. a[4] = (double).188;
  461. a[5] = (double).1689;
  462. a[6] = (double).152;
  463. a[7] = (double).1366;
  464. a[8] = (double).1225;
  465. a[9] = (double).1092;
  466. a[10] = (double).0967;
  467. a[11] = (double).0848;
  468. a[12] = (double).0733;
  469. a[13] = (double).0622;
  470. a[14] = (double).0515;
  471. a[15] = (double).0409;
  472. a[16] = (double).0305;
  473. a[17] = (double).0203;
  474. a[18] = (double).0101;
  475. }
  476. else if (n == 40) {
  477. a[0] = (double).3964;
  478. a[1] = (double).2737;
  479. a[2] = (double).2368;
  480. a[3] = (double).2098;
  481. a[4] = (double).1878;
  482. a[5] = (double).1691;
  483. a[6] = (double).1526;
  484. a[7] = (double).1376;
  485. a[8] = (double).1237;
  486. a[9] = (double).1108;
  487. a[10] = (double).0986;
  488. a[11] = (double).087;
  489. a[12] = (double).0759;
  490. a[13] = (double).0651;
  491. a[14] = (double).0546;
  492. a[15] = (double).0444;
  493. a[16] = (double).0343;
  494. a[17] = (double).0244;
  495. a[18] = (double).0146;
  496. a[19] = (double).0049;
  497. }
  498. else if (n == 41) {
  499. a[0] = (double).394;
  500. a[1] = (double).2719;
  501. a[2] = (double).2357;
  502. a[3] = (double).2091;
  503. a[4] = (double).1876;
  504. a[5] = (double).1693;
  505. a[6] = (double).1531;
  506. a[7] = (double).1384;
  507. a[8] = (double).1249;
  508. a[9] = (double).1123;
  509. a[10] = (double).1004;
  510. a[11] = (double).0891;
  511. a[12] = (double).0782;
  512. a[13] = (double).0677;
  513. a[14] = (double).0575;
  514. a[15] = (double).0476;
  515. a[16] = (double).0379;
  516. a[17] = (double).0283;
  517. a[18] = (double).0188;
  518. a[19] = (double).0094;
  519. }
  520. else if (n == 42) {
  521. a[0] = (double).3917;
  522. a[1] = (double).2701;
  523. a[2] = (double).2345;
  524. a[3] = (double).2085;
  525. a[4] = (double).1874;
  526. a[5] = (double).1694;
  527. a[6] = (double).1535;
  528. a[7] = (double).1392;
  529. a[8] = (double).1259;
  530. a[9] = (double).1136;
  531. a[10] = (double).102;
  532. a[11] = (double).0909;
  533. a[12] = (double).0804;
  534. a[13] = (double).0701;
  535. a[14] = (double).0602;
  536. a[15] = (double).0506;
  537. a[16] = (double).0411;
  538. a[17] = (double).0318;
  539. a[18] = (double).0227;
  540. a[19] = (double).0136;
  541. a[20] = (double).0045;
  542. }
  543. else if (n == 43) {
  544. a[0] = (double).3894;
  545. a[1] = (double).2684;
  546. a[2] = (double).2334;
  547. a[3] = (double).2078;
  548. a[4] = (double).1871;
  549. a[5] = (double).1695;
  550. a[6] = (double).1539;
  551. a[7] = (double).1398;
  552. a[8] = (double).1269;
  553. a[9] = (double).1149;
  554. a[10] = (double).1035;
  555. a[11] = (double).0927;
  556. a[12] = (double).0824;
  557. a[13] = (double).0724;
  558. a[14] = (double).0628;
  559. a[15] = (double).0534;
  560. a[16] = (double).0442;
  561. a[17] = (double).0352;
  562. a[18] = (double).0263;
  563. a[19] = (double).0175;
  564. a[20] = (double).0087;
  565. }
  566. else if (n == 44) {
  567. a[0] = (double).3872;
  568. a[1] = (double).2667;
  569. a[2] = (double).2323;
  570. a[3] = (double).2072;
  571. a[4] = (double).1868;
  572. a[5] = (double).1695;
  573. a[6] = (double).1542;
  574. a[7] = (double).1405;
  575. a[8] = (double).1278;
  576. a[9] = (double).116;
  577. a[10] = (double).1049;
  578. a[11] = (double).0943;
  579. a[12] = (double).0842;
  580. a[13] = (double).0745;
  581. a[14] = (double).0651;
  582. a[15] = (double).056;
  583. a[16] = (double).0471;
  584. a[17] = (double).0383;
  585. a[18] = (double).0296;
  586. a[19] = (double).0211;
  587. a[20] = (double).0126;
  588. a[21] = (double).0042;
  589. }
  590. else if (n == 45) {
  591. a[0] = (double).385;
  592. a[1] = (double).2651;
  593. a[2] = (double).2313;
  594. a[3] = (double).2065;
  595. a[4] = (double).1865;
  596. a[5] = (double).1695;
  597. a[6] = (double).1545;
  598. a[7] = (double).141;
  599. a[8] = (double).1286;
  600. a[9] = (double).117;
  601. a[10] = (double).1062;
  602. a[11] = (double).0959;
  603. a[12] = (double).086;
  604. a[13] = (double).0765;
  605. a[14] = (double).0673;
  606. a[15] = (double).0584;
  607. a[16] = (double).0497;
  608. a[17] = (double).0412;
  609. a[18] = (double).0328;
  610. a[19] = (double).0245;
  611. a[20] = (double).0163;
  612. a[21] = (double).0081;
  613. }
  614. else if (n == 46) {
  615. a[0] = (double).383;
  616. a[1] = (double).2635;
  617. a[2] = (double).2302;
  618. a[3] = (double).2058;
  619. a[4] = (double).1862;
  620. a[5] = (double).1695;
  621. a[6] = (double).1548;
  622. a[7] = (double).1415;
  623. a[8] = (double).1293;
  624. a[9] = (double).118;
  625. a[10] = (double).1073;
  626. a[11] = (double).0972;
  627. a[12] = (double).0876;
  628. a[13] = (double).0783;
  629. a[14] = (double).0694;
  630. a[15] = (double).0607;
  631. a[16] = (double).0522;
  632. a[17] = (double).0439;
  633. a[18] = (double).0357;
  634. a[19] = (double).0277;
  635. a[20] = (double).0197;
  636. a[21] = (double).0118;
  637. a[22] = (double).0039;
  638. }
  639. else if (n == 47) {
  640. a[0] = (double).3808;
  641. a[1] = (double).262;
  642. a[2] = (double).2291;
  643. a[3] = (double).2052;
  644. a[4] = (double).1859;
  645. a[5] = (double).1695;
  646. a[6] = (double).155;
  647. a[7] = (double).142;
  648. a[8] = (double).13;
  649. a[9] = (double).1189;
  650. a[10] = (double).1085;
  651. a[11] = (double).0986;
  652. a[12] = (double).0892;
  653. a[13] = (double).0801;
  654. a[14] = (double).0713;
  655. a[15] = (double).0628;
  656. a[16] = (double).0546;
  657. a[17] = (double).0465;
  658. a[18] = (double).0385;
  659. a[19] = (double).0307;
  660. a[20] = (double).0229;
  661. a[21] = (double).0153;
  662. a[22] = (double).0076;
  663. }
  664. else if (n == 48) {
  665. a[0] = (double).3789;
  666. a[1] = (double).2604;
  667. a[2] = (double).2281;
  668. a[3] = (double).2045;
  669. a[4] = (double).1855;
  670. a[5] = (double).1693;
  671. a[6] = (double).1551;
  672. a[7] = (double).1423;
  673. a[8] = (double).1306;
  674. a[9] = (double).1197;
  675. a[10] = (double).1095;
  676. a[11] = (double).0998;
  677. a[12] = (double).0906;
  678. a[13] = (double).0817;
  679. a[14] = (double).0731;
  680. a[15] = (double).0648;
  681. a[16] = (double).0568;
  682. a[17] = (double).0489;
  683. a[18] = (double).0411;
  684. a[19] = (double).0335;
  685. a[20] = (double).0259;
  686. a[21] = (double).0185;
  687. a[22] = (double).0111;
  688. a[23] = (double).0037;
  689. }
  690. else if (n == 49) {
  691. a[0] = (double).377;
  692. a[1] = (double).2589;
  693. a[2] = (double).2271;
  694. a[3] = (double).2038;
  695. a[4] = (double).1851;
  696. a[5] = (double).1692;
  697. a[6] = (double).1553;
  698. a[7] = (double).1427;
  699. a[8] = (double).1312;
  700. a[9] = (double).1205;
  701. a[10] = (double).1105;
  702. a[11] = (double).101;
  703. a[12] = (double).0919;
  704. a[13] = (double).0832;
  705. a[14] = (double).0748;
  706. a[15] = (double).0667;
  707. a[16] = (double).0588;
  708. a[17] = (double).0511;
  709. a[18] = (double).0436;
  710. a[19] = (double).0361;
  711. a[20] = (double).0288;
  712. a[21] = (double).0215;
  713. a[22] = (double).0143;
  714. a[23] = (double).0071;
  715. }
  716. else if (n == 50) {
  717. a[0] = (double).3751;
  718. a[1] = (double).2574;
  719. a[2] = (double).226;
  720. a[3] = (double).2032;
  721. a[4] = (double).1847;
  722. a[5] = (double).1691;
  723. a[6] = (double).1554;
  724. a[7] = (double).143;
  725. a[8] = (double).1317;
  726. a[9] = (double).1212;
  727. a[10] = (double).1113;
  728. a[11] = (double).102;
  729. a[12] = (double).0932;
  730. a[13] = (double).0846;
  731. a[14] = (double).0764;
  732. a[15] = (double).0685;
  733. a[16] = (double).0608;
  734. a[17] = (double).0532;
  735. a[18] = (double).0459;
  736. a[19] = (double).0386;
  737. a[20] = (double).0314;
  738. a[21] = (double).0244;
  739. a[22] = (double).0174;
  740. a[23] = (double).0104;
  741. a[24] = (double).0035;
  742. }
  743. if (n > 50 || n < 3) {
  744. #ifdef NOISY
  745. fprintf(stdout,
  746. " THIS IS THE SHAPIRO-WILK TEST FOR SMALL SAMPLES\n");
  747. fprintf(stdout,
  748. " THE SAMPLE SIZE MUST BE LESS THAN OR EQUAL TO 50\n");
  749. #endif /* NOISY */
  750. y[0] = y[1] = 0.0;
  751. }
  752. else {
  753. for (i = 1; i <= k; ++i)
  754. sumb += a[i - 1] * (x[n - i + 1] - x[i]);
  755. y[0] = sumb * sumb / s2;
  756. y[1] = s2;
  757. #ifdef NOISY
  758. fprintf(stdout, " TEST13 SW(N) =%10.4f\n", y[0]);
  759. #endif /* NOISY */
  760. }
  761. free(xcopy);
  762. return y;
  763. }