diff --git a/CMakeLists.txt b/CMakeLists.txt index e4a393c..ceb85c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.28) +cmake_minimum_required(VERSION 3.25) project(COSC-4P80-Assignment-2 VERSION 0.0.2) option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF) diff --git a/data/L30fft_32.out b/data/L30fft_32.out index 37e7a48..a848881 100644 --- a/data/L30fft_32.out +++ b/data/L30fft_32.out @@ -1,55 +1,55 @@ -53 32 -0 184.20 10.27 40.46 26.18 20.42 10.79 9.42 6.89 10.41 8.08 5.52 8.95 12.51 18.47 32.67 24.44 20.17 19.57 43.49 62.56 22.04 13.37 10.78 7.62 6.75 8.87 13.94 23.90 25.10 26.78 53.10 53.88 -0 144.26 17.80 57.50 35.40 13.95 12.70 12.97 8.16 8.75 8.12 6.44 8.98 12.08 19.86 27.17 20.90 20.27 20.65 44.31 40.91 18.83 11.75 8.99 7.61 6.97 6.74 8.24 18.34 25.90 20.43 31.44 34.57 -0 154.61 13.94 57.00 29.44 25.23 8.55 11.24 6.74 5.77 8.34 5.41 6.20 6.98 15.60 22.01 14.66 14.80 18.72 36.28 39.96 14.35 9.28 7.67 7.29 9.73 8.09 11.15 12.36 23.78 20.45 36.50 44.66 -0 166.85 20.04 103.26 45.08 19.62 11.45 11.48 6.11 9.67 8.82 5.65 8.41 9.17 19.02 20.90 17.00 17.21 22.06 33.48 47.66 18.15 10.39 8.13 7.19 7.31 9.08 15.28 18.49 27.42 24.89 44.56 55.59 -0 162.94 18.70 88.49 46.83 18.99 9.66 12.95 5.95 7.05 11.32 4.95 6.56 8.50 17.69 22.43 19.27 18.72 19.79 31.86 40.15 19.30 11.04 10.91 10.98 10.24 9.68 14.25 22.78 39.93 29.07 28.88 38.23 -0 192.43 32.60 117.66 48.14 30.78 19.09 17.53 10.88 11.38 16.64 9.17 11.35 14.24 28.19 34.79 29.57 21.13 21.65 35.52 41.28 20.11 12.52 11.31 9.49 9.15 9.57 11.49 17.98 34.22 27.28 25.07 31.41 -0 172.29 17.30 113.80 33.35 27.41 13.53 13.78 10.13 5.97 11.25 5.58 6.74 10.05 25.44 36.54 23.50 20.56 30.76 50.23 45.60 24.33 14.58 11.72 11.78 11.26 16.36 26.02 36.71 41.53 28.83 40.20 62.13 -0 182.79 14.35 37.89 34.64 25.27 10.59 12.28 8.26 11.76 10.00 7.12 9.12 10.54 21.21 27.08 20.86 17.85 20.67 34.64 57.07 28.50 12.67 9.29 7.90 8.42 8.37 10.56 32.39 29.14 24.14 28.78 40.12 -0 188.78 22.91 59.50 32.64 22.94 11.50 18.23 10.62 9.37 10.49 7.32 10.13 12.89 25.32 36.11 27.92 25.13 20.72 55.27 40.61 15.34 12.99 8.66 7.08 9.56 11.71 16.61 22.38 23.52 19.89 33.62 49.31 -0 149.37 14.35 79.69 34.24 23.13 12.73 9.43 5.87 6.17 6.54 5.44 9.49 13.04 12.99 17.40 22.61 28.24 19.72 38.66 28.07 13.23 10.41 13.36 14.16 11.16 10.37 15.89 28.73 41.17 40.51 46.28 65.57 -0 173.83 18.66 69.66 41.00 25.65 10.32 25.50 13.80 11.97 15.30 7.95 8.40 10.41 18.90 25.22 24.17 21.24 26.88 39.90 55.18 27.93 18.07 11.66 10.37 11.37 13.62 14.09 14.84 21.28 19.93 27.37 33.29 -0 176.09 14.05 57.75 25.51 17.76 9.69 20.87 15.54 10.26 15.85 9.71 9.79 12.13 22.22 39.08 37.83 27.88 25.05 43.39 59.15 27.43 17.69 18.49 11.37 8.96 7.94 10.57 21.22 29.27 20.53 26.38 45.99 -0 193.03 24.50 69.40 37.42 22.69 11.01 14.96 14.16 10.35 14.50 7.05 9.82 11.53 19.75 32.59 30.59 21.46 24.16 47.59 65.16 26.30 23.64 19.57 13.11 9.62 14.12 29.66 30.80 34.70 39.92 70.93 84.41 -0 168.65 13.90 71.86 48.08 37.78 15.94 19.34 22.55 17.64 17.28 19.24 18.90 21.77 42.08 35.91 25.17 23.84 40.65 49.30 47.94 20.28 9.72 11.86 9.82 7.44 8.94 10.74 22.07 24.97 22.79 27.77 45.00 -0 306.02 38.00 72.07 39.18 30.18 15.54 16.35 9.92 12.16 10.36 7.50 8.66 10.92 21.56 20.52 19.84 18.56 22.28 32.09 35.90 14.39 8.74 8.44 8.21 8.36 8.77 9.78 9.49 7.36 10.23 19.06 16.66 -0 261.35 29.15 84.01 54.89 23.15 24.33 22.38 9.72 12.95 13.33 6.72 9.58 12.64 20.98 26.83 17.86 19.72 23.31 41.34 29.60 17.39 10.02 6.07 6.16 6.21 5.73 6.63 8.06 8.98 8.72 14.44 13.44 -0 290.29 34.77 69.71 27.95 19.15 13.61 14.10 9.74 11.40 7.77 5.99 6.81 8.88 13.99 13.16 11.80 11.06 16.28 23.43 27.40 11.85 7.45 6.05 5.80 5.67 6.21 8.32 11.47 11.28 17.41 22.15 18.04 -0 270.40 36.17 82.71 37.34 21.89 19.21 14.98 9.33 10.73 10.96 6.79 8.63 11.82 23.82 26.44 16.90 17.71 20.68 37.24 29.98 15.29 9.79 7.59 7.09 7.75 10.60 15.13 16.08 26.75 23.06 48.87 46.56 -0 229.10 34.69 63.19 28.96 24.96 11.17 12.73 7.68 8.24 8.80 5.97 8.05 8.36 14.07 19.45 17.38 17.63 24.67 31.93 33.35 25.10 14.47 9.00 6.37 5.87 7.71 11.45 15.43 12.68 14.07 18.61 14.60 -0 269.96 40.44 69.81 23.05 21.66 12.14 11.50 7.99 9.04 7.75 6.09 6.67 8.45 15.56 12.12 13.99 12.67 16.02 25.50 27.41 11.54 7.74 6.91 7.59 6.98 6.86 8.90 11.47 15.17 9.46 21.74 22.98 -0 246.26 36.02 151.28 107.36 36.37 19.01 13.79 8.87 15.14 10.40 8.23 14.60 23.22 25.64 28.85 21.64 32.91 33.41 37.48 37.34 18.13 10.73 8.78 8.35 7.04 6.72 8.44 12.40 12.18 19.84 23.92 25.16 -0 232.29 17.78 51.02 23.78 18.63 8.28 8.83 5.69 6.81 7.22 4.55 6.57 9.51 20.28 18.09 14.29 14.09 26.78 30.75 33.57 14.92 10.04 10.30 9.21 9.38 14.69 21.14 23.67 28.49 34.18 36.91 69.20 -0 238.27 20.92 59.02 30.41 22.17 9.58 11.01 8.98 10.79 6.92 5.24 6.76 9.35 19.15 25.22 15.75 17.16 29.48 27.78 34.01 14.52 11.68 9.95 8.32 10.52 14.15 19.46 20.00 19.42 21.61 24.56 19.69 -0 269.70 17.41 55.12 25.36 22.66 9.41 11.76 7.94 14.58 8.14 6.32 7.70 11.07 23.12 30.30 16.70 16.24 18.90 36.79 30.61 13.47 9.92 6.91 6.16 10.02 11.95 9.57 9.98 9.74 10.62 19.77 19.37 -0 291.67 27.61 56.92 32.17 22.05 11.40 14.02 8.51 11.78 10.00 6.39 7.56 10.15 23.91 22.69 18.04 20.34 23.28 34.33 30.61 12.48 8.14 6.80 6.27 7.26 8.23 9.99 13.03 13.98 14.26 24.87 30.76 -0 287.69 22.25 54.29 28.78 24.01 10.85 13.39 9.30 14.92 10.86 6.39 7.80 9.23 18.46 22.42 17.53 15.67 25.28 30.91 49.96 31.83 16.08 11.55 9.16 9.32 11.81 12.79 15.90 18.51 15.25 22.12 23.34 -0 249.73 34.18 66.98 31.52 23.62 14.14 10.55 9.86 11.27 8.95 7.91 9.68 11.10 21.30 25.29 18.60 20.23 22.91 35.28 26.63 15.20 8.37 6.76 7.00 9.01 10.05 11.90 14.37 19.08 26.60 32.03 25.30 -0 252.89 34.07 58.12 40.45 26.91 12.28 13.61 8.62 8.29 9.26 6.95 11.28 12.33 19.69 22.78 26.80 24.79 21.42 44.89 38.66 32.94 23.44 16.43 15.08 17.14 12.96 14.53 17.56 18.18 15.61 25.39 23.97 -0 242.66 15.78 43.78 34.80 23.97 9.24 12.65 6.97 8.40 7.32 5.96 7.19 9.31 19.67 22.16 18.03 17.66 27.97 23.89 47.39 25.14 15.43 11.73 6.87 7.48 8.12 10.31 9.51 14.05 13.76 18.41 22.63 -0 252.90 18.79 62.40 22.69 17.72 9.69 8.66 5.95 11.24 8.55 5.97 7.67 10.07 13.17 13.50 12.43 16.81 19.07 31.60 28.05 13.82 8.24 6.47 7.46 6.57 6.10 8.87 11.18 8.09 8.47 12.22 16.37 -0 276.14 34.11 50.50 31.46 26.88 15.53 11.58 10.22 12.30 13.34 7.25 8.52 9.45 18.99 24.18 17.22 16.45 20.89 38.86 42.22 16.73 10.90 9.82 7.76 7.29 7.61 10.40 15.70 16.72 18.66 39.81 59.79 -0 236.53 40.39 82.24 72.51 53.22 22.15 23.73 9.10 16.98 8.92 6.46 8.04 11.67 25.54 23.79 19.20 21.21 19.28 38.26 31.10 15.60 12.76 8.83 6.80 7.55 11.69 16.99 26.50 29.61 15.59 24.82 34.75 -0 238.12 22.01 55.70 33.64 21.76 18.26 10.28 7.86 11.62 8.76 6.39 9.50 12.48 17.64 26.07 19.73 21.15 21.56 28.73 42.48 15.05 10.50 9.12 6.90 8.20 11.07 16.91 28.45 30.01 30.23 44.26 46.26 -0 271.57 41.43 72.45 28.69 18.35 12.71 14.83 10.18 11.36 10.60 7.06 7.83 10.84 19.07 23.29 18.63 18.24 31.88 25.89 41.33 17.28 12.03 7.96 7.75 8.61 8.12 9.24 11.62 21.77 18.18 38.11 42.56 -1 337.05 43.30 83.37 46.18 28.09 17.46 16.96 8.68 11.29 9.37 7.04 7.43 10.74 18.33 16.92 15.79 17.14 30.07 31.12 21.65 14.07 9.05 6.28 7.68 6.93 8.44 10.00 11.33 10.49 13.71 24.73 21.34 -1 254.34 23.20 51.20 36.44 27.34 13.67 14.08 8.63 12.80 8.18 5.99 8.20 11.20 23.70 32.13 25.35 21.64 38.52 48.96 31.20 14.75 10.49 9.07 6.31 7.82 7.82 10.00 11.45 16.04 19.11 17.87 11.92 -1 318.37 39.14 96.89 72.31 25.71 17.38 13.67 8.34 16.45 9.66 8.60 13.36 15.72 22.86 31.08 26.50 34.55 34.17 42.84 30.99 15.05 9.93 9.32 7.72 8.21 8.84 10.28 11.89 12.94 15.30 23.32 18.50 -1 267.28 33.04 103.34 28.81 21.01 16.29 19.19 9.94 8.84 10.93 7.06 10.11 9.98 11.67 11.77 14.00 13.79 30.66 39.86 24.99 13.99 9.99 8.61 11.55 12.67 18.45 29.96 29.66 27.00 28.21 32.93 28.65 -1 262.72 15.11 44.08 32.63 18.97 11.73 12.60 7.04 8.28 9.96 5.67 9.16 11.63 18.51 17.43 13.33 16.00 21.42 40.72 34.98 18.53 9.89 7.23 5.52 6.60 7.25 8.45 10.56 11.11 18.17 24.44 22.13 -1 294.93 25.54 65.80 44.68 31.29 14.91 21.26 11.88 15.11 9.34 7.46 7.87 10.21 18.51 32.35 19.80 18.68 24.35 31.15 32.42 16.01 13.55 9.73 8.95 11.37 12.07 15.01 19.51 16.75 13.60 25.04 24.73 -1 261.16 35.17 66.75 33.22 26.74 12.07 18.06 13.70 10.44 10.12 6.67 8.29 10.89 22.80 23.55 14.99 14.40 22.83 31.99 43.70 20.65 15.36 11.41 8.18 8.40 8.11 10.81 12.87 14.44 13.34 18.11 20.32 -1 272.46 34.67 71.50 37.32 24.40 12.19 15.25 9.36 10.85 7.50 7.21 9.60 11.18 18.12 19.11 16.03 19.29 30.89 24.03 29.65 16.83 10.24 7.85 7.34 9.22 10.38 11.10 11.14 10.50 17.20 22.98 17.35 -1 242.91 28.67 62.63 44.59 29.97 20.37 19.60 14.43 10.90 10.51 6.55 10.27 14.20 23.18 28.75 22.63 22.14 24.52 65.68 49.59 32.91 26.38 20.33 23.82 18.94 20.12 28.20 30.86 47.38 47.46 60.49 73.18 -1 325.17 35.93 74.79 34.30 20.82 14.96 20.30 15.37 15.49 10.84 8.16 10.54 9.56 14.74 28.98 25.39 21.14 31.53 44.16 52.28 24.64 13.84 10.84 10.90 12.29 12.89 14.90 12.95 16.79 14.52 27.99 31.61 -1 369.75 18.65 45.09 27.07 30.81 11.38 10.43 7.25 9.38 13.99 6.09 7.67 9.24 18.65 30.36 23.77 22.40 27.76 28.87 42.63 22.60 11.08 9.00 9.10 8.18 7.88 10.34 10.81 15.82 16.99 23.54 24.58 -1 336.86 35.26 67.14 46.40 43.73 24.96 16.78 11.19 14.09 14.40 8.77 10.16 14.93 19.18 19.52 14.45 18.13 30.55 38.85 24.24 12.58 10.76 7.37 6.60 6.80 7.66 9.64 12.10 10.12 11.26 18.23 21.73 -1 347.20 35.61 69.37 32.59 24.86 11.90 10.30 7.24 10.65 7.68 5.44 6.31 8.83 13.22 17.44 14.36 13.62 14.73 33.32 29.33 15.11 10.04 9.06 7.97 8.62 10.25 13.95 14.48 15.61 15.99 14.97 23.17 -1 315.37 37.63 79.73 39.74 32.22 12.57 11.32 9.41 12.72 10.67 7.33 9.49 15.20 20.97 18.46 15.58 27.90 15.67 41.50 21.39 13.85 12.65 9.51 8.35 9.46 9.75 11.84 11.61 11.10 13.35 17.56 29.14 -1 287.72 50.72 121.22 42.38 19.15 16.49 13.04 7.34 8.29 6.93 5.02 6.50 10.27 16.43 16.21 14.47 15.16 13.31 30.94 39.02 17.77 12.51 9.78 7.92 7.82 9.68 16.47 26.86 29.81 24.90 27.91 41.70 -1 323.15 35.55 60.72 34.79 35.50 23.75 16.16 11.54 13.73 14.75 9.10 10.23 10.77 19.95 23.25 16.86 18.23 18.13 42.11 31.51 15.73 10.86 8.89 7.44 8.29 7.19 7.59 9.72 11.56 13.49 23.53 32.28 -1 337.83 56.74 106.02 54.87 46.56 36.71 24.65 12.82 11.16 10.13 7.23 9.18 14.04 16.80 18.95 19.61 17.82 22.01 23.89 30.56 15.65 9.33 7.57 5.95 5.56 6.08 12.14 14.30 10.29 16.37 33.36 23.68 -1 202.47 11.91 52.61 33.38 29.28 15.46 12.56 8.71 12.14 12.82 8.54 11.02 11.29 25.09 31.61 27.62 18.99 38.82 29.81 63.37 28.86 17.71 16.02 12.10 15.08 15.07 17.43 17.12 17.57 18.85 17.38 32.20 -1 208.15 11.23 41.29 39.29 27.51 16.72 15.42 10.10 20.29 13.31 8.61 11.16 11.07 19.35 34.13 19.40 23.72 21.93 53.78 70.16 39.48 23.01 18.28 11.95 13.21 16.57 18.50 20.24 21.93 21.37 24.43 27.73 +53 32 +0 184.20 10.27 40.46 26.18 20.42 10.79 9.42 6.89 10.41 8.08 5.52 8.95 12.51 18.47 32.67 24.44 20.17 19.57 43.49 62.56 22.04 13.37 10.78 7.62 6.75 8.87 13.94 23.90 25.10 26.78 53.10 53.88 +0 144.26 17.80 57.50 35.40 13.95 12.70 12.97 8.16 8.75 8.12 6.44 8.98 12.08 19.86 27.17 20.90 20.27 20.65 44.31 40.91 18.83 11.75 8.99 7.61 6.97 6.74 8.24 18.34 25.90 20.43 31.44 34.57 +0 154.61 13.94 57.00 29.44 25.23 8.55 11.24 6.74 5.77 8.34 5.41 6.20 6.98 15.60 22.01 14.66 14.80 18.72 36.28 39.96 14.35 9.28 7.67 7.29 9.73 8.09 11.15 12.36 23.78 20.45 36.50 44.66 +0 166.85 20.04 103.26 45.08 19.62 11.45 11.48 6.11 9.67 8.82 5.65 8.41 9.17 19.02 20.90 17.00 17.21 22.06 33.48 47.66 18.15 10.39 8.13 7.19 7.31 9.08 15.28 18.49 27.42 24.89 44.56 55.59 +0 162.94 18.70 88.49 46.83 18.99 9.66 12.95 5.95 7.05 11.32 4.95 6.56 8.50 17.69 22.43 19.27 18.72 19.79 31.86 40.15 19.30 11.04 10.91 10.98 10.24 9.68 14.25 22.78 39.93 29.07 28.88 38.23 +0 192.43 32.60 117.66 48.14 30.78 19.09 17.53 10.88 11.38 16.64 9.17 11.35 14.24 28.19 34.79 29.57 21.13 21.65 35.52 41.28 20.11 12.52 11.31 9.49 9.15 9.57 11.49 17.98 34.22 27.28 25.07 31.41 +0 172.29 17.30 113.80 33.35 27.41 13.53 13.78 10.13 5.97 11.25 5.58 6.74 10.05 25.44 36.54 23.50 20.56 30.76 50.23 45.60 24.33 14.58 11.72 11.78 11.26 16.36 26.02 36.71 41.53 28.83 40.20 62.13 +0 182.79 14.35 37.89 34.64 25.27 10.59 12.28 8.26 11.76 10.00 7.12 9.12 10.54 21.21 27.08 20.86 17.85 20.67 34.64 57.07 28.50 12.67 9.29 7.90 8.42 8.37 10.56 32.39 29.14 24.14 28.78 40.12 +0 188.78 22.91 59.50 32.64 22.94 11.50 18.23 10.62 9.37 10.49 7.32 10.13 12.89 25.32 36.11 27.92 25.13 20.72 55.27 40.61 15.34 12.99 8.66 7.08 9.56 11.71 16.61 22.38 23.52 19.89 33.62 49.31 +0 149.37 14.35 79.69 34.24 23.13 12.73 9.43 5.87 6.17 6.54 5.44 9.49 13.04 12.99 17.40 22.61 28.24 19.72 38.66 28.07 13.23 10.41 13.36 14.16 11.16 10.37 15.89 28.73 41.17 40.51 46.28 65.57 +0 173.83 18.66 69.66 41.00 25.65 10.32 25.50 13.80 11.97 15.30 7.95 8.40 10.41 18.90 25.22 24.17 21.24 26.88 39.90 55.18 27.93 18.07 11.66 10.37 11.37 13.62 14.09 14.84 21.28 19.93 27.37 33.29 +0 176.09 14.05 57.75 25.51 17.76 9.69 20.87 15.54 10.26 15.85 9.71 9.79 12.13 22.22 39.08 37.83 27.88 25.05 43.39 59.15 27.43 17.69 18.49 11.37 8.96 7.94 10.57 21.22 29.27 20.53 26.38 45.99 +0 193.03 24.50 69.40 37.42 22.69 11.01 14.96 14.16 10.35 14.50 7.05 9.82 11.53 19.75 32.59 30.59 21.46 24.16 47.59 65.16 26.30 23.64 19.57 13.11 9.62 14.12 29.66 30.80 34.70 39.92 70.93 84.41 +0 168.65 13.90 71.86 48.08 37.78 15.94 19.34 22.55 17.64 17.28 19.24 18.90 21.77 42.08 35.91 25.17 23.84 40.65 49.30 47.94 20.28 9.72 11.86 9.82 7.44 8.94 10.74 22.07 24.97 22.79 27.77 45.00 +0 306.02 38.00 72.07 39.18 30.18 15.54 16.35 9.92 12.16 10.36 7.50 8.66 10.92 21.56 20.52 19.84 18.56 22.28 32.09 35.90 14.39 8.74 8.44 8.21 8.36 8.77 9.78 9.49 7.36 10.23 19.06 16.66 +0 261.35 29.15 84.01 54.89 23.15 24.33 22.38 9.72 12.95 13.33 6.72 9.58 12.64 20.98 26.83 17.86 19.72 23.31 41.34 29.60 17.39 10.02 6.07 6.16 6.21 5.73 6.63 8.06 8.98 8.72 14.44 13.44 +0 290.29 34.77 69.71 27.95 19.15 13.61 14.10 9.74 11.40 7.77 5.99 6.81 8.88 13.99 13.16 11.80 11.06 16.28 23.43 27.40 11.85 7.45 6.05 5.80 5.67 6.21 8.32 11.47 11.28 17.41 22.15 18.04 +0 270.40 36.17 82.71 37.34 21.89 19.21 14.98 9.33 10.73 10.96 6.79 8.63 11.82 23.82 26.44 16.90 17.71 20.68 37.24 29.98 15.29 9.79 7.59 7.09 7.75 10.60 15.13 16.08 26.75 23.06 48.87 46.56 +0 229.10 34.69 63.19 28.96 24.96 11.17 12.73 7.68 8.24 8.80 5.97 8.05 8.36 14.07 19.45 17.38 17.63 24.67 31.93 33.35 25.10 14.47 9.00 6.37 5.87 7.71 11.45 15.43 12.68 14.07 18.61 14.60 +0 269.96 40.44 69.81 23.05 21.66 12.14 11.50 7.99 9.04 7.75 6.09 6.67 8.45 15.56 12.12 13.99 12.67 16.02 25.50 27.41 11.54 7.74 6.91 7.59 6.98 6.86 8.90 11.47 15.17 9.46 21.74 22.98 +0 246.26 36.02 151.28 107.36 36.37 19.01 13.79 8.87 15.14 10.40 8.23 14.60 23.22 25.64 28.85 21.64 32.91 33.41 37.48 37.34 18.13 10.73 8.78 8.35 7.04 6.72 8.44 12.40 12.18 19.84 23.92 25.16 +0 232.29 17.78 51.02 23.78 18.63 8.28 8.83 5.69 6.81 7.22 4.55 6.57 9.51 20.28 18.09 14.29 14.09 26.78 30.75 33.57 14.92 10.04 10.30 9.21 9.38 14.69 21.14 23.67 28.49 34.18 36.91 69.20 +0 238.27 20.92 59.02 30.41 22.17 9.58 11.01 8.98 10.79 6.92 5.24 6.76 9.35 19.15 25.22 15.75 17.16 29.48 27.78 34.01 14.52 11.68 9.95 8.32 10.52 14.15 19.46 20.00 19.42 21.61 24.56 19.69 +0 269.70 17.41 55.12 25.36 22.66 9.41 11.76 7.94 14.58 8.14 6.32 7.70 11.07 23.12 30.30 16.70 16.24 18.90 36.79 30.61 13.47 9.92 6.91 6.16 10.02 11.95 9.57 9.98 9.74 10.62 19.77 19.37 +0 291.67 27.61 56.92 32.17 22.05 11.40 14.02 8.51 11.78 10.00 6.39 7.56 10.15 23.91 22.69 18.04 20.34 23.28 34.33 30.61 12.48 8.14 6.80 6.27 7.26 8.23 9.99 13.03 13.98 14.26 24.87 30.76 +0 287.69 22.25 54.29 28.78 24.01 10.85 13.39 9.30 14.92 10.86 6.39 7.80 9.23 18.46 22.42 17.53 15.67 25.28 30.91 49.96 31.83 16.08 11.55 9.16 9.32 11.81 12.79 15.90 18.51 15.25 22.12 23.34 +0 249.73 34.18 66.98 31.52 23.62 14.14 10.55 9.86 11.27 8.95 7.91 9.68 11.10 21.30 25.29 18.60 20.23 22.91 35.28 26.63 15.20 8.37 6.76 7.00 9.01 10.05 11.90 14.37 19.08 26.60 32.03 25.30 +0 252.89 34.07 58.12 40.45 26.91 12.28 13.61 8.62 8.29 9.26 6.95 11.28 12.33 19.69 22.78 26.80 24.79 21.42 44.89 38.66 32.94 23.44 16.43 15.08 17.14 12.96 14.53 17.56 18.18 15.61 25.39 23.97 +0 242.66 15.78 43.78 34.80 23.97 9.24 12.65 6.97 8.40 7.32 5.96 7.19 9.31 19.67 22.16 18.03 17.66 27.97 23.89 47.39 25.14 15.43 11.73 6.87 7.48 8.12 10.31 9.51 14.05 13.76 18.41 22.63 +0 252.90 18.79 62.40 22.69 17.72 9.69 8.66 5.95 11.24 8.55 5.97 7.67 10.07 13.17 13.50 12.43 16.81 19.07 31.60 28.05 13.82 8.24 6.47 7.46 6.57 6.10 8.87 11.18 8.09 8.47 12.22 16.37 +0 276.14 34.11 50.50 31.46 26.88 15.53 11.58 10.22 12.30 13.34 7.25 8.52 9.45 18.99 24.18 17.22 16.45 20.89 38.86 42.22 16.73 10.90 9.82 7.76 7.29 7.61 10.40 15.70 16.72 18.66 39.81 59.79 +0 236.53 40.39 82.24 72.51 53.22 22.15 23.73 9.10 16.98 8.92 6.46 8.04 11.67 25.54 23.79 19.20 21.21 19.28 38.26 31.10 15.60 12.76 8.83 6.80 7.55 11.69 16.99 26.50 29.61 15.59 24.82 34.75 +0 238.12 22.01 55.70 33.64 21.76 18.26 10.28 7.86 11.62 8.76 6.39 9.50 12.48 17.64 26.07 19.73 21.15 21.56 28.73 42.48 15.05 10.50 9.12 6.90 8.20 11.07 16.91 28.45 30.01 30.23 44.26 46.26 +0 271.57 41.43 72.45 28.69 18.35 12.71 14.83 10.18 11.36 10.60 7.06 7.83 10.84 19.07 23.29 18.63 18.24 31.88 25.89 41.33 17.28 12.03 7.96 7.75 8.61 8.12 9.24 11.62 21.77 18.18 38.11 42.56 +1 337.05 43.30 83.37 46.18 28.09 17.46 16.96 8.68 11.29 9.37 7.04 7.43 10.74 18.33 16.92 15.79 17.14 30.07 31.12 21.65 14.07 9.05 6.28 7.68 6.93 8.44 10.00 11.33 10.49 13.71 24.73 21.34 +1 254.34 23.20 51.20 36.44 27.34 13.67 14.08 8.63 12.80 8.18 5.99 8.20 11.20 23.70 32.13 25.35 21.64 38.52 48.96 31.20 14.75 10.49 9.07 6.31 7.82 7.82 10.00 11.45 16.04 19.11 17.87 11.92 +1 318.37 39.14 96.89 72.31 25.71 17.38 13.67 8.34 16.45 9.66 8.60 13.36 15.72 22.86 31.08 26.50 34.55 34.17 42.84 30.99 15.05 9.93 9.32 7.72 8.21 8.84 10.28 11.89 12.94 15.30 23.32 18.50 +1 267.28 33.04 103.34 28.81 21.01 16.29 19.19 9.94 8.84 10.93 7.06 10.11 9.98 11.67 11.77 14.00 13.79 30.66 39.86 24.99 13.99 9.99 8.61 11.55 12.67 18.45 29.96 29.66 27.00 28.21 32.93 28.65 +1 262.72 15.11 44.08 32.63 18.97 11.73 12.60 7.04 8.28 9.96 5.67 9.16 11.63 18.51 17.43 13.33 16.00 21.42 40.72 34.98 18.53 9.89 7.23 5.52 6.60 7.25 8.45 10.56 11.11 18.17 24.44 22.13 +1 294.93 25.54 65.80 44.68 31.29 14.91 21.26 11.88 15.11 9.34 7.46 7.87 10.21 18.51 32.35 19.80 18.68 24.35 31.15 32.42 16.01 13.55 9.73 8.95 11.37 12.07 15.01 19.51 16.75 13.60 25.04 24.73 +1 261.16 35.17 66.75 33.22 26.74 12.07 18.06 13.70 10.44 10.12 6.67 8.29 10.89 22.80 23.55 14.99 14.40 22.83 31.99 43.70 20.65 15.36 11.41 8.18 8.40 8.11 10.81 12.87 14.44 13.34 18.11 20.32 +1 272.46 34.67 71.50 37.32 24.40 12.19 15.25 9.36 10.85 7.50 7.21 9.60 11.18 18.12 19.11 16.03 19.29 30.89 24.03 29.65 16.83 10.24 7.85 7.34 9.22 10.38 11.10 11.14 10.50 17.20 22.98 17.35 +1 242.91 28.67 62.63 44.59 29.97 20.37 19.60 14.43 10.90 10.51 6.55 10.27 14.20 23.18 28.75 22.63 22.14 24.52 65.68 49.59 32.91 26.38 20.33 23.82 18.94 20.12 28.20 30.86 47.38 47.46 60.49 73.18 +1 325.17 35.93 74.79 34.30 20.82 14.96 20.30 15.37 15.49 10.84 8.16 10.54 9.56 14.74 28.98 25.39 21.14 31.53 44.16 52.28 24.64 13.84 10.84 10.90 12.29 12.89 14.90 12.95 16.79 14.52 27.99 31.61 +1 369.75 18.65 45.09 27.07 30.81 11.38 10.43 7.25 9.38 13.99 6.09 7.67 9.24 18.65 30.36 23.77 22.40 27.76 28.87 42.63 22.60 11.08 9.00 9.10 8.18 7.88 10.34 10.81 15.82 16.99 23.54 24.58 +1 336.86 35.26 67.14 46.40 43.73 24.96 16.78 11.19 14.09 14.40 8.77 10.16 14.93 19.18 19.52 14.45 18.13 30.55 38.85 24.24 12.58 10.76 7.37 6.60 6.80 7.66 9.64 12.10 10.12 11.26 18.23 21.73 +1 347.20 35.61 69.37 32.59 24.86 11.90 10.30 7.24 10.65 7.68 5.44 6.31 8.83 13.22 17.44 14.36 13.62 14.73 33.32 29.33 15.11 10.04 9.06 7.97 8.62 10.25 13.95 14.48 15.61 15.99 14.97 23.17 +1 315.37 37.63 79.73 39.74 32.22 12.57 11.32 9.41 12.72 10.67 7.33 9.49 15.20 20.97 18.46 15.58 27.90 15.67 41.50 21.39 13.85 12.65 9.51 8.35 9.46 9.75 11.84 11.61 11.10 13.35 17.56 29.14 +1 287.72 50.72 121.22 42.38 19.15 16.49 13.04 7.34 8.29 6.93 5.02 6.50 10.27 16.43 16.21 14.47 15.16 13.31 30.94 39.02 17.77 12.51 9.78 7.92 7.82 9.68 16.47 26.86 29.81 24.90 27.91 41.70 +1 323.15 35.55 60.72 34.79 35.50 23.75 16.16 11.54 13.73 14.75 9.10 10.23 10.77 19.95 23.25 16.86 18.23 18.13 42.11 31.51 15.73 10.86 8.89 7.44 8.29 7.19 7.59 9.72 11.56 13.49 23.53 32.28 +1 337.83 56.74 106.02 54.87 46.56 36.71 24.65 12.82 11.16 10.13 7.23 9.18 14.04 16.80 18.95 19.61 17.82 22.01 23.89 30.56 15.65 9.33 7.57 5.95 5.56 6.08 12.14 14.30 10.29 16.37 33.36 23.68 +1 202.47 11.91 52.61 33.38 29.28 15.46 12.56 8.71 12.14 12.82 8.54 11.02 11.29 25.09 31.61 27.62 18.99 38.82 29.81 63.37 28.86 17.71 16.02 12.10 15.08 15.07 17.43 17.12 17.57 18.85 17.38 32.20 +1 208.15 11.23 41.29 39.29 27.51 16.72 15.42 10.10 20.29 13.31 8.61 11.16 11.07 19.35 34.13 19.40 23.72 21.93 53.78 70.16 39.48 23.01 18.28 11.95 13.21 16.57 18.50 20.24 21.93 21.37 24.43 27.73  \ No newline at end of file diff --git a/data/L30fft_64.out b/data/L30fft_64.out index 9601a18..0ccda12 100644 --- a/data/L30fft_64.out +++ b/data/L30fft_64.out @@ -1,55 +1,55 @@ -53 64 -0 85.26 6.84 2.54 2.54 12.43 7.85 4.88 8.15 6.11 4.13 3.45 1.94 1.77 2.94 2.11 1.35 2.26 2.93 2.57 1.48 1.32 1.43 1.98 2.45 2.92 3.31 4.28 4.90 7.44 8.86 6.88 5.43 5.24 4.89 6.01 3.73 8.70 12.66 17.50 14.06 6.77 4.43 3.63 3.12 2.82 2.58 1.99 1.83 1.63 1.75 2.12 2.28 3.09 3.79 5.73 6.19 5.95 6.45 6.43 6.82 11.03 15.07 14.29 12.99 -0 63.47 8.66 4.18 4.72 16.50 12.25 10.63 7.08 3.45 3.55 3.51 2.86 2.46 3.99 2.62 1.48 1.39 2.92 2.54 1.58 1.53 1.68 2.09 2.38 2.74 3.31 4.40 5.46 6.34 7.23 6.09 4.47 4.57 5.50 7.67 2.68 7.95 13.90 12.13 8.61 5.63 3.86 3.11 2.80 2.35 2.19 2.03 1.78 1.75 1.73 1.69 1.70 1.76 2.31 3.45 5.50 6.60 6.40 5.42 4.87 5.92 9.52 9.85 7.68 -0 70.40 6.91 2.91 4.01 15.21 13.34 6.77 7.93 5.01 7.62 2.58 1.70 2.04 3.59 2.28 1.09 1.45 1.44 2.55 1.61 1.46 1.25 1.42 1.66 1.56 1.90 2.84 4.89 5.32 5.67 4.17 3.24 3.36 3.95 4.90 4.41 5.22 12.52 12.40 8.03 4.34 3.02 2.52 2.15 1.95 1.89 1.63 2.00 2.52 2.34 1.87 2.14 2.80 2.78 2.84 3.27 5.86 6.01 4.79 5.36 7.21 10.70 10.23 11.85 -0 75.82 7.61 4.11 5.70 25.39 26.53 15.21 7.37 3.84 5.98 3.56 2.17 2.10 3.65 1.93 1.11 1.62 3.22 2.99 1.43 1.29 1.54 1.95 2.24 2.07 2.45 3.69 5.77 5.66 4.83 4.35 4.15 3.82 4.73 5.80 5.42 3.65 12.47 14.89 9.34 5.51 3.75 2.90 2.34 2.07 2.01 1.92 1.70 1.87 1.78 2.03 2.44 3.57 4.00 4.40 4.80 7.31 6.44 5.65 6.69 9.27 12.55 14.76 13.30 -0 73.42 8.05 3.89 5.22 25.29 19.16 15.27 8.25 4.55 4.95 2.43 2.40 2.78 3.71 1.72 1.26 1.23 2.24 4.20 1.53 1.17 1.28 1.59 1.70 2.00 2.22 3.47 5.32 5.44 5.77 5.06 4.55 4.31 5.03 6.61 3.31 8.13 7.52 12.69 7.62 5.94 3.80 3.03 2.55 2.57 2.87 2.64 2.81 2.96 2.22 2.24 2.57 3.25 3.80 4.54 6.70 9.73 10.17 7.45 7.19 7.13 7.18 9.52 9.63 -0 82.97 13.26 7.90 8.11 32.19 27.00 15.55 8.77 5.47 9.91 5.88 3.68 3.97 4.81 3.17 2.30 2.27 3.39 5.64 2.69 2.26 2.30 2.58 3.09 3.38 3.73 5.87 8.08 8.70 8.77 8.45 6.39 4.43 5.98 4.19 6.71 6.47 11.18 12.01 8.82 5.81 4.32 3.41 2.89 2.94 2.74 2.38 2.35 2.34 2.26 2.26 2.48 2.74 2.98 3.57 5.25 8.30 8.72 7.21 6.51 6.06 6.37 7.09 8.47 -0 80.02 6.13 2.77 5.75 26.50 30.46 9.31 7.40 3.69 10.01 4.52 2.27 2.50 4.39 2.90 2.17 1.32 1.66 4.05 1.58 1.31 1.48 1.60 1.76 2.26 2.73 4.86 7.78 10.25 7.97 6.97 4.91 5.13 5.17 6.33 9.02 9.07 15.82 12.78 10.15 7.30 5.04 3.90 3.42 2.96 2.93 3.00 2.90 2.74 2.84 3.59 4.53 5.95 6.95 8.18 10.02 11.30 9.68 6.43 7.81 9.73 10.32 13.50 17.18 -0 83.79 7.61 3.36 3.77 10.75 8.25 6.53 10.78 6.37 6.27 3.11 2.12 2.42 3.76 2.35 1.78 2.70 3.18 3.66 1.36 1.47 2.06 2.10 2.45 2.22 3.02 4.51 5.97 7.48 6.11 5.46 5.03 4.16 4.73 4.56 5.68 5.84 11.30 13.15 15.64 8.78 5.61 3.53 2.89 2.41 2.24 1.93 2.00 2.12 2.09 2.19 2.01 2.06 3.11 6.02 9.85 8.65 6.12 6.01 6.07 6.34 7.92 9.26 10.56 -0 82.49 11.91 6.20 5.21 16.29 13.52 9.44 6.92 5.65 5.82 3.07 2.68 3.45 5.62 3.74 1.61 1.86 2.80 3.64 1.63 1.64 2.02 2.25 2.79 2.74 3.68 5.01 7.55 8.13 9.87 8.50 5.51 5.60 7.10 3.38 6.97 12.03 15.04 13.84 7.01 4.22 3.47 3.34 3.20 2.57 1.81 1.66 1.87 2.30 2.44 2.72 3.07 4.01 4.32 4.65 6.35 6.96 5.00 4.57 5.23 6.85 9.67 11.69 12.86 -0 68.89 5.80 2.90 4.09 20.69 19.29 9.53 7.60 4.15 7.39 4.59 1.81 1.95 2.76 1.83 1.12 1.10 1.95 2.02 1.27 1.31 1.40 1.89 2.83 3.18 3.31 3.26 3.24 3.94 4.74 6.57 4.72 6.53 7.52 4.24 5.76 8.25 10.81 8.49 5.75 3.85 2.85 2.57 2.61 3.04 3.59 3.48 3.60 3.20 2.45 2.34 2.80 3.50 4.36 5.42 8.67 10.57 9.91 10.16 10.26 10.10 12.73 15.65 16.93 -0 78.43 8.48 4.03 4.92 22.06 13.12 10.69 9.82 6.60 6.23 2.92 2.24 3.46 9.28 4.71 2.20 2.67 3.25 5.60 2.12 1.98 1.98 2.05 2.17 2.51 2.65 3.72 5.64 6.32 6.31 6.26 5.81 4.64 5.92 8.90 4.59 6.06 13.36 17.49 10.52 7.78 6.29 4.85 4.27 3.29 2.57 2.40 2.76 3.04 2.66 3.04 3.69 3.75 3.36 3.27 4.03 5.69 4.98 4.41 5.47 6.13 7.44 7.64 9.00 -0 80.80 7.25 3.21 3.81 17.28 11.61 6.08 6.67 4.26 4.60 2.61 2.25 3.13 7.29 5.55 2.24 1.67 3.40 5.41 2.56 2.43 2.41 2.21 2.69 2.98 3.07 3.95 6.97 9.41 10.09 9.89 9.09 6.62 7.36 6.48 5.88 8.27 13.11 17.60 12.27 9.03 4.94 4.12 4.68 5.24 4.09 3.28 2.43 2.36 2.17 1.98 1.99 2.25 2.92 4.05 6.36 8.45 6.30 5.38 4.92 6.03 6.94 9.60 13.09 -0 82.93 13.59 6.35 5.66 19.80 15.10 10.74 7.96 6.72 4.65 3.12 2.40 2.61 4.88 5.32 1.76 2.40 2.77 5.16 2.12 1.75 1.76 2.29 2.61 2.85 2.89 3.64 6.08 7.77 8.56 8.38 6.97 5.20 5.52 7.52 4.60 8.19 15.22 18.95 13.84 8.16 5.24 5.44 6.30 5.70 4.17 3.57 3.04 2.52 2.34 2.97 3.96 6.33 8.30 7.74 7.70 8.73 8.48 9.52 10.41 13.74 20.59 23.71 19.36 -0 76.95 7.38 3.02 3.83 23.54 12.48 12.49 11.57 5.76 12.87 5.07 3.14 3.28 6.41 6.11 5.17 3.85 4.96 5.45 3.07 4.52 5.21 5.13 4.24 4.75 6.20 8.97 11.98 10.15 7.86 7.09 5.53 6.36 5.59 8.80 11.37 7.63 16.49 16.45 8.01 7.12 3.36 2.46 2.41 2.89 3.02 2.71 2.23 2.01 1.74 1.98 2.44 2.37 2.94 4.50 6.42 6.99 5.58 5.36 5.93 6.46 7.17 10.78 11.81 -0 135.42 17.59 10.05 8.95 19.79 16.29 11.08 8.53 4.58 10.50 4.53 3.27 3.37 4.83 2.97 1.99 2.10 3.95 3.21 2.01 1.78 1.95 1.93 2.38 2.46 3.00 4.69 5.98 4.99 5.32 5.45 4.47 4.61 4.69 6.91 4.22 5.31 10.55 11.51 6.70 4.21 3.10 2.31 2.07 2.14 2.10 1.87 2.21 2.14 2.07 2.01 2.33 2.52 2.37 2.63 2.17 1.89 1.80 2.06 2.93 4.22 5.21 4.40 4.07 -0 119.36 11.32 6.99 7.59 20.61 21.32 15.35 12.25 4.87 6.67 7.36 4.79 4.48 6.75 2.94 1.93 2.01 4.42 4.46 2.30 1.64 1.72 2.20 2.59 2.66 3.60 3.79 6.60 8.18 5.34 4.49 4.40 4.67 5.15 7.66 3.96 8.67 11.96 9.17 5.82 4.66 4.08 2.93 2.15 1.66 1.39 1.52 1.54 1.74 1.39 1.37 1.48 1.56 1.74 1.97 2.07 2.33 2.15 2.09 2.23 3.10 4.04 3.74 3.06 -0 128.92 16.23 9.12 8.27 19.07 15.79 7.85 6.17 4.29 5.20 4.01 2.87 3.61 3.45 2.81 2.06 2.44 3.24 2.29 1.61 1.47 1.53 1.67 1.71 2.04 2.39 3.28 3.71 3.33 3.27 3.29 2.63 2.53 2.96 4.93 3.02 5.10 6.65 8.22 5.58 3.70 2.35 2.00 1.75 1.55 1.48 1.39 1.51 1.50 1.35 1.39 1.69 1.98 2.15 2.85 2.86 2.67 2.94 3.82 4.80 5.55 5.53 4.65 4.38 -0 117.90 17.31 10.25 7.81 23.71 17.68 11.99 6.70 4.15 6.78 5.84 3.78 3.58 3.93 2.58 2.07 2.07 3.28 3.53 1.98 1.74 1.64 1.88 2.43 2.32 3.54 4.59 7.30 7.49 5.69 4.53 3.95 4.36 4.28 4.37 6.11 6.21 12.23 9.42 5.84 4.46 3.20 2.81 2.15 1.95 1.84 1.70 1.84 1.98 1.88 2.41 2.85 3.36 4.13 4.19 3.85 5.53 7.70 5.90 5.67 10.06 13.93 12.87 10.69 -0 98.91 15.65 9.18 8.13 16.86 14.80 8.93 5.54 5.88 6.61 2.98 2.62 2.91 3.49 2.14 1.68 1.62 2.51 2.72 1.69 1.42 1.54 1.94 2.10 1.84 2.33 2.84 4.10 4.74 5.01 4.76 3.94 4.19 4.62 5.86 6.61 5.22 10.43 8.32 8.43 7.11 5.60 4.02 3.23 2.46 2.14 1.70 1.49 1.52 1.41 1.59 2.20 2.63 3.04 3.56 4.17 3.31 3.06 3.22 3.73 4.33 4.96 3.61 3.78 -0 116.34 18.64 10.86 9.32 20.57 14.39 6.88 4.70 5.62 5.19 3.36 2.72 2.62 3.15 2.19 1.78 1.92 2.61 2.08 1.81 1.48 1.57 1.59 1.71 1.83 2.37 3.66 4.13 3.17 2.90 3.14 3.81 3.00 3.35 4.21 3.80 4.04 8.54 8.26 5.60 3.54 2.33 2.05 1.82 1.73 1.75 1.82 1.98 1.70 1.79 1.60 1.82 2.11 2.31 2.57 3.13 4.14 3.50 2.08 2.55 4.82 5.97 5.67 5.83 -0 112.50 10.62 7.50 10.52 29.30 46.07 32.71 21.40 11.48 6.75 5.37 4.14 3.62 3.32 2.22 2.17 3.20 4.37 3.07 2.22 1.93 2.14 3.13 4.17 5.35 6.21 5.81 6.94 7.37 7.15 5.14 5.62 6.85 9.22 11.54 5.33 7.92 10.82 11.16 7.71 5.31 3.87 2.76 2.64 2.34 2.06 2.04 2.15 1.95 1.60 1.62 1.71 1.84 2.35 3.02 3.16 2.88 3.20 3.90 5.83 6.19 5.79 6.18 6.36 -0 107.51 8.64 4.56 4.27 14.35 11.23 6.28 5.61 3.87 5.45 2.39 1.75 1.65 2.77 1.63 1.21 1.17 2.22 2.41 1.22 1.09 1.19 1.45 1.84 1.86 2.82 4.77 5.40 4.94 4.12 4.15 3.00 3.61 3.42 6.38 7.11 4.91 10.07 10.80 6.23 4.28 3.32 2.76 2.26 2.57 2.57 2.33 2.27 2.56 2.15 2.94 4.21 5.67 4.99 5.09 6.65 6.69 7.38 8.45 8.70 7.82 10.37 16.09 18.09 -0 109.76 9.37 5.56 4.91 17.83 11.67 8.12 7.05 5.97 5.14 2.65 2.18 2.13 3.38 2.03 2.45 3.25 2.16 1.95 1.53 1.32 1.30 1.62 1.74 1.93 2.72 3.86 5.62 6.82 5.78 4.09 3.84 4.31 4.23 5.47 9.17 5.04 8.71 10.51 6.73 4.37 2.99 2.91 2.93 2.71 2.32 1.86 2.26 2.75 2.51 2.98 3.94 5.08 4.66 4.86 5.15 5.15 4.59 4.95 5.77 6.37 5.97 5.17 4.70 -0 125.93 8.93 4.69 3.99 14.50 13.09 6.49 6.19 5.85 5.48 2.67 2.06 2.17 3.71 2.37 1.60 3.51 3.77 2.43 1.63 1.60 1.58 1.80 2.03 2.42 3.08 4.38 7.01 8.91 6.39 4.43 4.00 3.82 4.25 5.73 3.79 6.77 11.29 9.49 6.15 3.87 2.95 2.61 2.36 1.94 1.54 1.36 1.71 2.20 2.73 3.28 2.72 2.42 2.38 2.48 2.52 2.54 2.34 2.40 2.86 3.89 5.78 5.23 4.60 -0 130.35 15.49 8.09 5.73 16.30 12.16 7.34 8.76 5.09 5.93 3.11 2.62 2.91 4.09 2.61 1.66 2.19 3.67 3.18 1.85 1.55 1.65 1.68 2.09 1.96 3.02 4.42 7.52 6.24 5.11 4.58 4.48 4.72 5.31 7.10 4.59 5.55 11.27 10.14 5.57 3.55 2.77 2.17 1.92 1.74 1.69 1.53 1.57 1.99 1.66 1.86 2.22 2.53 2.46 2.63 3.79 4.01 3.03 3.05 3.98 6.66 5.72 6.57 8.66 -0 132.83 11.01 5.96 5.13 16.65 10.52 7.55 6.87 4.70 7.30 3.23 2.21 2.61 4.09 2.73 1.90 2.92 4.53 3.48 1.99 1.62 1.58 1.66 2.20 2.24 2.39 3.36 5.79 5.74 5.50 4.67 4.07 3.73 4.09 4.92 7.60 5.08 10.19 13.16 11.88 9.54 6.69 4.59 3.51 2.98 2.84 2.47 2.11 2.26 2.38 2.76 3.11 3.21 3.16 3.42 4.44 5.48 3.95 3.65 3.84 4.86 6.18 5.29 6.32 -0 108.41 16.48 9.07 8.01 18.58 14.91 9.22 6.60 4.92 6.88 4.24 2.85 2.38 2.90 2.48 2.42 2.86 2.78 2.44 2.04 1.91 2.06 2.27 2.55 2.55 3.00 4.39 6.08 6.77 5.98 4.99 4.33 4.50 5.52 6.64 4.78 6.28 11.18 7.96 5.65 4.51 3.18 2.33 1.90 1.69 1.69 1.66 1.82 2.31 2.18 2.38 2.61 2.90 3.03 3.16 3.97 4.54 4.92 5.83 7.22 8.50 7.58 7.05 5.82 -0 110.23 16.21 8.88 8.11 17.02 12.08 13.06 7.20 4.55 8.90 3.42 2.73 3.04 3.79 2.35 1.95 1.73 2.40 2.79 1.85 1.55 1.92 2.55 3.07 2.87 3.29 4.10 5.70 6.78 4.53 7.11 6.37 5.79 6.44 7.11 3.70 8.85 13.31 10.28 9.18 8.48 8.15 6.27 5.47 4.75 3.63 3.33 4.05 4.66 4.04 3.28 3.22 3.32 3.90 4.19 4.50 5.01 4.16 3.56 4.18 5.89 6.63 6.17 5.91 -0 113.05 8.28 4.37 3.47 13.52 8.38 7.04 10.36 6.50 5.49 2.71 1.92 2.22 4.11 2.00 1.50 1.76 2.42 2.17 1.50 1.28 1.69 1.70 1.91 1.84 2.77 4.06 5.78 5.28 5.67 5.23 3.94 4.16 4.64 5.77 8.32 5.03 6.55 14.05 9.74 7.32 5.43 4.05 3.67 3.32 2.61 1.82 1.63 1.77 1.95 1.95 2.11 2.47 2.66 2.55 2.21 3.26 3.75 3.22 3.57 4.21 4.97 5.60 5.72 -0 117.69 8.76 5.17 4.20 18.27 12.96 5.68 5.69 4.03 4.82 2.77 2.11 1.89 2.45 1.56 1.40 2.13 3.48 2.69 1.60 1.39 1.59 1.78 2.04 2.13 2.90 2.99 3.54 3.58 3.21 3.01 3.18 3.99 4.39 6.40 3.06 5.08 10.63 8.41 5.76 3.98 2.98 2.29 1.86 1.60 1.62 1.77 1.93 1.87 1.47 1.39 1.64 2.03 2.37 2.59 2.93 2.34 1.77 1.99 2.23 2.51 3.55 3.92 4.20 -0 119.72 18.36 9.74 7.31 14.49 10.79 5.99 9.73 5.83 7.32 5.05 3.06 2.56 3.22 2.61 2.50 1.80 4.31 4.47 2.25 1.80 1.83 1.85 2.40 2.26 2.45 3.73 5.67 6.17 5.82 5.19 3.59 3.63 4.50 6.66 3.82 6.19 12.86 13.51 8.00 5.09 3.43 2.83 2.63 2.59 2.31 2.11 1.83 1.79 1.85 1.90 1.88 2.41 2.75 3.43 4.33 4.63 3.79 4.13 5.10 7.39 12.12 15.33 14.50 -0 105.24 13.02 9.48 10.70 26.08 15.05 13.49 22.70 18.06 8.50 5.91 5.29 6.06 5.81 2.37 2.17 3.41 5.07 2.65 1.83 1.71 1.53 1.84 2.16 2.33 3.41 5.01 7.59 6.89 5.19 4.80 4.80 4.92 5.60 4.09 5.64 6.05 12.83 9.26 6.48 4.47 3.40 3.28 3.15 2.41 2.03 1.73 1.68 1.77 1.99 2.39 3.34 4.05 4.40 5.50 7.54 9.34 5.72 3.71 4.02 5.87 6.40 7.98 9.36 -0 109.00 10.06 5.79 5.19 14.50 13.37 8.49 8.36 5.18 5.52 6.92 2.63 2.33 2.85 1.94 1.98 1.67 4.07 2.78 1.66 1.56 1.63 2.06 2.67 2.95 3.25 3.91 4.87 7.28 5.74 4.53 5.36 5.77 4.81 7.13 3.69 4.47 9.73 13.28 8.16 4.44 3.17 2.82 2.49 2.44 2.12 1.77 1.69 2.02 2.08 2.40 3.05 3.68 4.65 6.38 7.65 8.41 6.75 6.83 8.16 9.40 12.48 11.27 11.94 -0 116.99 18.80 10.98 9.74 22.34 13.87 8.48 5.92 4.88 4.29 3.52 2.85 2.90 4.55 3.13 1.95 1.81 3.88 3.30 2.03 1.84 1.68 1.63 2.24 2.44 2.96 4.19 5.27 5.92 5.74 4.75 4.62 4.11 4.90 8.33 7.81 5.97 6.55 13.04 7.91 4.84 3.89 3.42 2.66 2.06 1.92 1.86 2.01 2.15 2.15 1.95 2.10 2.25 2.36 2.57 3.13 4.91 5.93 4.52 4.54 7.37 11.32 11.09 10.42 -1 151.12 17.41 11.60 10.11 20.80 20.85 13.39 9.79 5.69 8.34 5.14 3.59 3.57 4.97 2.47 1.87 2.12 3.51 2.88 1.84 1.84 1.69 1.69 2.00 2.34 3.02 4.09 4.97 4.54 4.00 3.95 3.94 3.72 4.71 6.87 8.26 5.15 10.25 6.40 4.60 3.80 3.27 2.45 2.14 1.59 1.56 2.20 1.65 1.65 1.80 1.93 2.22 2.68 2.36 2.50 3.14 2.95 2.34 2.70 3.99 5.94 6.38 5.70 5.10 -1 115.75 11.42 6.17 5.42 15.74 9.85 10.44 7.82 4.45 9.10 4.10 2.84 3.11 3.94 2.12 2.14 3.46 2.97 2.39 1.70 1.44 1.56 1.88 2.21 2.55 3.03 4.25 7.46 9.00 7.19 6.27 6.35 5.01 5.70 8.05 11.12 9.66 14.82 9.31 6.50 4.37 3.13 2.81 2.47 2.40 2.14 1.60 1.58 2.07 1.83 1.79 2.10 2.33 2.65 2.51 3.16 3.81 4.17 4.66 4.87 4.83 4.13 3.29 2.80 -1 141.76 17.44 10.42 9.10 24.95 23.38 21.96 14.25 5.91 6.95 5.17 3.51 3.06 3.81 2.23 1.93 3.11 5.10 2.56 2.28 2.07 2.24 2.97 3.61 3.81 4.09 5.08 6.19 7.89 7.66 6.41 6.88 8.74 8.45 10.59 6.40 10.74 10.67 9.59 6.14 4.12 3.51 2.68 2.30 2.32 2.36 1.86 1.97 2.04 2.08 2.08 2.27 2.56 2.62 2.72 3.13 3.34 3.16 3.41 4.16 5.47 6.08 5.42 4.04 -1 116.18 17.47 9.42 7.04 27.62 24.13 6.77 7.63 5.66 4.83 4.68 3.51 3.67 5.87 3.05 1.99 1.96 2.44 3.41 2.06 1.81 1.74 2.27 2.71 2.50 2.56 2.99 2.83 2.79 3.07 3.20 3.75 3.76 3.16 6.14 9.13 6.76 13.03 8.19 4.56 3.74 3.32 2.69 2.31 1.92 2.34 2.92 2.84 3.08 3.26 3.92 5.12 7.02 7.92 7.10 7.81 6.95 6.55 7.02 7.06 8.57 7.90 7.34 6.97 -1 123.97 7.39 3.83 3.68 14.15 7.89 8.47 7.84 4.84 4.66 3.28 2.59 2.39 3.92 2.22 1.29 1.56 2.57 3.31 1.69 1.41 1.42 1.93 2.65 2.39 3.37 4.46 4.80 4.39 4.32 3.36 3.31 3.63 4.29 7.70 3.10 6.83 13.25 9.99 7.69 5.63 3.81 2.71 2.27 1.93 1.72 1.39 1.36 1.55 1.72 1.80 1.83 2.03 2.18 2.51 2.74 2.56 2.98 3.70 5.25 5.93 6.23 6.38 4.79 -1 136.16 11.30 6.75 6.04 20.95 11.96 10.96 11.38 4.72 10.89 4.48 3.02 3.22 7.41 3.02 2.87 4.18 3.41 2.73 1.94 1.78 1.95 1.99 1.96 2.35 2.73 4.01 5.15 7.64 8.53 5.42 4.48 4.75 4.61 6.66 5.58 3.83 11.52 9.26 7.09 4.30 3.79 3.80 3.01 2.60 2.27 2.13 2.37 2.53 3.06 3.31 2.78 3.15 4.30 5.02 4.56 4.51 4.09 3.20 3.52 5.63 6.79 5.59 6.80 -1 113.37 17.22 9.28 8.31 20.58 12.83 10.74 5.88 6.81 6.38 3.35 2.88 3.53 5.50 4.79 2.10 2.18 3.05 3.14 1.92 1.75 1.59 1.83 2.30 2.43 3.00 4.06 7.25 6.94 4.82 4.13 3.47 3.53 3.61 4.27 7.09 5.76 10.05 12.13 9.85 5.93 4.58 4.05 3.67 3.19 2.56 1.99 2.10 2.13 2.06 1.95 2.08 2.49 2.90 2.96 3.41 4.10 3.18 2.86 3.67 4.71 4.38 4.77 5.28 -1 118.27 17.97 9.57 7.75 22.46 13.33 10.49 8.19 6.66 5.54 3.28 2.83 3.30 4.35 2.41 2.26 2.80 2.62 2.17 1.59 1.71 1.89 2.26 2.53 2.33 3.16 4.52 4.57 4.96 4.59 4.44 3.55 4.43 5.17 6.73 8.69 4.70 7.14 9.03 6.04 4.83 3.69 2.92 2.23 2.04 1.89 1.72 1.89 2.24 2.39 2.30 2.87 2.94 2.60 2.84 2.74 2.46 2.77 3.49 4.97 5.94 5.58 4.86 3.90 -1 108.42 13.04 7.54 6.76 14.78 16.60 9.60 12.70 5.17 9.75 7.01 3.24 2.99 6.76 5.11 2.16 2.30 3.17 3.49 1.78 1.59 1.69 2.03 3.07 3.72 3.31 4.55 7.05 7.83 6.56 5.30 5.99 5.83 5.25 6.18 5.93 10.80 21.75 14.54 10.69 8.93 7.28 6.98 6.60 4.95 5.06 5.86 6.09 5.21 4.41 4.32 5.34 6.85 7.50 7.29 8.07 12.23 11.22 11.12 12.65 14.47 15.27 19.04 17.80 -1 143.75 18.85 10.12 7.80 19.51 17.94 8.90 8.23 5.47 4.93 4.02 3.49 4.59 5.58 5.26 2.43 3.01 4.69 3.12 2.36 1.93 2.15 2.51 2.73 2.48 2.31 3.01 4.32 5.67 8.55 7.34 5.62 5.25 5.24 7.76 8.11 6.81 14.73 15.35 11.23 7.46 4.97 4.00 3.00 2.76 2.65 2.56 2.89 3.12 3.03 3.02 3.38 3.80 3.68 3.08 3.33 4.48 3.98 3.51 3.71 5.70 7.91 7.99 7.85 -1 175.16 9.71 5.17 4.18 15.21 7.34 6.39 7.15 8.12 7.28 3.44 2.27 1.93 3.30 2.11 1.51 1.71 2.98 4.77 2.23 1.52 1.52 1.74 2.10 2.14 2.46 3.60 5.62 7.35 7.77 7.25 4.77 5.18 5.89 7.50 6.54 6.88 7.30 10.15 11.05 7.31 4.39 3.13 2.41 2.33 2.20 2.09 2.44 2.24 1.90 1.78 2.09 2.53 2.67 2.61 2.79 3.09 4.72 4.14 4.31 5.70 5.99 5.45 6.77 -1 149.43 19.01 10.06 7.56 21.76 11.86 10.97 12.24 9.34 11.99 8.95 4.02 3.83 4.60 3.12 2.45 2.82 4.20 4.62 2.59 2.29 2.16 2.47 2.59 3.12 4.33 4.38 5.21 5.95 3.79 3.44 3.85 4.24 4.78 6.26 8.88 7.25 12.22 7.56 4.64 3.40 3.00 2.91 2.50 1.98 1.73 1.60 1.69 1.77 1.62 1.72 2.06 2.27 2.55 2.84 3.15 2.57 2.55 2.62 2.95 4.22 4.83 5.28 5.55 -1 160.19 13.42 9.37 8.43 21.27 13.37 8.73 7.64 5.93 6.41 3.48 2.54 2.27 2.88 2.01 1.61 1.75 3.56 2.47 1.40 1.30 1.42 1.45 1.71 1.87 2.50 3.46 3.14 4.71 3.99 3.85 3.40 3.05 3.70 3.94 3.49 6.34 10.07 8.38 6.38 4.29 3.37 2.64 2.40 2.31 2.24 1.96 2.03 2.06 2.22 2.14 2.92 3.44 3.49 3.56 3.68 4.01 3.75 4.13 3.91 3.59 3.86 4.72 6.67 -1 139.26 18.43 9.97 8.78 23.26 16.62 8.77 11.14 9.67 6.42 3.56 2.74 2.24 3.41 2.55 2.16 2.53 3.82 3.37 1.98 1.82 1.85 2.07 2.64 3.16 4.42 5.17 5.24 4.91 4.39 3.98 3.82 5.69 8.10 3.79 4.10 11.10 9.61 6.19 4.65 3.50 3.50 3.24 3.10 2.71 2.11 1.95 2.22 2.30 2.42 2.15 2.71 2.93 3.00 2.75 3.06 2.85 2.68 3.10 3.51 4.03 4.65 6.27 8.21 -1 126.76 17.11 12.52 12.83 30.09 30.52 12.97 8.32 4.96 4.60 4.63 3.63 2.90 3.63 2.21 1.46 1.39 2.75 2.06 1.41 1.25 1.27 1.42 1.81 2.12 2.96 4.22 4.00 4.06 4.06 3.63 3.60 3.43 4.03 3.19 3.64 5.68 9.48 11.74 7.93 5.20 3.83 3.21 3.03 2.67 2.25 1.84 2.11 2.01 1.93 2.04 2.73 3.56 4.57 5.67 7.57 8.20 6.80 6.58 5.94 5.91 7.89 9.17 11.33 -1 140.91 20.67 10.63 7.19 18.24 12.12 6.84 10.53 9.36 8.14 7.86 4.29 3.85 4.25 3.03 2.72 2.86 4.00 4.34 3.06 2.49 2.05 2.27 2.81 2.47 2.91 4.20 5.73 6.55 5.11 4.02 4.39 4.09 4.95 4.53 4.66 6.91 13.75 10.34 5.75 4.31 3.64 2.89 2.57 2.25 2.20 1.91 1.84 1.95 2.17 1.84 1.77 1.71 2.06 2.37 2.46 2.67 3.07 3.32 3.42 4.59 6.99 7.46 8.55 -1 148.94 19.98 13.53 14.87 36.44 16.51 13.96 13.61 11.31 11.93 9.07 9.37 6.68 5.74 4.16 2.23 2.20 3.39 3.14 1.94 1.76 1.87 2.08 2.48 2.83 4.16 4.27 4.15 4.82 4.66 5.09 4.73 3.96 4.81 6.40 4.78 5.90 5.80 9.57 5.99 4.39 3.53 2.51 2.18 2.04 1.77 1.53 1.46 1.39 1.39 1.34 1.66 2.71 3.28 3.76 3.43 2.60 2.59 3.13 4.78 7.95 8.74 6.43 5.52 -1 93.60 7.64 2.97 2.98 16.63 9.69 6.19 10.46 8.52 6.15 5.07 2.66 2.80 3.48 2.35 1.99 2.19 3.87 3.86 2.57 2.07 2.20 2.75 2.74 2.82 2.80 4.28 8.14 8.67 7.12 7.72 6.18 5.38 4.16 7.22 12.12 5.78 8.94 17.19 14.60 8.65 6.00 4.65 4.22 4.29 3.74 2.80 3.19 4.13 3.49 3.24 4.20 4.52 4.24 4.25 4.33 4.39 4.33 4.67 4.78 4.29 4.37 7.17 8.72 -1 97.91 6.17 2.27 3.29 14.49 6.19 7.29 12.34 7.48 6.29 5.40 2.99 2.88 4.83 3.02 2.03 3.60 6.50 4.28 2.45 2.17 2.13 2.73 2.82 2.57 2.93 4.16 5.48 8.64 8.32 5.14 4.66 5.44 6.39 4.92 6.00 9.96 16.55 19.18 16.17 11.97 8.08 6.32 5.28 5.25 3.93 3.01 3.04 3.22 3.35 3.68 4.55 4.61 4.61 5.16 4.97 5.16 5.81 5.26 5.35 5.98 6.23 6.79 6.87 +53 64 +0 85.26 6.84 2.54 2.54 12.43 7.85 4.88 8.15 6.11 4.13 3.45 1.94 1.77 2.94 2.11 1.35 2.26 2.93 2.57 1.48 1.32 1.43 1.98 2.45 2.92 3.31 4.28 4.90 7.44 8.86 6.88 5.43 5.24 4.89 6.01 3.73 8.70 12.66 17.50 14.06 6.77 4.43 3.63 3.12 2.82 2.58 1.99 1.83 1.63 1.75 2.12 2.28 3.09 3.79 5.73 6.19 5.95 6.45 6.43 6.82 11.03 15.07 14.29 12.99 +0 63.47 8.66 4.18 4.72 16.50 12.25 10.63 7.08 3.45 3.55 3.51 2.86 2.46 3.99 2.62 1.48 1.39 2.92 2.54 1.58 1.53 1.68 2.09 2.38 2.74 3.31 4.40 5.46 6.34 7.23 6.09 4.47 4.57 5.50 7.67 2.68 7.95 13.90 12.13 8.61 5.63 3.86 3.11 2.80 2.35 2.19 2.03 1.78 1.75 1.73 1.69 1.70 1.76 2.31 3.45 5.50 6.60 6.40 5.42 4.87 5.92 9.52 9.85 7.68 +0 70.40 6.91 2.91 4.01 15.21 13.34 6.77 7.93 5.01 7.62 2.58 1.70 2.04 3.59 2.28 1.09 1.45 1.44 2.55 1.61 1.46 1.25 1.42 1.66 1.56 1.90 2.84 4.89 5.32 5.67 4.17 3.24 3.36 3.95 4.90 4.41 5.22 12.52 12.40 8.03 4.34 3.02 2.52 2.15 1.95 1.89 1.63 2.00 2.52 2.34 1.87 2.14 2.80 2.78 2.84 3.27 5.86 6.01 4.79 5.36 7.21 10.70 10.23 11.85 +0 75.82 7.61 4.11 5.70 25.39 26.53 15.21 7.37 3.84 5.98 3.56 2.17 2.10 3.65 1.93 1.11 1.62 3.22 2.99 1.43 1.29 1.54 1.95 2.24 2.07 2.45 3.69 5.77 5.66 4.83 4.35 4.15 3.82 4.73 5.80 5.42 3.65 12.47 14.89 9.34 5.51 3.75 2.90 2.34 2.07 2.01 1.92 1.70 1.87 1.78 2.03 2.44 3.57 4.00 4.40 4.80 7.31 6.44 5.65 6.69 9.27 12.55 14.76 13.30 +0 73.42 8.05 3.89 5.22 25.29 19.16 15.27 8.25 4.55 4.95 2.43 2.40 2.78 3.71 1.72 1.26 1.23 2.24 4.20 1.53 1.17 1.28 1.59 1.70 2.00 2.22 3.47 5.32 5.44 5.77 5.06 4.55 4.31 5.03 6.61 3.31 8.13 7.52 12.69 7.62 5.94 3.80 3.03 2.55 2.57 2.87 2.64 2.81 2.96 2.22 2.24 2.57 3.25 3.80 4.54 6.70 9.73 10.17 7.45 7.19 7.13 7.18 9.52 9.63 +0 82.97 13.26 7.90 8.11 32.19 27.00 15.55 8.77 5.47 9.91 5.88 3.68 3.97 4.81 3.17 2.30 2.27 3.39 5.64 2.69 2.26 2.30 2.58 3.09 3.38 3.73 5.87 8.08 8.70 8.77 8.45 6.39 4.43 5.98 4.19 6.71 6.47 11.18 12.01 8.82 5.81 4.32 3.41 2.89 2.94 2.74 2.38 2.35 2.34 2.26 2.26 2.48 2.74 2.98 3.57 5.25 8.30 8.72 7.21 6.51 6.06 6.37 7.09 8.47 +0 80.02 6.13 2.77 5.75 26.50 30.46 9.31 7.40 3.69 10.01 4.52 2.27 2.50 4.39 2.90 2.17 1.32 1.66 4.05 1.58 1.31 1.48 1.60 1.76 2.26 2.73 4.86 7.78 10.25 7.97 6.97 4.91 5.13 5.17 6.33 9.02 9.07 15.82 12.78 10.15 7.30 5.04 3.90 3.42 2.96 2.93 3.00 2.90 2.74 2.84 3.59 4.53 5.95 6.95 8.18 10.02 11.30 9.68 6.43 7.81 9.73 10.32 13.50 17.18 +0 83.79 7.61 3.36 3.77 10.75 8.25 6.53 10.78 6.37 6.27 3.11 2.12 2.42 3.76 2.35 1.78 2.70 3.18 3.66 1.36 1.47 2.06 2.10 2.45 2.22 3.02 4.51 5.97 7.48 6.11 5.46 5.03 4.16 4.73 4.56 5.68 5.84 11.30 13.15 15.64 8.78 5.61 3.53 2.89 2.41 2.24 1.93 2.00 2.12 2.09 2.19 2.01 2.06 3.11 6.02 9.85 8.65 6.12 6.01 6.07 6.34 7.92 9.26 10.56 +0 82.49 11.91 6.20 5.21 16.29 13.52 9.44 6.92 5.65 5.82 3.07 2.68 3.45 5.62 3.74 1.61 1.86 2.80 3.64 1.63 1.64 2.02 2.25 2.79 2.74 3.68 5.01 7.55 8.13 9.87 8.50 5.51 5.60 7.10 3.38 6.97 12.03 15.04 13.84 7.01 4.22 3.47 3.34 3.20 2.57 1.81 1.66 1.87 2.30 2.44 2.72 3.07 4.01 4.32 4.65 6.35 6.96 5.00 4.57 5.23 6.85 9.67 11.69 12.86 +0 68.89 5.80 2.90 4.09 20.69 19.29 9.53 7.60 4.15 7.39 4.59 1.81 1.95 2.76 1.83 1.12 1.10 1.95 2.02 1.27 1.31 1.40 1.89 2.83 3.18 3.31 3.26 3.24 3.94 4.74 6.57 4.72 6.53 7.52 4.24 5.76 8.25 10.81 8.49 5.75 3.85 2.85 2.57 2.61 3.04 3.59 3.48 3.60 3.20 2.45 2.34 2.80 3.50 4.36 5.42 8.67 10.57 9.91 10.16 10.26 10.10 12.73 15.65 16.93 +0 78.43 8.48 4.03 4.92 22.06 13.12 10.69 9.82 6.60 6.23 2.92 2.24 3.46 9.28 4.71 2.20 2.67 3.25 5.60 2.12 1.98 1.98 2.05 2.17 2.51 2.65 3.72 5.64 6.32 6.31 6.26 5.81 4.64 5.92 8.90 4.59 6.06 13.36 17.49 10.52 7.78 6.29 4.85 4.27 3.29 2.57 2.40 2.76 3.04 2.66 3.04 3.69 3.75 3.36 3.27 4.03 5.69 4.98 4.41 5.47 6.13 7.44 7.64 9.00 +0 80.80 7.25 3.21 3.81 17.28 11.61 6.08 6.67 4.26 4.60 2.61 2.25 3.13 7.29 5.55 2.24 1.67 3.40 5.41 2.56 2.43 2.41 2.21 2.69 2.98 3.07 3.95 6.97 9.41 10.09 9.89 9.09 6.62 7.36 6.48 5.88 8.27 13.11 17.60 12.27 9.03 4.94 4.12 4.68 5.24 4.09 3.28 2.43 2.36 2.17 1.98 1.99 2.25 2.92 4.05 6.36 8.45 6.30 5.38 4.92 6.03 6.94 9.60 13.09 +0 82.93 13.59 6.35 5.66 19.80 15.10 10.74 7.96 6.72 4.65 3.12 2.40 2.61 4.88 5.32 1.76 2.40 2.77 5.16 2.12 1.75 1.76 2.29 2.61 2.85 2.89 3.64 6.08 7.77 8.56 8.38 6.97 5.20 5.52 7.52 4.60 8.19 15.22 18.95 13.84 8.16 5.24 5.44 6.30 5.70 4.17 3.57 3.04 2.52 2.34 2.97 3.96 6.33 8.30 7.74 7.70 8.73 8.48 9.52 10.41 13.74 20.59 23.71 19.36 +0 76.95 7.38 3.02 3.83 23.54 12.48 12.49 11.57 5.76 12.87 5.07 3.14 3.28 6.41 6.11 5.17 3.85 4.96 5.45 3.07 4.52 5.21 5.13 4.24 4.75 6.20 8.97 11.98 10.15 7.86 7.09 5.53 6.36 5.59 8.80 11.37 7.63 16.49 16.45 8.01 7.12 3.36 2.46 2.41 2.89 3.02 2.71 2.23 2.01 1.74 1.98 2.44 2.37 2.94 4.50 6.42 6.99 5.58 5.36 5.93 6.46 7.17 10.78 11.81 +0 135.42 17.59 10.05 8.95 19.79 16.29 11.08 8.53 4.58 10.50 4.53 3.27 3.37 4.83 2.97 1.99 2.10 3.95 3.21 2.01 1.78 1.95 1.93 2.38 2.46 3.00 4.69 5.98 4.99 5.32 5.45 4.47 4.61 4.69 6.91 4.22 5.31 10.55 11.51 6.70 4.21 3.10 2.31 2.07 2.14 2.10 1.87 2.21 2.14 2.07 2.01 2.33 2.52 2.37 2.63 2.17 1.89 1.80 2.06 2.93 4.22 5.21 4.40 4.07 +0 119.36 11.32 6.99 7.59 20.61 21.32 15.35 12.25 4.87 6.67 7.36 4.79 4.48 6.75 2.94 1.93 2.01 4.42 4.46 2.30 1.64 1.72 2.20 2.59 2.66 3.60 3.79 6.60 8.18 5.34 4.49 4.40 4.67 5.15 7.66 3.96 8.67 11.96 9.17 5.82 4.66 4.08 2.93 2.15 1.66 1.39 1.52 1.54 1.74 1.39 1.37 1.48 1.56 1.74 1.97 2.07 2.33 2.15 2.09 2.23 3.10 4.04 3.74 3.06 +0 128.92 16.23 9.12 8.27 19.07 15.79 7.85 6.17 4.29 5.20 4.01 2.87 3.61 3.45 2.81 2.06 2.44 3.24 2.29 1.61 1.47 1.53 1.67 1.71 2.04 2.39 3.28 3.71 3.33 3.27 3.29 2.63 2.53 2.96 4.93 3.02 5.10 6.65 8.22 5.58 3.70 2.35 2.00 1.75 1.55 1.48 1.39 1.51 1.50 1.35 1.39 1.69 1.98 2.15 2.85 2.86 2.67 2.94 3.82 4.80 5.55 5.53 4.65 4.38 +0 117.90 17.31 10.25 7.81 23.71 17.68 11.99 6.70 4.15 6.78 5.84 3.78 3.58 3.93 2.58 2.07 2.07 3.28 3.53 1.98 1.74 1.64 1.88 2.43 2.32 3.54 4.59 7.30 7.49 5.69 4.53 3.95 4.36 4.28 4.37 6.11 6.21 12.23 9.42 5.84 4.46 3.20 2.81 2.15 1.95 1.84 1.70 1.84 1.98 1.88 2.41 2.85 3.36 4.13 4.19 3.85 5.53 7.70 5.90 5.67 10.06 13.93 12.87 10.69 +0 98.91 15.65 9.18 8.13 16.86 14.80 8.93 5.54 5.88 6.61 2.98 2.62 2.91 3.49 2.14 1.68 1.62 2.51 2.72 1.69 1.42 1.54 1.94 2.10 1.84 2.33 2.84 4.10 4.74 5.01 4.76 3.94 4.19 4.62 5.86 6.61 5.22 10.43 8.32 8.43 7.11 5.60 4.02 3.23 2.46 2.14 1.70 1.49 1.52 1.41 1.59 2.20 2.63 3.04 3.56 4.17 3.31 3.06 3.22 3.73 4.33 4.96 3.61 3.78 +0 116.34 18.64 10.86 9.32 20.57 14.39 6.88 4.70 5.62 5.19 3.36 2.72 2.62 3.15 2.19 1.78 1.92 2.61 2.08 1.81 1.48 1.57 1.59 1.71 1.83 2.37 3.66 4.13 3.17 2.90 3.14 3.81 3.00 3.35 4.21 3.80 4.04 8.54 8.26 5.60 3.54 2.33 2.05 1.82 1.73 1.75 1.82 1.98 1.70 1.79 1.60 1.82 2.11 2.31 2.57 3.13 4.14 3.50 2.08 2.55 4.82 5.97 5.67 5.83 +0 112.50 10.62 7.50 10.52 29.30 46.07 32.71 21.40 11.48 6.75 5.37 4.14 3.62 3.32 2.22 2.17 3.20 4.37 3.07 2.22 1.93 2.14 3.13 4.17 5.35 6.21 5.81 6.94 7.37 7.15 5.14 5.62 6.85 9.22 11.54 5.33 7.92 10.82 11.16 7.71 5.31 3.87 2.76 2.64 2.34 2.06 2.04 2.15 1.95 1.60 1.62 1.71 1.84 2.35 3.02 3.16 2.88 3.20 3.90 5.83 6.19 5.79 6.18 6.36 +0 107.51 8.64 4.56 4.27 14.35 11.23 6.28 5.61 3.87 5.45 2.39 1.75 1.65 2.77 1.63 1.21 1.17 2.22 2.41 1.22 1.09 1.19 1.45 1.84 1.86 2.82 4.77 5.40 4.94 4.12 4.15 3.00 3.61 3.42 6.38 7.11 4.91 10.07 10.80 6.23 4.28 3.32 2.76 2.26 2.57 2.57 2.33 2.27 2.56 2.15 2.94 4.21 5.67 4.99 5.09 6.65 6.69 7.38 8.45 8.70 7.82 10.37 16.09 18.09 +0 109.76 9.37 5.56 4.91 17.83 11.67 8.12 7.05 5.97 5.14 2.65 2.18 2.13 3.38 2.03 2.45 3.25 2.16 1.95 1.53 1.32 1.30 1.62 1.74 1.93 2.72 3.86 5.62 6.82 5.78 4.09 3.84 4.31 4.23 5.47 9.17 5.04 8.71 10.51 6.73 4.37 2.99 2.91 2.93 2.71 2.32 1.86 2.26 2.75 2.51 2.98 3.94 5.08 4.66 4.86 5.15 5.15 4.59 4.95 5.77 6.37 5.97 5.17 4.70 +0 125.93 8.93 4.69 3.99 14.50 13.09 6.49 6.19 5.85 5.48 2.67 2.06 2.17 3.71 2.37 1.60 3.51 3.77 2.43 1.63 1.60 1.58 1.80 2.03 2.42 3.08 4.38 7.01 8.91 6.39 4.43 4.00 3.82 4.25 5.73 3.79 6.77 11.29 9.49 6.15 3.87 2.95 2.61 2.36 1.94 1.54 1.36 1.71 2.20 2.73 3.28 2.72 2.42 2.38 2.48 2.52 2.54 2.34 2.40 2.86 3.89 5.78 5.23 4.60 +0 130.35 15.49 8.09 5.73 16.30 12.16 7.34 8.76 5.09 5.93 3.11 2.62 2.91 4.09 2.61 1.66 2.19 3.67 3.18 1.85 1.55 1.65 1.68 2.09 1.96 3.02 4.42 7.52 6.24 5.11 4.58 4.48 4.72 5.31 7.10 4.59 5.55 11.27 10.14 5.57 3.55 2.77 2.17 1.92 1.74 1.69 1.53 1.57 1.99 1.66 1.86 2.22 2.53 2.46 2.63 3.79 4.01 3.03 3.05 3.98 6.66 5.72 6.57 8.66 +0 132.83 11.01 5.96 5.13 16.65 10.52 7.55 6.87 4.70 7.30 3.23 2.21 2.61 4.09 2.73 1.90 2.92 4.53 3.48 1.99 1.62 1.58 1.66 2.20 2.24 2.39 3.36 5.79 5.74 5.50 4.67 4.07 3.73 4.09 4.92 7.60 5.08 10.19 13.16 11.88 9.54 6.69 4.59 3.51 2.98 2.84 2.47 2.11 2.26 2.38 2.76 3.11 3.21 3.16 3.42 4.44 5.48 3.95 3.65 3.84 4.86 6.18 5.29 6.32 +0 108.41 16.48 9.07 8.01 18.58 14.91 9.22 6.60 4.92 6.88 4.24 2.85 2.38 2.90 2.48 2.42 2.86 2.78 2.44 2.04 1.91 2.06 2.27 2.55 2.55 3.00 4.39 6.08 6.77 5.98 4.99 4.33 4.50 5.52 6.64 4.78 6.28 11.18 7.96 5.65 4.51 3.18 2.33 1.90 1.69 1.69 1.66 1.82 2.31 2.18 2.38 2.61 2.90 3.03 3.16 3.97 4.54 4.92 5.83 7.22 8.50 7.58 7.05 5.82 +0 110.23 16.21 8.88 8.11 17.02 12.08 13.06 7.20 4.55 8.90 3.42 2.73 3.04 3.79 2.35 1.95 1.73 2.40 2.79 1.85 1.55 1.92 2.55 3.07 2.87 3.29 4.10 5.70 6.78 4.53 7.11 6.37 5.79 6.44 7.11 3.70 8.85 13.31 10.28 9.18 8.48 8.15 6.27 5.47 4.75 3.63 3.33 4.05 4.66 4.04 3.28 3.22 3.32 3.90 4.19 4.50 5.01 4.16 3.56 4.18 5.89 6.63 6.17 5.91 +0 113.05 8.28 4.37 3.47 13.52 8.38 7.04 10.36 6.50 5.49 2.71 1.92 2.22 4.11 2.00 1.50 1.76 2.42 2.17 1.50 1.28 1.69 1.70 1.91 1.84 2.77 4.06 5.78 5.28 5.67 5.23 3.94 4.16 4.64 5.77 8.32 5.03 6.55 14.05 9.74 7.32 5.43 4.05 3.67 3.32 2.61 1.82 1.63 1.77 1.95 1.95 2.11 2.47 2.66 2.55 2.21 3.26 3.75 3.22 3.57 4.21 4.97 5.60 5.72 +0 117.69 8.76 5.17 4.20 18.27 12.96 5.68 5.69 4.03 4.82 2.77 2.11 1.89 2.45 1.56 1.40 2.13 3.48 2.69 1.60 1.39 1.59 1.78 2.04 2.13 2.90 2.99 3.54 3.58 3.21 3.01 3.18 3.99 4.39 6.40 3.06 5.08 10.63 8.41 5.76 3.98 2.98 2.29 1.86 1.60 1.62 1.77 1.93 1.87 1.47 1.39 1.64 2.03 2.37 2.59 2.93 2.34 1.77 1.99 2.23 2.51 3.55 3.92 4.20 +0 119.72 18.36 9.74 7.31 14.49 10.79 5.99 9.73 5.83 7.32 5.05 3.06 2.56 3.22 2.61 2.50 1.80 4.31 4.47 2.25 1.80 1.83 1.85 2.40 2.26 2.45 3.73 5.67 6.17 5.82 5.19 3.59 3.63 4.50 6.66 3.82 6.19 12.86 13.51 8.00 5.09 3.43 2.83 2.63 2.59 2.31 2.11 1.83 1.79 1.85 1.90 1.88 2.41 2.75 3.43 4.33 4.63 3.79 4.13 5.10 7.39 12.12 15.33 14.50 +0 105.24 13.02 9.48 10.70 26.08 15.05 13.49 22.70 18.06 8.50 5.91 5.29 6.06 5.81 2.37 2.17 3.41 5.07 2.65 1.83 1.71 1.53 1.84 2.16 2.33 3.41 5.01 7.59 6.89 5.19 4.80 4.80 4.92 5.60 4.09 5.64 6.05 12.83 9.26 6.48 4.47 3.40 3.28 3.15 2.41 2.03 1.73 1.68 1.77 1.99 2.39 3.34 4.05 4.40 5.50 7.54 9.34 5.72 3.71 4.02 5.87 6.40 7.98 9.36 +0 109.00 10.06 5.79 5.19 14.50 13.37 8.49 8.36 5.18 5.52 6.92 2.63 2.33 2.85 1.94 1.98 1.67 4.07 2.78 1.66 1.56 1.63 2.06 2.67 2.95 3.25 3.91 4.87 7.28 5.74 4.53 5.36 5.77 4.81 7.13 3.69 4.47 9.73 13.28 8.16 4.44 3.17 2.82 2.49 2.44 2.12 1.77 1.69 2.02 2.08 2.40 3.05 3.68 4.65 6.38 7.65 8.41 6.75 6.83 8.16 9.40 12.48 11.27 11.94 +0 116.99 18.80 10.98 9.74 22.34 13.87 8.48 5.92 4.88 4.29 3.52 2.85 2.90 4.55 3.13 1.95 1.81 3.88 3.30 2.03 1.84 1.68 1.63 2.24 2.44 2.96 4.19 5.27 5.92 5.74 4.75 4.62 4.11 4.90 8.33 7.81 5.97 6.55 13.04 7.91 4.84 3.89 3.42 2.66 2.06 1.92 1.86 2.01 2.15 2.15 1.95 2.10 2.25 2.36 2.57 3.13 4.91 5.93 4.52 4.54 7.37 11.32 11.09 10.42 +1 151.12 17.41 11.60 10.11 20.80 20.85 13.39 9.79 5.69 8.34 5.14 3.59 3.57 4.97 2.47 1.87 2.12 3.51 2.88 1.84 1.84 1.69 1.69 2.00 2.34 3.02 4.09 4.97 4.54 4.00 3.95 3.94 3.72 4.71 6.87 8.26 5.15 10.25 6.40 4.60 3.80 3.27 2.45 2.14 1.59 1.56 2.20 1.65 1.65 1.80 1.93 2.22 2.68 2.36 2.50 3.14 2.95 2.34 2.70 3.99 5.94 6.38 5.70 5.10 +1 115.75 11.42 6.17 5.42 15.74 9.85 10.44 7.82 4.45 9.10 4.10 2.84 3.11 3.94 2.12 2.14 3.46 2.97 2.39 1.70 1.44 1.56 1.88 2.21 2.55 3.03 4.25 7.46 9.00 7.19 6.27 6.35 5.01 5.70 8.05 11.12 9.66 14.82 9.31 6.50 4.37 3.13 2.81 2.47 2.40 2.14 1.60 1.58 2.07 1.83 1.79 2.10 2.33 2.65 2.51 3.16 3.81 4.17 4.66 4.87 4.83 4.13 3.29 2.80 +1 141.76 17.44 10.42 9.10 24.95 23.38 21.96 14.25 5.91 6.95 5.17 3.51 3.06 3.81 2.23 1.93 3.11 5.10 2.56 2.28 2.07 2.24 2.97 3.61 3.81 4.09 5.08 6.19 7.89 7.66 6.41 6.88 8.74 8.45 10.59 6.40 10.74 10.67 9.59 6.14 4.12 3.51 2.68 2.30 2.32 2.36 1.86 1.97 2.04 2.08 2.08 2.27 2.56 2.62 2.72 3.13 3.34 3.16 3.41 4.16 5.47 6.08 5.42 4.04 +1 116.18 17.47 9.42 7.04 27.62 24.13 6.77 7.63 5.66 4.83 4.68 3.51 3.67 5.87 3.05 1.99 1.96 2.44 3.41 2.06 1.81 1.74 2.27 2.71 2.50 2.56 2.99 2.83 2.79 3.07 3.20 3.75 3.76 3.16 6.14 9.13 6.76 13.03 8.19 4.56 3.74 3.32 2.69 2.31 1.92 2.34 2.92 2.84 3.08 3.26 3.92 5.12 7.02 7.92 7.10 7.81 6.95 6.55 7.02 7.06 8.57 7.90 7.34 6.97 +1 123.97 7.39 3.83 3.68 14.15 7.89 8.47 7.84 4.84 4.66 3.28 2.59 2.39 3.92 2.22 1.29 1.56 2.57 3.31 1.69 1.41 1.42 1.93 2.65 2.39 3.37 4.46 4.80 4.39 4.32 3.36 3.31 3.63 4.29 7.70 3.10 6.83 13.25 9.99 7.69 5.63 3.81 2.71 2.27 1.93 1.72 1.39 1.36 1.55 1.72 1.80 1.83 2.03 2.18 2.51 2.74 2.56 2.98 3.70 5.25 5.93 6.23 6.38 4.79 +1 136.16 11.30 6.75 6.04 20.95 11.96 10.96 11.38 4.72 10.89 4.48 3.02 3.22 7.41 3.02 2.87 4.18 3.41 2.73 1.94 1.78 1.95 1.99 1.96 2.35 2.73 4.01 5.15 7.64 8.53 5.42 4.48 4.75 4.61 6.66 5.58 3.83 11.52 9.26 7.09 4.30 3.79 3.80 3.01 2.60 2.27 2.13 2.37 2.53 3.06 3.31 2.78 3.15 4.30 5.02 4.56 4.51 4.09 3.20 3.52 5.63 6.79 5.59 6.80 +1 113.37 17.22 9.28 8.31 20.58 12.83 10.74 5.88 6.81 6.38 3.35 2.88 3.53 5.50 4.79 2.10 2.18 3.05 3.14 1.92 1.75 1.59 1.83 2.30 2.43 3.00 4.06 7.25 6.94 4.82 4.13 3.47 3.53 3.61 4.27 7.09 5.76 10.05 12.13 9.85 5.93 4.58 4.05 3.67 3.19 2.56 1.99 2.10 2.13 2.06 1.95 2.08 2.49 2.90 2.96 3.41 4.10 3.18 2.86 3.67 4.71 4.38 4.77 5.28 +1 118.27 17.97 9.57 7.75 22.46 13.33 10.49 8.19 6.66 5.54 3.28 2.83 3.30 4.35 2.41 2.26 2.80 2.62 2.17 1.59 1.71 1.89 2.26 2.53 2.33 3.16 4.52 4.57 4.96 4.59 4.44 3.55 4.43 5.17 6.73 8.69 4.70 7.14 9.03 6.04 4.83 3.69 2.92 2.23 2.04 1.89 1.72 1.89 2.24 2.39 2.30 2.87 2.94 2.60 2.84 2.74 2.46 2.77 3.49 4.97 5.94 5.58 4.86 3.90 +1 108.42 13.04 7.54 6.76 14.78 16.60 9.60 12.70 5.17 9.75 7.01 3.24 2.99 6.76 5.11 2.16 2.30 3.17 3.49 1.78 1.59 1.69 2.03 3.07 3.72 3.31 4.55 7.05 7.83 6.56 5.30 5.99 5.83 5.25 6.18 5.93 10.80 21.75 14.54 10.69 8.93 7.28 6.98 6.60 4.95 5.06 5.86 6.09 5.21 4.41 4.32 5.34 6.85 7.50 7.29 8.07 12.23 11.22 11.12 12.65 14.47 15.27 19.04 17.80 +1 143.75 18.85 10.12 7.80 19.51 17.94 8.90 8.23 5.47 4.93 4.02 3.49 4.59 5.58 5.26 2.43 3.01 4.69 3.12 2.36 1.93 2.15 2.51 2.73 2.48 2.31 3.01 4.32 5.67 8.55 7.34 5.62 5.25 5.24 7.76 8.11 6.81 14.73 15.35 11.23 7.46 4.97 4.00 3.00 2.76 2.65 2.56 2.89 3.12 3.03 3.02 3.38 3.80 3.68 3.08 3.33 4.48 3.98 3.51 3.71 5.70 7.91 7.99 7.85 +1 175.16 9.71 5.17 4.18 15.21 7.34 6.39 7.15 8.12 7.28 3.44 2.27 1.93 3.30 2.11 1.51 1.71 2.98 4.77 2.23 1.52 1.52 1.74 2.10 2.14 2.46 3.60 5.62 7.35 7.77 7.25 4.77 5.18 5.89 7.50 6.54 6.88 7.30 10.15 11.05 7.31 4.39 3.13 2.41 2.33 2.20 2.09 2.44 2.24 1.90 1.78 2.09 2.53 2.67 2.61 2.79 3.09 4.72 4.14 4.31 5.70 5.99 5.45 6.77 +1 149.43 19.01 10.06 7.56 21.76 11.86 10.97 12.24 9.34 11.99 8.95 4.02 3.83 4.60 3.12 2.45 2.82 4.20 4.62 2.59 2.29 2.16 2.47 2.59 3.12 4.33 4.38 5.21 5.95 3.79 3.44 3.85 4.24 4.78 6.26 8.88 7.25 12.22 7.56 4.64 3.40 3.00 2.91 2.50 1.98 1.73 1.60 1.69 1.77 1.62 1.72 2.06 2.27 2.55 2.84 3.15 2.57 2.55 2.62 2.95 4.22 4.83 5.28 5.55 +1 160.19 13.42 9.37 8.43 21.27 13.37 8.73 7.64 5.93 6.41 3.48 2.54 2.27 2.88 2.01 1.61 1.75 3.56 2.47 1.40 1.30 1.42 1.45 1.71 1.87 2.50 3.46 3.14 4.71 3.99 3.85 3.40 3.05 3.70 3.94 3.49 6.34 10.07 8.38 6.38 4.29 3.37 2.64 2.40 2.31 2.24 1.96 2.03 2.06 2.22 2.14 2.92 3.44 3.49 3.56 3.68 4.01 3.75 4.13 3.91 3.59 3.86 4.72 6.67 +1 139.26 18.43 9.97 8.78 23.26 16.62 8.77 11.14 9.67 6.42 3.56 2.74 2.24 3.41 2.55 2.16 2.53 3.82 3.37 1.98 1.82 1.85 2.07 2.64 3.16 4.42 5.17 5.24 4.91 4.39 3.98 3.82 5.69 8.10 3.79 4.10 11.10 9.61 6.19 4.65 3.50 3.50 3.24 3.10 2.71 2.11 1.95 2.22 2.30 2.42 2.15 2.71 2.93 3.00 2.75 3.06 2.85 2.68 3.10 3.51 4.03 4.65 6.27 8.21 +1 126.76 17.11 12.52 12.83 30.09 30.52 12.97 8.32 4.96 4.60 4.63 3.63 2.90 3.63 2.21 1.46 1.39 2.75 2.06 1.41 1.25 1.27 1.42 1.81 2.12 2.96 4.22 4.00 4.06 4.06 3.63 3.60 3.43 4.03 3.19 3.64 5.68 9.48 11.74 7.93 5.20 3.83 3.21 3.03 2.67 2.25 1.84 2.11 2.01 1.93 2.04 2.73 3.56 4.57 5.67 7.57 8.20 6.80 6.58 5.94 5.91 7.89 9.17 11.33 +1 140.91 20.67 10.63 7.19 18.24 12.12 6.84 10.53 9.36 8.14 7.86 4.29 3.85 4.25 3.03 2.72 2.86 4.00 4.34 3.06 2.49 2.05 2.27 2.81 2.47 2.91 4.20 5.73 6.55 5.11 4.02 4.39 4.09 4.95 4.53 4.66 6.91 13.75 10.34 5.75 4.31 3.64 2.89 2.57 2.25 2.20 1.91 1.84 1.95 2.17 1.84 1.77 1.71 2.06 2.37 2.46 2.67 3.07 3.32 3.42 4.59 6.99 7.46 8.55 +1 148.94 19.98 13.53 14.87 36.44 16.51 13.96 13.61 11.31 11.93 9.07 9.37 6.68 5.74 4.16 2.23 2.20 3.39 3.14 1.94 1.76 1.87 2.08 2.48 2.83 4.16 4.27 4.15 4.82 4.66 5.09 4.73 3.96 4.81 6.40 4.78 5.90 5.80 9.57 5.99 4.39 3.53 2.51 2.18 2.04 1.77 1.53 1.46 1.39 1.39 1.34 1.66 2.71 3.28 3.76 3.43 2.60 2.59 3.13 4.78 7.95 8.74 6.43 5.52 +1 93.60 7.64 2.97 2.98 16.63 9.69 6.19 10.46 8.52 6.15 5.07 2.66 2.80 3.48 2.35 1.99 2.19 3.87 3.86 2.57 2.07 2.20 2.75 2.74 2.82 2.80 4.28 8.14 8.67 7.12 7.72 6.18 5.38 4.16 7.22 12.12 5.78 8.94 17.19 14.60 8.65 6.00 4.65 4.22 4.29 3.74 2.80 3.19 4.13 3.49 3.24 4.20 4.52 4.24 4.25 4.33 4.39 4.33 4.67 4.78 4.29 4.37 7.17 8.72 +1 97.91 6.17 2.27 3.29 14.49 6.19 7.29 12.34 7.48 6.29 5.40 2.99 2.88 4.83 3.02 2.03 3.60 6.50 4.28 2.45 2.17 2.13 2.73 2.82 2.57 2.93 4.16 5.48 8.64 8.32 5.14 4.66 5.44 6.39 4.92 6.00 9.96 16.55 19.18 16.17 11.97 8.08 6.32 5.28 5.25 3.93 3.01 3.04 3.22 3.35 3.68 4.55 4.61 4.61 5.16 4.97 5.16 5.81 5.26 5.35 5.98 6.23 6.79 6.87  \ No newline at end of file diff --git a/include/assign2/common.h b/include/assign2/common.h index 769e074..b4f4642 100644 --- a/include/assign2/common.h +++ b/include/assign2/common.h @@ -19,6 +19,8 @@ #ifndef COSC_4P80_ASSIGNMENT_2_COMMON_H #define COSC_4P80_ASSIGNMENT_2_COMMON_H +#include + namespace assign2 { struct data_t @@ -31,6 +33,13 @@ namespace assign2 { std::vector data_points; }; + + class layer_t; + class network_t; + + using Scalar = float; + using matrix_t = Eigen::Matrix; + using vector_t = Eigen::Matrix; } #endif //COSC_4P80_ASSIGNMENT_2_COMMON_H diff --git a/include/assign2/functions.h b/include/assign2/functions.h new file mode 100644 index 0000000..7526155 --- /dev/null +++ b/include/assign2/functions.h @@ -0,0 +1,53 @@ +#pragma once +/* + * Copyright (C) 2024 Brett Terpstra + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef COSC_4P80_ASSIGNMENT_2_FUNCTIONS_H +#define COSC_4P80_ASSIGNMENT_2_FUNCTIONS_H + +#include +#include + +namespace assign2 +{ + struct sigmoid_function + { + [[nodiscard]] Scalar call(Scalar s) const // NOLINT + { + return 1 / (1 + std::exp(-s)); + } + + [[nodiscard]] Scalar derivative(Scalar s) const + { + return call(s) * (1 - call(s)); + } + + vector_t operator()(vector_t out) const + { + for (auto& v : out) + v = call(v); + return out; + } + }; + + struct linear_function + { + + }; +} + +#endif //COSC_4P80_ASSIGNMENT_2_FUNCTIONS_H diff --git a/include/assign2/initializers.h b/include/assign2/initializers.h new file mode 100644 index 0000000..3d22b67 --- /dev/null +++ b/include/assign2/initializers.h @@ -0,0 +1,78 @@ +#pragma once +/* + * Copyright (C) 2024 Brett Terpstra + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef COSC_4P80_ASSIGNMENT_2_INITIALIZERS_H +#define COSC_4P80_ASSIGNMENT_2_INITIALIZERS_H + +#include +#include +#include + +namespace assign2 +{ + struct empty_init + { + template + inline void operator()(Eigen::Matrix& matrix) const + { + for (auto r : matrix.rowwise()) + { + for (auto& v : r) + v = 0; + } + } + }; + + struct half_init + { + template + inline void operator()(Eigen::Matrix& matrix) const + { + for (auto r : matrix.rowwise()) + { + for (auto& v : r) + v = 0.5f; + } + } + }; + + struct random_init + { + public: + explicit random_init(blt::size_t seed, float min = 0.5 - 0.125, float max = 0.5 + 0.125): seed(seed), min(min), max(max) + {} + + template + inline void operator()(Eigen::Matrix& matrix) const + { + blt::random::random_t random(seed); + for (auto r : matrix.rowwise()) + { + for (auto& v : r) + v = random.get_float(min, max); + } + } + + private: + blt::size_t seed; + float min, max; + }; + +} + +#endif //COSC_4P80_ASSIGNMENT_2_INITIALIZERS_H diff --git a/include/assign2/layer.h b/include/assign2/layer.h index 8b77567..53b3173 100644 --- a/include/assign2/layer.h +++ b/include/assign2/layer.h @@ -19,35 +19,43 @@ #ifndef COSC_4P80_ASSIGNMENT_2_LAYER_H #define COSC_4P80_ASSIGNMENT_2_LAYER_H -#include #include +#include namespace assign2 { - class layer_t { public: - using matrix_t = Eigen::Matrix; - using vector_t = Eigen::Matrix; - layer_t(const blt::i32 in, const blt::i32 out): in_size(in), out_size(out) {} + template + void init(WeightsFunc weightFunc = empty_init{}, BiasFunc biasFunc = empty_init{}) + { + weights.resize(in_size, out_size); + bias.resize(out_size); + + weightFunc(weights); + biasFunc(bias); + } + template - vector_t forward(const vector_t & in, ActFunction func = ActFunction{}) + vector_t call(const vector_t& in, ActFunction func = ActFunction{}) { vector_t out; out.resize(out_size, Eigen::NoChange_t{}); out.noalias() = weights.transpose() * in; out.colwise() += bias; - return func(out); + return func(std::move(out)); } private: const blt::i32 in_size, out_size; matrix_t weights{}; + matrix_t dweights{}; // derivative of weights vector_t bias{}; + vector_t dbias{}; // derivative of bias }; } diff --git a/include/assign2/network.h b/include/assign2/network.h new file mode 100644 index 0000000..1cc1b31 --- /dev/null +++ b/include/assign2/network.h @@ -0,0 +1,51 @@ +#pragma once +/* + * Copyright (C) 2024 Brett Terpstra + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef COSC_4P80_ASSIGNMENT_2_NETWORK_H +#define COSC_4P80_ASSIGNMENT_2_NETWORK_H + +#include +#include + +namespace assign2 +{ + class network_t + { + public: + network_t(blt::i32 input_size, blt::i32 output_size, blt::i32 hidden_count, blt::i32 hidden_size): + input_size(input_size), output_size(output_size), hidden_count(hidden_count), hidden_size(hidden_size) + { + if (hidden_count > 0) + { + layers.push_back(layer_t{input_size, hidden_size}); + for (blt::i32 i = 0; i < hidden_count; i++) + layers.push_back(layer_t{hidden_size, hidden_size}); + layers.push_back(layer_t{hidden_size, output_size}); + } else + { + + } + } + + private: + blt::i32 input_size, output_size, hidden_count, hidden_size; + std::vector layers; + }; +} + +#endif //COSC_4P80_ASSIGNMENT_2_NETWORK_H diff --git a/lib/eigen-3.4.0/Eigen/src/Core/Assign_MKL.h b/lib/eigen-3.4.0/Eigen/src/Core/Assign_MKL.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/PacketMath.h b/lib/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/PacketMath.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/arch/SSE/PacketMath.h b/lib/eigen-3.4.0/Eigen/src/Core/arch/SSE/PacketMath.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/arch/ZVector/PacketMath.h b/lib/eigen-3.4.0/Eigen/src/Core/arch/ZVector/PacketMath.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/util/BlasUtil.h b/lib/eigen-3.4.0/Eigen/src/Core/util/BlasUtil.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/util/DisableStupidWarnings.h b/lib/eigen-3.4.0/Eigen/src/Core/util/DisableStupidWarnings.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/util/MKL_support.h b/lib/eigen-3.4.0/Eigen/src/Core/util/MKL_support.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/Core/util/Meta.h b/lib/eigen-3.4.0/Eigen/src/Core/util/Meta.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/Eigen/src/misc/lapacke.h b/lib/eigen-3.4.0/Eigen/src/misc/lapacke.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/bench_multi_compilers.sh b/lib/eigen-3.4.0/bench/bench_multi_compilers.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/bench_unrolling b/lib/eigen-3.4.0/bench/bench_unrolling old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/benchmark_suite b/lib/eigen-3.4.0/bench/benchmark_suite old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/btl/data/go_mean b/lib/eigen-3.4.0/bench/btl/data/go_mean old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/btl/data/mk_new_gnuplot.sh b/lib/eigen-3.4.0/bench/btl/data/mk_new_gnuplot.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/btl/data/smooth_all.sh b/lib/eigen-3.4.0/bench/btl/data/smooth_all.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/btl/generic_bench/timers/portable_timer.hh b/lib/eigen-3.4.0/bench/btl/generic_bench/timers/portable_timer.hh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/perf_monitoring/make_plot.sh b/lib/eigen-3.4.0/bench/perf_monitoring/make_plot.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/perf_monitoring/run.sh b/lib/eigen-3.4.0/bench/perf_monitoring/run.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/perf_monitoring/runall.sh b/lib/eigen-3.4.0/bench/perf_monitoring/runall.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/bench/tensors/eigen_sycl_bench.sh b/lib/eigen-3.4.0/bench/tensors/eigen_sycl_bench.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/blas/testing/runblastest.sh b/lib/eigen-3.4.0/blas/testing/runblastest.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/debug/msvc/eigen.natvis b/lib/eigen-3.4.0/debug/msvc/eigen.natvis index 22cf346..da89857 100644 --- a/lib/eigen-3.4.0/debug/msvc/eigen.natvis +++ b/lib/eigen-3.4.0/debug/msvc/eigen.natvis @@ -1,235 +1,235 @@ - - - - - - - - [{$T2}, {$T3}] (fixed matrix) - - - 2 - $i==0 ? $T2 : $T3 - m_storage.m_data.array - - - Backward - 2 - $i==0 ? $T2 : $T3 - m_storage.m_data.array - - - - - - - - [2, 2] (fixed matrix) - - - ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}) - - - ({m_storage.m_data.array[0]}, {m_storage.m_data.array[2]}) - - - ({m_storage.m_data.array[2]}, {m_storage.m_data.array[3]}) - - - ({m_storage.m_data.array[1]}, {m_storage.m_data.array[3]}) - - - - - - - - [3, 3] (fixed matrix) - - - ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}) - - - ({m_storage.m_data.array[0]}, {m_storage.m_data.array[3]}, {m_storage.m_data.array[6]}) - - - ({m_storage.m_data.array[3]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[5]}) - - - ({m_storage.m_data.array[1]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[7]}) - - - ({m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[8]}) - - - ({m_storage.m_data.array[2]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[8]}) - - - - - - - - [4, 4] (fixed matrix) - - - ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]}) - - - ({m_storage.m_data.array[0]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[8]}, {m_storage.m_data.array[12]}) - - - ({m_storage.m_data.array[4]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}) - - - ({m_storage.m_data.array[1]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[13]}) - - - ({m_storage.m_data.array[8]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[11]}) - - - ({m_storage.m_data.array[2]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[14]}) - - - ({m_storage.m_data.array[12]}, {m_storage.m_data.array[13]}, {m_storage.m_data.array[14]}, {m_storage.m_data.array[15]}) - - - ({m_storage.m_data.array[3]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[11]}, {m_storage.m_data.array[15]}) - - - - - - - - empty - [{m_storage.m_rows}, {m_storage.m_cols}] (dynamic matrix) - - - 2 - $i==0 ? m_storage.m_rows : m_storage.m_cols - m_storage.m_data - - - Backward - 2 - $i==0 ? m_storage.m_rows : m_storage.m_cols - m_storage.m_data - - - - - - - - empty - [{$T2}, {m_storage.m_cols}] (dynamic column matrix) - - - 2 - $i==0 ? $T2 : m_storage.m_cols - m_storage.m_data - - - Backward - 2 - $i==0 ? $T2 : m_storage.m_cols - m_storage.m_data - - - - - - - - empty - [{m_storage.m_rows}, {$T2}] (dynamic row matrix) - - - 2 - $i==0 ? m_storage.m_rows : $T2 - m_storage.m_data - - - Backward - 2 - $i==0 ? m_storage.m_rows : $T2 - m_storage.m_data - - - - - - - - empty - [{m_storage.m_cols}] (dynamic column vector) - - m_storage.m_cols - - m_storage.m_cols - m_storage.m_data - - - - - - - - empty - [{m_storage.m_rows}] (dynamic row vector) - - m_storage.m_rows - - m_storage.m_rows - m_storage.m_data - - - - - - - - [1] ({m_storage.m_data.array[0]}) - - m_storage.m_data.array[0] - - - - - - - - [2] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}) - - m_storage.m_data.array[0] - m_storage.m_data.array[1] - - - - - - - - [3] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}) - - m_storage.m_data.array[0] - m_storage.m_data.array[1] - m_storage.m_data.array[2] - - - - - - - - [4] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]}) - - m_storage.m_data.array[0] - m_storage.m_data.array[1] - m_storage.m_data.array[2] - m_storage.m_data.array[3] - - - - + + + + + + + + [{$T2}, {$T3}] (fixed matrix) + + + 2 + $i==0 ? $T2 : $T3 + m_storage.m_data.array + + + Backward + 2 + $i==0 ? $T2 : $T3 + m_storage.m_data.array + + + + + + + + [2, 2] (fixed matrix) + + + ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}) + + + ({m_storage.m_data.array[0]}, {m_storage.m_data.array[2]}) + + + ({m_storage.m_data.array[2]}, {m_storage.m_data.array[3]}) + + + ({m_storage.m_data.array[1]}, {m_storage.m_data.array[3]}) + + + + + + + + [3, 3] (fixed matrix) + + + ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}) + + + ({m_storage.m_data.array[0]}, {m_storage.m_data.array[3]}, {m_storage.m_data.array[6]}) + + + ({m_storage.m_data.array[3]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[5]}) + + + ({m_storage.m_data.array[1]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[7]}) + + + ({m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[8]}) + + + ({m_storage.m_data.array[2]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[8]}) + + + + + + + + [4, 4] (fixed matrix) + + + ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]}) + + + ({m_storage.m_data.array[0]}, {m_storage.m_data.array[4]}, {m_storage.m_data.array[8]}, {m_storage.m_data.array[12]}) + + + ({m_storage.m_data.array[4]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[7]}) + + + ({m_storage.m_data.array[1]}, {m_storage.m_data.array[5]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[13]}) + + + ({m_storage.m_data.array[8]}, {m_storage.m_data.array[9]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[11]}) + + + ({m_storage.m_data.array[2]}, {m_storage.m_data.array[6]}, {m_storage.m_data.array[10]}, {m_storage.m_data.array[14]}) + + + ({m_storage.m_data.array[12]}, {m_storage.m_data.array[13]}, {m_storage.m_data.array[14]}, {m_storage.m_data.array[15]}) + + + ({m_storage.m_data.array[3]}, {m_storage.m_data.array[7]}, {m_storage.m_data.array[11]}, {m_storage.m_data.array[15]}) + + + + + + + + empty + [{m_storage.m_rows}, {m_storage.m_cols}] (dynamic matrix) + + + 2 + $i==0 ? m_storage.m_rows : m_storage.m_cols + m_storage.m_data + + + Backward + 2 + $i==0 ? m_storage.m_rows : m_storage.m_cols + m_storage.m_data + + + + + + + + empty + [{$T2}, {m_storage.m_cols}] (dynamic column matrix) + + + 2 + $i==0 ? $T2 : m_storage.m_cols + m_storage.m_data + + + Backward + 2 + $i==0 ? $T2 : m_storage.m_cols + m_storage.m_data + + + + + + + + empty + [{m_storage.m_rows}, {$T2}] (dynamic row matrix) + + + 2 + $i==0 ? m_storage.m_rows : $T2 + m_storage.m_data + + + Backward + 2 + $i==0 ? m_storage.m_rows : $T2 + m_storage.m_data + + + + + + + + empty + [{m_storage.m_cols}] (dynamic column vector) + + m_storage.m_cols + + m_storage.m_cols + m_storage.m_data + + + + + + + + empty + [{m_storage.m_rows}] (dynamic row vector) + + m_storage.m_rows + + m_storage.m_rows + m_storage.m_data + + + + + + + + [1] ({m_storage.m_data.array[0]}) + + m_storage.m_data.array[0] + + + + + + + + [2] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}) + + m_storage.m_data.array[0] + m_storage.m_data.array[1] + + + + + + + + [3] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}) + + m_storage.m_data.array[0] + m_storage.m_data.array[1] + m_storage.m_data.array[2] + + + + + + + + [4] ({m_storage.m_data.array[0]}, {m_storage.m_data.array[1]}, {m_storage.m_data.array[2]}, {m_storage.m_data.array[3]}) + + m_storage.m_data.array[0] + m_storage.m_data.array[1] + m_storage.m_data.array[2] + m_storage.m_data.array[3] + + + + diff --git a/lib/eigen-3.4.0/debug/msvc/eigen_autoexp_part.dat b/lib/eigen-3.4.0/debug/msvc/eigen_autoexp_part.dat index 273c10d..35ef580 100644 --- a/lib/eigen-3.4.0/debug/msvc/eigen_autoexp_part.dat +++ b/lib/eigen-3.4.0/debug/msvc/eigen_autoexp_part.dat @@ -1,295 +1,295 @@ -; *************************************************************** -; * Eigen Visualizer -; * -; * Author: Hauke Heibel -; * -; * Support the enhanced debugging of the following Eigen -; * types (*: any, +:fixed dimension) : -; * -; * - Eigen::Matrix<*,4,1,*,*,*> and Eigen::Matrix<*,1,4,*,*,*> -; * - Eigen::Matrix<*,3,1,*,*,*> and Eigen::Matrix<*,1,3,*,*,*> -; * - Eigen::Matrix<*,2,1,*,*,*> and Eigen::Matrix<*,1,2,*,*,*> -; * - Eigen::Matrix<*,-1,-1,*,*,*> -; * - Eigen::Matrix<*,+,-1,*,*,*> -; * - Eigen::Matrix<*,-1,+,*,*,*> -; * - Eigen::Matrix<*,+,+,*,*,*> -; * -; * Matrices are displayed properly independently of the memory -; * alignment (RowMajor vs. ColMajor). -; * -; * This file is distributed WITHOUT ANY WARRANTY. Please ensure -; * that your original autoexp.dat file is copied to a safe -; * place before proceeding with its modification. -; *************************************************************** - -[Visualizer] - -; Fixed size 4-vectors -Eigen::Matrix<*,4,1,*,*,*>|Eigen::Matrix<*,1,4,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - x : ($c.m_storage.m_data.array)[0], - y : ($c.m_storage.m_data.array)[1], - z : ($c.m_storage.m_data.array)[2], - w : ($c.m_storage.m_data.array)[3] - ) - ) - - preview - ( - #( - "[", - 4, - "](", - #array(expr: $e.m_storage.m_data.array[$i], size: 4), - ")" - ) - ) -} - -; Fixed size 3-vectors -Eigen::Matrix<*,3,1,*,*,*>|Eigen::Matrix<*,1,3,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - x : ($c.m_storage.m_data.array)[0], - y : ($c.m_storage.m_data.array)[1], - z : ($c.m_storage.m_data.array)[2] - ) - ) - - preview - ( - #( - "[", - 3, - "](", - #array(expr: $e.m_storage.m_data.array[$i], size: 3), - ")" - ) - ) -} - -; Fixed size 2-vectors -Eigen::Matrix<*,2,1,*,*,*>|Eigen::Matrix<*,1,2,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - x : ($c.m_storage.m_data.array)[0], - y : ($c.m_storage.m_data.array)[1] - ) - ) - - preview - ( - #( - "[", - 2, - "](", - #array(expr: $e.m_storage.m_data.array[$i], size: 2), - ")" - ) - ) -} - -; Fixed size 1-vectors -Eigen::Matrix<*,1,1,*,*,*>|Eigen::Matrix<*,1,1,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - x : ($c.m_storage.m_data.array)[0] - ) - ) - - preview - ( - #( - "[", - 1, - "](", - #array(expr: $e.m_storage.m_data.array[$i], size: 1), - ")" - ) - ) -} - -; Dynamic matrices (ColMajor and RowMajor support) -Eigen::Matrix<*,-1,-1,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - rows: $c.m_storage.m_rows, - cols: $c.m_storage.m_cols, - ; Check for RowMajorBit - #if ($c.Flags & 0x1) ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.m_storage.m_cols + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], - size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols - ) - ) #else ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data)[$i], - size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols - ) - ) - ) - ) - - preview - ( - #( - "[", - $c.m_storage.m_rows, - ",", - $c.m_storage.m_cols, - "](", - #array( - expr : [($c.m_storage.m_data)[$i],g], - size : $c.m_storage.m_rows*$c.m_storage.m_cols - ), - ")" - ) - ) -} - -; Fixed rows, dynamic columns matrix (ColMajor and RowMajor support) -Eigen::Matrix<*,*,-1,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - rows: $c.RowsAtCompileTime, - cols: $c.m_storage.m_cols, - ; Check for RowMajorBit - #if ($c.Flags & 0x1) ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data)[($i % $c.RowsAtCompileTime)*$c.m_storage.m_cols + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], - size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols - ) - ) #else ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data)[$i], - size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols - ) - ) - ) - ) - - preview - ( - #( - "[", - $c.RowsAtCompileTime, - ",", - $c.m_storage.m_cols, - "](", - #array( - expr : [($c.m_storage.m_data)[$i],g], - size : $c.RowsAtCompileTime*$c.m_storage.m_cols - ), - ")" - ) - ) -} - -; Dynamic rows, fixed columns matrix (ColMajor and RowMajor support) -Eigen::Matrix<*,-1,*,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - rows: $c.m_storage.m_rows, - cols: $c.ColsAtCompileTime, - ; Check for RowMajorBit - #if ($c.Flags & 0x1) ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.ColsAtCompileTime + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], - size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime - ) - ) #else ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data)[$i], - size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime - ) - ) - ) - ) - - preview - ( - #( - "[", - $c.m_storage.m_rows, - ",", - $c.ColsAtCompileTime, - "](", - #array( - expr : [($c.m_storage.m_data)[$i],g], - size : $c.m_storage.m_rows*$c.ColsAtCompileTime - ), - ")" - ) - ) -} - -; Fixed size matrix (ColMajor and RowMajor support) -Eigen::Matrix<*,*,*,*,*,*>{ - children - ( - #( - [internals]: [$c,!], - rows: $c.RowsAtCompileTime, - cols: $c.ColsAtCompileTime, - ; Check for RowMajorBit - #if ($c.Flags & 0x1) ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data.array)[($i % $c.RowsAtCompileTime)*$c.ColsAtCompileTime + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], - size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime - ) - ) #else ( - #array( - rank: 2, - base: 0, - expr: ($c.m_storage.m_data.array)[$i], - size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime - ) - ) - ) - ) - - preview - ( - #( - "[", - $c.RowsAtCompileTime, - ",", - $c.ColsAtCompileTime, - "](", - #array( - expr : [($c.m_storage.m_data.array)[$i],g], - size : $c.RowsAtCompileTime*$c.ColsAtCompileTime - ), - ")" - ) - ) -} +; *************************************************************** +; * Eigen Visualizer +; * +; * Author: Hauke Heibel +; * +; * Support the enhanced debugging of the following Eigen +; * types (*: any, +:fixed dimension) : +; * +; * - Eigen::Matrix<*,4,1,*,*,*> and Eigen::Matrix<*,1,4,*,*,*> +; * - Eigen::Matrix<*,3,1,*,*,*> and Eigen::Matrix<*,1,3,*,*,*> +; * - Eigen::Matrix<*,2,1,*,*,*> and Eigen::Matrix<*,1,2,*,*,*> +; * - Eigen::Matrix<*,-1,-1,*,*,*> +; * - Eigen::Matrix<*,+,-1,*,*,*> +; * - Eigen::Matrix<*,-1,+,*,*,*> +; * - Eigen::Matrix<*,+,+,*,*,*> +; * +; * Matrices are displayed properly independently of the memory +; * alignment (RowMajor vs. ColMajor). +; * +; * This file is distributed WITHOUT ANY WARRANTY. Please ensure +; * that your original autoexp.dat file is copied to a safe +; * place before proceeding with its modification. +; *************************************************************** + +[Visualizer] + +; Fixed size 4-vectors +Eigen::Matrix<*,4,1,*,*,*>|Eigen::Matrix<*,1,4,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + x : ($c.m_storage.m_data.array)[0], + y : ($c.m_storage.m_data.array)[1], + z : ($c.m_storage.m_data.array)[2], + w : ($c.m_storage.m_data.array)[3] + ) + ) + + preview + ( + #( + "[", + 4, + "](", + #array(expr: $e.m_storage.m_data.array[$i], size: 4), + ")" + ) + ) +} + +; Fixed size 3-vectors +Eigen::Matrix<*,3,1,*,*,*>|Eigen::Matrix<*,1,3,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + x : ($c.m_storage.m_data.array)[0], + y : ($c.m_storage.m_data.array)[1], + z : ($c.m_storage.m_data.array)[2] + ) + ) + + preview + ( + #( + "[", + 3, + "](", + #array(expr: $e.m_storage.m_data.array[$i], size: 3), + ")" + ) + ) +} + +; Fixed size 2-vectors +Eigen::Matrix<*,2,1,*,*,*>|Eigen::Matrix<*,1,2,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + x : ($c.m_storage.m_data.array)[0], + y : ($c.m_storage.m_data.array)[1] + ) + ) + + preview + ( + #( + "[", + 2, + "](", + #array(expr: $e.m_storage.m_data.array[$i], size: 2), + ")" + ) + ) +} + +; Fixed size 1-vectors +Eigen::Matrix<*,1,1,*,*,*>|Eigen::Matrix<*,1,1,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + x : ($c.m_storage.m_data.array)[0] + ) + ) + + preview + ( + #( + "[", + 1, + "](", + #array(expr: $e.m_storage.m_data.array[$i], size: 1), + ")" + ) + ) +} + +; Dynamic matrices (ColMajor and RowMajor support) +Eigen::Matrix<*,-1,-1,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + rows: $c.m_storage.m_rows, + cols: $c.m_storage.m_cols, + ; Check for RowMajorBit + #if ($c.Flags & 0x1) ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.m_storage.m_cols + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], + size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols + ) + ) #else ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data)[$i], + size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.m_storage.m_cols + ) + ) + ) + ) + + preview + ( + #( + "[", + $c.m_storage.m_rows, + ",", + $c.m_storage.m_cols, + "](", + #array( + expr : [($c.m_storage.m_data)[$i],g], + size : $c.m_storage.m_rows*$c.m_storage.m_cols + ), + ")" + ) + ) +} + +; Fixed rows, dynamic columns matrix (ColMajor and RowMajor support) +Eigen::Matrix<*,*,-1,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + rows: $c.RowsAtCompileTime, + cols: $c.m_storage.m_cols, + ; Check for RowMajorBit + #if ($c.Flags & 0x1) ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data)[($i % $c.RowsAtCompileTime)*$c.m_storage.m_cols + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], + size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols + ) + ) #else ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data)[$i], + size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.m_storage.m_cols + ) + ) + ) + ) + + preview + ( + #( + "[", + $c.RowsAtCompileTime, + ",", + $c.m_storage.m_cols, + "](", + #array( + expr : [($c.m_storage.m_data)[$i],g], + size : $c.RowsAtCompileTime*$c.m_storage.m_cols + ), + ")" + ) + ) +} + +; Dynamic rows, fixed columns matrix (ColMajor and RowMajor support) +Eigen::Matrix<*,-1,*,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + rows: $c.m_storage.m_rows, + cols: $c.ColsAtCompileTime, + ; Check for RowMajorBit + #if ($c.Flags & 0x1) ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data)[($i % $c.m_storage.m_rows)*$c.ColsAtCompileTime + (($i- $i % $c.m_storage.m_rows)/$c.m_storage.m_rows)], + size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime + ) + ) #else ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data)[$i], + size: ($r==1)*$c.m_storage.m_rows+($r==0)*$c.ColsAtCompileTime + ) + ) + ) + ) + + preview + ( + #( + "[", + $c.m_storage.m_rows, + ",", + $c.ColsAtCompileTime, + "](", + #array( + expr : [($c.m_storage.m_data)[$i],g], + size : $c.m_storage.m_rows*$c.ColsAtCompileTime + ), + ")" + ) + ) +} + +; Fixed size matrix (ColMajor and RowMajor support) +Eigen::Matrix<*,*,*,*,*,*>{ + children + ( + #( + [internals]: [$c,!], + rows: $c.RowsAtCompileTime, + cols: $c.ColsAtCompileTime, + ; Check for RowMajorBit + #if ($c.Flags & 0x1) ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data.array)[($i % $c.RowsAtCompileTime)*$c.ColsAtCompileTime + (($i- $i % $c.RowsAtCompileTime)/$c.RowsAtCompileTime)], + size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime + ) + ) #else ( + #array( + rank: 2, + base: 0, + expr: ($c.m_storage.m_data.array)[$i], + size: ($r==1)*$c.RowsAtCompileTime+($r==0)*$c.ColsAtCompileTime + ) + ) + ) + ) + + preview + ( + #( + "[", + $c.RowsAtCompileTime, + ",", + $c.ColsAtCompileTime, + "](", + #array( + expr : [($c.m_storage.m_data.array)[$i],g], + size : $c.RowsAtCompileTime*$c.ColsAtCompileTime + ), + ")" + ) + ) +} diff --git a/lib/eigen-3.4.0/scripts/check.in b/lib/eigen-3.4.0/scripts/check.in old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/scripts/debug.in b/lib/eigen-3.4.0/scripts/debug.in old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/scripts/eigen_monitor_perf.sh b/lib/eigen-3.4.0/scripts/eigen_monitor_perf.sh old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/scripts/release.in b/lib/eigen-3.4.0/scripts/release.in old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h b/lib/eigen-3.4.0/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h b/lib/eigen-3.4.0/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h old mode 100755 new mode 100644 diff --git a/lib/eigen-3.4.0/unsupported/Eigen/src/IterativeSolvers/IDRS.h b/lib/eigen-3.4.0/unsupported/Eigen/src/IterativeSolvers/IDRS.h old mode 100755 new mode 100644 diff --git a/src/main.cpp b/src/main.cpp index c89de20..c7b1603 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,6 +4,8 @@ #include #include #include "blt/iterator/enumerate.h" +#include +#include using namespace assign2; @@ -75,6 +77,36 @@ int main(int argc, const char** argv) auto data_files = load_data_files(get_data_files(data_directory)); + vector_t input; + input.resize(16); + for (auto f : data_files) + { + if (f.data_points.begin()->bins.size() == 16) + { + for (auto [i, b] : blt::enumerate(f.data_points.begin()->bins)) + input(static_cast(i)) = b; + } + } + + random_init randomizer{619}; + sigmoid_function sig; + + layer_t layer1{16, 4}; + layer_t layer2{4, 4}; + layer_t layer3{4, 4}; + layer_t layer_output{4, 1}; + layer1.init(randomizer, empty_init{}); + layer2.init(randomizer, empty_init{}); + layer3.init(randomizer, empty_init{}); + layer_output.init(randomizer, empty_init{}); + + auto output = layer1.call(input, sig); + output = layer2.call(output, sig); + output = layer3.call(output, sig); + output = layer_output.call(output, sig); + + std::cout << output << std::endl; + // for (auto d : data_files) // { // BLT_TRACE_STREAM << "\nSilly new file:\n"; @@ -90,8 +122,8 @@ int main(int argc, const char** argv) // BLT_TRACE_STREAM << "]\n"; // } // } - - + + std::cout << "Hello World!" << std::endl; }