30 November 2022 8:58:23.033 PM haar_test(): FORTRAN90 version Test haar(). TEST01 HAAR_1D computes the Haar transform of a vector. i U(i) H(U)(i) Hinv(H(U))(i) 1 0.6386 1.8492 0.6386 2 0.4603 0.3098 0.4603 3 0.7521 0.2569 0.7521 4 0.6714 -0.4022 0.6714 5 0.2121 -0.1622 0.2121 6 0.2876 -0.3982 0.2876 7 0.5807 0.1013 0.5807 8 0.7154 0.2648 0.7154 9 0.1522 0.1261 0.1522 10 0.4344 0.0570 0.4344 11 0.3086 -0.0534 0.3086 12 0.0753 -0.0952 0.0753 13 0.6984 -0.1995 0.6984 14 0.6205 0.1650 0.6205 15 0.2342 0.0551 0.2342 16 0.5551 -0.2270 0.5551 i U(i) H(U)(i) Hinv(H(U))(i) 1 1.0000 2.8284 1.0000 2 1.0000 0.0000 1.0000 3 1.0000 0.0000 1.0000 4 1.0000 0.0000 1.0000 5 1.0000 0.0000 1.0000 6 1.0000 0.0000 1.0000 7 1.0000 0.0000 1.0000 8 1.0000 0.0000 1.0000 i U(i) H(U)(i) Hinv(H(U))(i) 1 1.0000 34.0000 1.0000 2 2.0000 -16.0000 2.0000 3 3.0000 -5.6569 3.0000 4 4.0000 -5.6569 4.0000 5 5.0000 -2.0000 5.0000 6 6.0000 -2.0000 6.0000 7 7.0000 -2.0000 7.0000 8 8.0000 -2.0000 8.0000 9 9.0000 -0.7071 9.0000 10 10.0000 -0.7071 10.0000 11 11.0000 -0.7071 11.0000 12 12.0000 -0.7071 12.0000 13 13.0000 -0.7071 13.0000 14 14.0000 -0.7071 14.0000 15 15.0000 -0.7071 15.0000 16 16.0000 -0.7071 16.0000 i U(i) H(U)(i) Hinv(H(U))(i) 1 25.0000 21.2132 25.0000 2 16.0000 16.9706 16.0000 3 9.0000 14.0000 9.0000 4 4.0000 -2.0000 4.0000 5 1.0000 6.3640 1.0000 6 0.0000 3.5355 0.0000 7 1.0000 0.7071 1.0000 8 4.0000 -2.1213 4.0000 For N = 99, ||u-haar_1d_inverse(haar_1d(u))|| = 0.356277E-14 TEST02 HAAR_2D computes the Haar transform of an array. HAAR_2D_INVERSE inverts the transform. Input array U: Col 1 2 3 4 Row 1: 0.250179 0.289450 0.756135 0.806887 2: 0.275350 0.214838 0.738488 0.572500 3: 0.828206 0.400285 0.989522 0.221241 4: 0.466501 0.824768 0.965070 0.756951 5: 0.880448 0.387696 0.900237 0.723392 6: 0.340334 0.248316 0.806045E-01 0.358507 7: 0.253873 0.602576 0.380447 0.104711 8: 0.583584 0.280540 0.930086 0.567550 9: 0.324361 0.453921 0.484868 0.649278 10: 0.638346 0.172349 0.298978 0.894809 11: 0.207575 0.849743 0.688033 0.499289 12: 0.534091 0.598508 0.280938E-01 0.724603 13: 0.349187 0.329202 0.190928 0.749477 14: 0.163287 0.709153 0.642002 0.628232 15: 0.271405 0.957005 0.141459 0.663121 16: 0.814162 0.680546 0.189066 0.832941E-01 Transformed array V: Col 1 2 3 4 Row 1: 4.07346 -0.278509 -0.144604 -0.106035 2: 0.171362 -0.402836 0.367345 0.681920 3: 0.306437 -0.316262 -0.112054 0.138605 4: 0.857931E-01 -0.260821 0.176929 -0.768342E-01 5: -0.387179 -0.357792 -0.171167E-01 -0.304467 6: 0.540421E-01 0.140682E-01 0.222891 -0.261393 7: -0.532565E-01 -0.247214 0.368764 -0.892633E-01 8: -0.964767E-02 -0.576497 0.922881E-02 -0.455693E-01 9: 0.106588 -0.716272E-01 -0.498919E-01 -0.108370 10: -0.202952 0.158562 0.393094 0.280081 11: 0.659027 -0.178553 0.200367 0.227374 12: -0.360679 0.355252 -0.325874 -0.434001E-01 13: -0.325458E-01 0.962647E-02 -0.297778 0.215710 14: 0.127048 -0.180279 -0.288875 0.442626 15: -0.185219 0.480052E-01 0.282926 -0.286160 16: 0.940174E-01 -0.282319 -0.409608 -0.313717 Recovered array W: Col 1 2 3 4 Row 1: 0.250179 0.289450 0.756135 0.806887 2: 0.275350 0.214838 0.738488 0.572500 3: 0.828206 0.400285 0.989522 0.221241 4: 0.466501 0.824768 0.965070 0.756951 5: 0.880448 0.387696 0.900237 0.723392 6: 0.340334 0.248316 0.806045E-01 0.358507 7: 0.253873 0.602576 0.380447 0.104711 8: 0.583584 0.280540 0.930086 0.567550 9: 0.324361 0.453921 0.484868 0.649278 10: 0.638346 0.172349 0.298978 0.894809 11: 0.207575 0.849743 0.688033 0.499289 12: 0.534091 0.598508 0.280938E-01 0.724603 13: 0.349187 0.329202 0.190928 0.749477 14: 0.163287 0.709153 0.642002 0.628232 15: 0.271405 0.957005 0.141459 0.663121 16: 0.814162 0.680546 0.189066 0.832941E-01 M = 37, N = 53, ||haar_2d_inverse(haar_2d(u))-u|| = 0.259245E-13 TEST03 HAAR_2D computes the Haar transform of an array. HAAR_2D_INVERSE inverts the transform. Apply this to a 128x128 matrix of 0 and 1 values which is actually a bit map of the Sierpinski triangle. Input array U: Col 1 2 3 4 5 Row 1: 1. 1. 1. 1. 1. 2: 1. 0. 1. 0. 1. 3: 1. 1. 0. 0. 1. 4: 1. 0. 0. 0. 1. 5: 1. 1. 1. 1. 0. 6: 1. 0. 1. 0. 0. 7: 1. 1. 0. 0. 0. 8: 1. 0. 0. 0. 0. 9: 1. 1. 1. 1. 1. 10: 1. 0. 1. 0. 1. Col 6 7 8 9 10 Row 1: 1. 1. 1. 1. 1. 2: 0. 1. 0. 1. 0. 3: 1. 0. 0. 1. 1. 4: 0. 0. 0. 1. 0. 5: 0. 0. 0. 1. 1. 6: 0. 0. 0. 1. 0. 7: 0. 0. 0. 1. 1. 8: 0. 0. 0. 1. 0. 9: 1. 1. 1. 0. 0. 10: 0. 1. 0. 0. 0. Transformed array V: Col 1 2 3 4 5 Row 1: 17.0859 5.69531 5.36959 2.68480 5.06250 2: 5.69531 -5.69531 0. 2.68480 0. 3: 5.36959 0. -3.79687 -3.79687 0. 4: 2.68480 2.68480 -3.79687 0. 0. 5: 5.06250 0. 0. 0. -2.53125 6: 2.53125 0. 1.78986 1.78986 -2.53125 7: 2.53125 2.53125 0. 0. -2.53125 8: 1.26562 1.26562 1.78986 0. -2.53125 9: 4.77297 0. 0. 0. 0. 10: 2.38649 0. 0. 0. 1.19324 Col 6 7 8 9 10 Row 1: 2.53125 2.53125 1.26562 4.77297 2.38649 2: 0. 2.53125 1.26562 0. 0. 3: 1.78986 0. 1.78986 0. 0. 4: 1.78986 0. 0. 0. 0. 5: -2.53125 -2.53125 -2.53125 0. 1.19324 6: 0. -2.53125 0. 0. 1.19324 7: -2.53125 0. 0. 0. 1.19324 8: 0. 0. 0. 0. 1.19324 9: 0. 0. 0. -1.68750 -1.68750 10: 1.19324 1.19324 1.19324 -1.68750 0. Recovered array W: Col 1 2 3 4 5 Row 1: 1. 1. 1. 1. 1. 2: 1. 0. 1. 0. 1. 3: 1. 1. 0. 0. 1. 4: 1. 0. 0. 0. 1. 5: 1. 1. 1. 1. 0. 6: 1. 0. 1. 0. 0. 7: 1. 1. 0. 0. 0. 8: 1. 0. 0. 0. 0. 9: 1. 1. 1. 1. 1. 10: 1. 0. 1. 0. 1. Col 6 7 8 9 10 Row 1: 1. 1. 1. 1. 1. 2: 0. 1. 0. 1. 0. 3: 1. 0. 0. 1. 1. 4: 0. 0. 0. 1. 0. 5: 0. 0. 0. 1. 1. 6: 0. 0. 0. 1. 0. 7: 0. 0. 0. 1. 1. 8: 0. 0. 0. 1. 0. 9: 1. 1. 1. 0. 0. 10: 0. 1. 0. 0. 0. haar_test(): Normal end of execution. 30 November 2022 8:58:23.040 PM