06 October 2025 6:18:58.063 PM 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.4608 1.6444 0.4608 2 0.9621 0.0268 0.9621 3 0.5380 0.3864 0.5380 4 0.2568 0.2371 0.2568 5 0.4255 0.3140 0.4255 6 0.1372 0.0002 0.1372 7 0.3985 0.5469 0.3985 8 0.1637 0.5074 0.1637 9 0.9100 -0.3545 0.9100 10 0.6134 0.1989 0.6134 11 0.0362 0.2039 0.0362 12 0.3933 0.1661 0.3933 13 0.5901 0.2098 0.5901 14 0.5584 -0.2525 0.5584 15 0.0813 0.0225 0.0813 16 0.0524 0.0205 0.0524 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.233216E-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.823755 0.686113 0.624280 0.485702E-01 2: 0.753398 0.881157 0.249908 0.142466 3: 0.817226 0.652785 0.174961 0.958891 4: 0.610610 0.546253 0.922943 0.896615 5: 0.557914 0.448202E-01 0.782247 0.639803 6: 0.867951 0.360037 0.757730 0.194022 7: 0.199833 0.477867 0.432945 0.665851 8: 0.802196 0.749368 0.490003 0.449872 9: 0.789018 0.464896 0.259989 0.463439 10: 0.929814 0.540711 0.895503 0.574837 11: 0.384355 0.287015 0.444837 0.668871 12: 0.372446 0.571593E-01 0.203207 0.224011 13: 0.688158 0.702840 0.397243 0.164208 14: 0.851798 0.663798E-01 0.265151 0.554228 15: 0.569272 0.684234 0.493996E-01 0.363358 16: 0.715112 0.727901 0.332838E-01 0.461354 Transformed array V: Col 1 2 3 4 Row 1: 4.13955 0.526046 0.495562 -0.860485E-01 2: 0.426046 -0.176002 -0.129817 0.241233 3: 0.232898 0.372141 -0.139280 -0.146957 4: 0.470561E-01 -0.464348 0.120717 0.167612 5: -0.342660 0.601433 -0.773978E-01 0.509383 6: -0.158528E-01 -0.183418 0.440603 0.317819 7: 0.569077 0.242656 0.106278 0.128006 8: 0.215228E-01 -0.215194 0.317663 0.242533 9: 0.550799E-01 -0.143247 0.132701 0.234134 10: -0.131719 0.353148 0.500417E-01 -0.405129 11: -0.547856E-01 -0.387336 0.258969E-02 -0.210632 12: -0.252771 -0.365145 -0.165431 -0.136519 13: -0.340657 0.187490 -0.324902E-01 -0.262058 14: 0.328187 -0.157234 -0.108973 -0.101615 15: 0.759755E-01 0.258358 -0.400050 0.261056 16: -0.959499E-01 -0.380515E-01 -0.510869E-01 0.570562E-01 Recovered array W: Col 1 2 3 4 Row 1: 0.823755 0.686113 0.624280 0.485702E-01 2: 0.753398 0.881157 0.249908 0.142466 3: 0.817226 0.652785 0.174961 0.958891 4: 0.610610 0.546253 0.922943 0.896615 5: 0.557914 0.448202E-01 0.782247 0.639803 6: 0.867951 0.360037 0.757730 0.194022 7: 0.199833 0.477867 0.432945 0.665851 8: 0.802196 0.749368 0.490003 0.449872 9: 0.789018 0.464896 0.259989 0.463439 10: 0.929814 0.540711 0.895503 0.574837 11: 0.384355 0.287015 0.444837 0.668871 12: 0.372446 0.571593E-01 0.203207 0.224011 13: 0.688158 0.702840 0.397243 0.164208 14: 0.851798 0.663798E-01 0.265151 0.554228 15: 0.569272 0.684234 0.493996E-01 0.363358 16: 0.715112 0.727901 0.332838E-01 0.461354 M = 37, N = 53, ||haar_2d_inverse(haar_2d(u))-u|| = 0.233542E-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. 06 October 2025 6:18:58.067 PM