09 May 2025 9:14:44.192 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.1614 1.8940 0.1614 2 0.2051 0.0998 0.2051 3 0.4049 -0.1658 0.4049 4 0.9879 0.1390 0.9879 5 0.6791 -0.5132 0.6791 6 0.1059 -0.3291 0.1059 7 0.5376 -0.1928 0.5376 8 0.9056 -0.2812 0.9056 9 0.6976 -0.0309 0.6976 10 0.1050 -0.4123 0.1050 11 0.5761 0.4053 0.5761 12 0.6121 -0.2602 0.6121 13 0.0866 0.4190 0.0866 14 0.4310 -0.0255 0.4310 15 0.9796 -0.2435 0.9796 16 0.1005 0.6216 0.1005 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.358923E-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.416870 0.940013 0.766398 0.660565 2: 0.112638 0.690766 0.637256 0.192671 3: 0.331256E-01 0.495305 0.709147 0.390888 4: 0.986410 0.507579 0.142908E-01 0.866480 5: 0.608889 0.940418 0.464302 0.321427 6: 0.224778 0.655917E-01 0.780975E-01 0.219066 7: 0.953655 0.280143E-01 0.716230 0.472635 8: 0.996709E-02 0.263725 0.430693 0.684565 9: 0.839056 0.427791 0.827529 0.744186 10: 0.250132E-01 0.375349 0.483961 0.525318 11: 0.445349 0.436688 0.129575 0.983333 12: 0.487523 0.622563 0.778733 0.851999 13: 0.135315 0.504365 0.845688 0.986198 14: 0.519324 0.930910 0.269341 0.280659 15: 0.305495 0.183412 0.792884 0.246068 16: 0.242738 0.612147 0.782319 0.569059 Transformed array V: Col 1 2 3 4 Row 1: 4.01154 -0.418847 -0.296718 -0.474955E-01 2: -0.285929 0.332106 0.898611E-01 0.503652E-01 3: 0.342655 0.418940E-01 -0.396040 0.621525E-02 4: 0.137540 -0.577695E-01 0.240628 -0.373322 5: 0.103488 -0.345538E-01 -0.395245 0.383375 6: -0.159229 0.451386 -0.298479 0.430740E-02 7: -0.121890 -0.405669E-01 0.662233E-01 0.342597 8: 0.184419 0.188642 -0.188554 -0.322406 9: 0.406769 -0.153993E-01 0.274927E-01 -0.169376 10: -0.263855 -0.418898 -0.470505 0.585224 11: 0.617836 0.272368 -0.245358 0.141921 12: 0.276331 0.224284 0.589699 0.248734 13: 0.505200 0.107498 0.380800 0.623506E-01 14: -0.263706 0.102451 0.718506E-01 -0.390246 15: 0.166641 -0.739789 0.212681E-01 -0.645959E-01 16: -0.239852 -0.189335E-01 0.245746 0.166778 Recovered array W: Col 1 2 3 4 Row 1: 0.416870 0.940013 0.766398 0.660565 2: 0.112638 0.690766 0.637256 0.192671 3: 0.331256E-01 0.495305 0.709147 0.390888 4: 0.986410 0.507579 0.142908E-01 0.866480 5: 0.608889 0.940418 0.464302 0.321427 6: 0.224778 0.655917E-01 0.780975E-01 0.219066 7: 0.953655 0.280143E-01 0.716230 0.472635 8: 0.996709E-02 0.263725 0.430693 0.684565 9: 0.839056 0.427791 0.827529 0.744186 10: 0.250132E-01 0.375349 0.483961 0.525318 11: 0.445349 0.436688 0.129575 0.983333 12: 0.487523 0.622563 0.778733 0.851999 13: 0.135315 0.504365 0.845688 0.986198 14: 0.519324 0.930910 0.269341 0.280659 15: 0.305495 0.183412 0.792884 0.246068 16: 0.242738 0.612147 0.782319 0.569059 M = 37, N = 53, ||haar_2d_inverse(haar_2d(u))-u|| = 0.266115E-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. 09 May 2025 9:14:44.196 PM