13 December 2022 8:03:01.914 AM haar_transform_test(): FORTRAN90 version Test haar_transform(). TEST01 HAAR_1D computes the Haar transform of a vector. i U(i) H(U)(i) Hinv(H(U))(i) 1 0.0612 1.7385 0.0612 2 0.7074 -0.2915 0.7074 3 0.0170 -0.1503 0.0170 4 0.4488 0.1873 0.4488 5 0.9280 0.1514 0.9280 6 0.3771 0.4753 0.3771 7 0.2555 -0.2148 0.2555 8 0.0989 0.0785 0.0989 9 0.6331 -0.4569 0.6331 10 0.2996 -0.3053 0.2996 11 0.5395 0.3895 0.5395 12 0.8227 0.1108 0.8227 13 0.4966 0.2358 0.4966 14 0.4645 -0.2002 0.4645 15 0.1736 0.0227 0.1736 16 0.6304 -0.3230 0.6304 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.445786E-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.425747 0.970708 0.511747 0.176340 2: 0.629903 0.626363 0.766436 0.236477 3: 0.169908 0.234719 0.458712 0.301905 4: 0.875673 0.912737 0.375782E-01 0.537201 5: 0.675785 0.652641 0.487693E-02 0.573556E-01 6: 0.674336 0.927152 0.194912 0.500761 7: 0.337890 0.297528 0.866314 0.969008 8: 0.966728 0.614043 0.455513 0.444154 9: 0.856658 0.415832E-01 0.624468 0.298650 10: 0.533072 0.388496 0.643931 0.269185 11: 0.749059 0.279973 0.284087 0.268881 12: 0.853856 0.192090 0.480512 0.487279 13: 0.972841 0.197154 0.725423 0.486655 14: 0.145115 0.764138 0.403714 0.632807 15: 0.343260 0.886030 0.518077 0.622163E-02 16: 0.491948 0.671877 0.642040 0.653905 Transformed array V: Col 1 2 3 4 Row 1: 4.03802 0.551735 0.184651 0.228317 2: 0.897704E-01 0.316408 -0.354330 -0.202547 3: -0.135560 0.293718E-01 -0.201668 0.243053 4: -0.227941 0.237366E-01 0.664135 0.498338E-01 5: 0.203822 0.260204E-01 -0.155403 0.427156 6: -0.315840 0.672702 -0.220164 -0.943962E-01 7: 0.150767E-01 -0.142661 -0.605287E-01 0.244703 8: 0.286224E-01 -0.185556 0.310902 -0.173353 9: -0.617439E-01 0.160873 -0.274250 -0.972756E-01 10: -0.423538 -0.554945 -0.138730E-01 0.328215 11: -0.320497 0.127413 0.137981 0.126685 12: -0.342870E-02 -0.665037 -0.156161 -0.570264E-01 13: -0.471124E-02 -0.117834E-01 0.335249 -0.244642E-01 14: -0.152642 0.140682 -0.963400E-01 0.109866E-01 15: 0.154255 0.301177E-01 0.697355 0.233930 16: -0.249672 0.295964 -0.181420 0.261860 Recovered array W: Col 1 2 3 4 Row 1: 0.425747 0.970708 0.511747 0.176340 2: 0.629903 0.626363 0.766436 0.236477 3: 0.169908 0.234719 0.458712 0.301905 4: 0.875673 0.912737 0.375782E-01 0.537201 5: 0.675785 0.652641 0.487693E-02 0.573556E-01 6: 0.674336 0.927152 0.194912 0.500761 7: 0.337890 0.297528 0.866314 0.969008 8: 0.966728 0.614043 0.455513 0.444154 9: 0.856658 0.415832E-01 0.624468 0.298650 10: 0.533072 0.388496 0.643931 0.269185 11: 0.749059 0.279973 0.284087 0.268881 12: 0.853856 0.192090 0.480512 0.487279 13: 0.972841 0.197154 0.725423 0.486655 14: 0.145115 0.764138 0.403714 0.632807 15: 0.343260 0.886030 0.518077 0.622163E-02 16: 0.491948 0.671877 0.642040 0.653905 M = 37, N = 53, ||haar_2d_inverse(haar_2d(u))-u|| = 0.280148E-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_transform_test(): Normal end of execution. 13 December 2022 8:03:01.918 AM