1 /* //////////////////////////////////////////////////////////////////// 2 // 3 // CvMat helper tables 4 // 5 // */ 6 7 #include "precomp.hpp" 8 9 const float icv8x32fTab_cv[] = 10 { 11 -256.f, -255.f, -254.f, -253.f, -252.f, -251.f, -250.f, -249.f, 12 -248.f, -247.f, -246.f, -245.f, -244.f, -243.f, -242.f, -241.f, 13 -240.f, -239.f, -238.f, -237.f, -236.f, -235.f, -234.f, -233.f, 14 -232.f, -231.f, -230.f, -229.f, -228.f, -227.f, -226.f, -225.f, 15 -224.f, -223.f, -222.f, -221.f, -220.f, -219.f, -218.f, -217.f, 16 -216.f, -215.f, -214.f, -213.f, -212.f, -211.f, -210.f, -209.f, 17 -208.f, -207.f, -206.f, -205.f, -204.f, -203.f, -202.f, -201.f, 18 -200.f, -199.f, -198.f, -197.f, -196.f, -195.f, -194.f, -193.f, 19 -192.f, -191.f, -190.f, -189.f, -188.f, -187.f, -186.f, -185.f, 20 -184.f, -183.f, -182.f, -181.f, -180.f, -179.f, -178.f, -177.f, 21 -176.f, -175.f, -174.f, -173.f, -172.f, -171.f, -170.f, -169.f, 22 -168.f, -167.f, -166.f, -165.f, -164.f, -163.f, -162.f, -161.f, 23 -160.f, -159.f, -158.f, -157.f, -156.f, -155.f, -154.f, -153.f, 24 -152.f, -151.f, -150.f, -149.f, -148.f, -147.f, -146.f, -145.f, 25 -144.f, -143.f, -142.f, -141.f, -140.f, -139.f, -138.f, -137.f, 26 -136.f, -135.f, -134.f, -133.f, -132.f, -131.f, -130.f, -129.f, 27 -128.f, -127.f, -126.f, -125.f, -124.f, -123.f, -122.f, -121.f, 28 -120.f, -119.f, -118.f, -117.f, -116.f, -115.f, -114.f, -113.f, 29 -112.f, -111.f, -110.f, -109.f, -108.f, -107.f, -106.f, -105.f, 30 -104.f, -103.f, -102.f, -101.f, -100.f, -99.f, -98.f, -97.f, 31 -96.f, -95.f, -94.f, -93.f, -92.f, -91.f, -90.f, -89.f, 32 -88.f, -87.f, -86.f, -85.f, -84.f, -83.f, -82.f, -81.f, 33 -80.f, -79.f, -78.f, -77.f, -76.f, -75.f, -74.f, -73.f, 34 -72.f, -71.f, -70.f, -69.f, -68.f, -67.f, -66.f, -65.f, 35 -64.f, -63.f, -62.f, -61.f, -60.f, -59.f, -58.f, -57.f, 36 -56.f, -55.f, -54.f, -53.f, -52.f, -51.f, -50.f, -49.f, 37 -48.f, -47.f, -46.f, -45.f, -44.f, -43.f, -42.f, -41.f, 38 -40.f, -39.f, -38.f, -37.f, -36.f, -35.f, -34.f, -33.f, 39 -32.f, -31.f, -30.f, -29.f, -28.f, -27.f, -26.f, -25.f, 40 -24.f, -23.f, -22.f, -21.f, -20.f, -19.f, -18.f, -17.f, 41 -16.f, -15.f, -14.f, -13.f, -12.f, -11.f, -10.f, -9.f, 42 -8.f, -7.f, -6.f, -5.f, -4.f, -3.f, -2.f, -1.f, 43 0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 44 8.f, 9.f, 10.f, 11.f, 12.f, 13.f, 14.f, 15.f, 45 16.f, 17.f, 18.f, 19.f, 20.f, 21.f, 22.f, 23.f, 46 24.f, 25.f, 26.f, 27.f, 28.f, 29.f, 30.f, 31.f, 47 32.f, 33.f, 34.f, 35.f, 36.f, 37.f, 38.f, 39.f, 48 40.f, 41.f, 42.f, 43.f, 44.f, 45.f, 46.f, 47.f, 49 48.f, 49.f, 50.f, 51.f, 52.f, 53.f, 54.f, 55.f, 50 56.f, 57.f, 58.f, 59.f, 60.f, 61.f, 62.f, 63.f, 51 64.f, 65.f, 66.f, 67.f, 68.f, 69.f, 70.f, 71.f, 52 72.f, 73.f, 74.f, 75.f, 76.f, 77.f, 78.f, 79.f, 53 80.f, 81.f, 82.f, 83.f, 84.f, 85.f, 86.f, 87.f, 54 88.f, 89.f, 90.f, 91.f, 92.f, 93.f, 94.f, 95.f, 55 96.f, 97.f, 98.f, 99.f, 100.f, 101.f, 102.f, 103.f, 56 104.f, 105.f, 106.f, 107.f, 108.f, 109.f, 110.f, 111.f, 57 112.f, 113.f, 114.f, 115.f, 116.f, 117.f, 118.f, 119.f, 58 120.f, 121.f, 122.f, 123.f, 124.f, 125.f, 126.f, 127.f, 59 128.f, 129.f, 130.f, 131.f, 132.f, 133.f, 134.f, 135.f, 60 136.f, 137.f, 138.f, 139.f, 140.f, 141.f, 142.f, 143.f, 61 144.f, 145.f, 146.f, 147.f, 148.f, 149.f, 150.f, 151.f, 62 152.f, 153.f, 154.f, 155.f, 156.f, 157.f, 158.f, 159.f, 63 160.f, 161.f, 162.f, 163.f, 164.f, 165.f, 166.f, 167.f, 64 168.f, 169.f, 170.f, 171.f, 172.f, 173.f, 174.f, 175.f, 65 176.f, 177.f, 178.f, 179.f, 180.f, 181.f, 182.f, 183.f, 66 184.f, 185.f, 186.f, 187.f, 188.f, 189.f, 190.f, 191.f, 67 192.f, 193.f, 194.f, 195.f, 196.f, 197.f, 198.f, 199.f, 68 200.f, 201.f, 202.f, 203.f, 204.f, 205.f, 206.f, 207.f, 69 208.f, 209.f, 210.f, 211.f, 212.f, 213.f, 214.f, 215.f, 70 216.f, 217.f, 218.f, 219.f, 220.f, 221.f, 222.f, 223.f, 71 224.f, 225.f, 226.f, 227.f, 228.f, 229.f, 230.f, 231.f, 72 232.f, 233.f, 234.f, 235.f, 236.f, 237.f, 238.f, 239.f, 73 240.f, 241.f, 242.f, 243.f, 244.f, 245.f, 246.f, 247.f, 74 248.f, 249.f, 250.f, 251.f, 252.f, 253.f, 254.f, 255.f, 75 256.f, 257.f, 258.f, 259.f, 260.f, 261.f, 262.f, 263.f, 76 264.f, 265.f, 266.f, 267.f, 268.f, 269.f, 270.f, 271.f, 77 272.f, 273.f, 274.f, 275.f, 276.f, 277.f, 278.f, 279.f, 78 280.f, 281.f, 282.f, 283.f, 284.f, 285.f, 286.f, 287.f, 79 288.f, 289.f, 290.f, 291.f, 292.f, 293.f, 294.f, 295.f, 80 296.f, 297.f, 298.f, 299.f, 300.f, 301.f, 302.f, 303.f, 81 304.f, 305.f, 306.f, 307.f, 308.f, 309.f, 310.f, 311.f, 82 312.f, 313.f, 314.f, 315.f, 316.f, 317.f, 318.f, 319.f, 83 320.f, 321.f, 322.f, 323.f, 324.f, 325.f, 326.f, 327.f, 84 328.f, 329.f, 330.f, 331.f, 332.f, 333.f, 334.f, 335.f, 85 336.f, 337.f, 338.f, 339.f, 340.f, 341.f, 342.f, 343.f, 86 344.f, 345.f, 346.f, 347.f, 348.f, 349.f, 350.f, 351.f, 87 352.f, 353.f, 354.f, 355.f, 356.f, 357.f, 358.f, 359.f, 88 360.f, 361.f, 362.f, 363.f, 364.f, 365.f, 366.f, 367.f, 89 368.f, 369.f, 370.f, 371.f, 372.f, 373.f, 374.f, 375.f, 90 376.f, 377.f, 378.f, 379.f, 380.f, 381.f, 382.f, 383.f, 91 384.f, 385.f, 386.f, 387.f, 388.f, 389.f, 390.f, 391.f, 92 392.f, 393.f, 394.f, 395.f, 396.f, 397.f, 398.f, 399.f, 93 400.f, 401.f, 402.f, 403.f, 404.f, 405.f, 406.f, 407.f, 94 408.f, 409.f, 410.f, 411.f, 412.f, 413.f, 414.f, 415.f, 95 416.f, 417.f, 418.f, 419.f, 420.f, 421.f, 422.f, 423.f, 96 424.f, 425.f, 426.f, 427.f, 428.f, 429.f, 430.f, 431.f, 97 432.f, 433.f, 434.f, 435.f, 436.f, 437.f, 438.f, 439.f, 98 440.f, 441.f, 442.f, 443.f, 444.f, 445.f, 446.f, 447.f, 99 448.f, 449.f, 450.f, 451.f, 452.f, 453.f, 454.f, 455.f, 100 456.f, 457.f, 458.f, 459.f, 460.f, 461.f, 462.f, 463.f, 101 464.f, 465.f, 466.f, 467.f, 468.f, 469.f, 470.f, 471.f, 102 472.f, 473.f, 474.f, 475.f, 476.f, 477.f, 478.f, 479.f, 103 480.f, 481.f, 482.f, 483.f, 484.f, 485.f, 486.f, 487.f, 104 488.f, 489.f, 490.f, 491.f, 492.f, 493.f, 494.f, 495.f, 105 496.f, 497.f, 498.f, 499.f, 500.f, 501.f, 502.f, 503.f, 106 504.f, 505.f, 506.f, 507.f, 508.f, 509.f, 510.f, 511.f, 107 }; 108 109 const float icv8x32fSqrTab[] = 110 { 111 16384.f, 16129.f, 15876.f, 15625.f, 15376.f, 15129.f, 14884.f, 14641.f, 112 14400.f, 14161.f, 13924.f, 13689.f, 13456.f, 13225.f, 12996.f, 12769.f, 113 12544.f, 12321.f, 12100.f, 11881.f, 11664.f, 11449.f, 11236.f, 11025.f, 114 10816.f, 10609.f, 10404.f, 10201.f, 10000.f, 9801.f, 9604.f, 9409.f, 115 9216.f, 9025.f, 8836.f, 8649.f, 8464.f, 8281.f, 8100.f, 7921.f, 116 7744.f, 7569.f, 7396.f, 7225.f, 7056.f, 6889.f, 6724.f, 6561.f, 117 6400.f, 6241.f, 6084.f, 5929.f, 5776.f, 5625.f, 5476.f, 5329.f, 118 5184.f, 5041.f, 4900.f, 4761.f, 4624.f, 4489.f, 4356.f, 4225.f, 119 4096.f, 3969.f, 3844.f, 3721.f, 3600.f, 3481.f, 3364.f, 3249.f, 120 3136.f, 3025.f, 2916.f, 2809.f, 2704.f, 2601.f, 2500.f, 2401.f, 121 2304.f, 2209.f, 2116.f, 2025.f, 1936.f, 1849.f, 1764.f, 1681.f, 122 1600.f, 1521.f, 1444.f, 1369.f, 1296.f, 1225.f, 1156.f, 1089.f, 123 1024.f, 961.f, 900.f, 841.f, 784.f, 729.f, 676.f, 625.f, 124 576.f, 529.f, 484.f, 441.f, 400.f, 361.f, 324.f, 289.f, 125 256.f, 225.f, 196.f, 169.f, 144.f, 121.f, 100.f, 81.f, 126 64.f, 49.f, 36.f, 25.f, 16.f, 9.f, 4.f, 1.f, 127 0.f, 1.f, 4.f, 9.f, 16.f, 25.f, 36.f, 49.f, 128 64.f, 81.f, 100.f, 121.f, 144.f, 169.f, 196.f, 225.f, 129 256.f, 289.f, 324.f, 361.f, 400.f, 441.f, 484.f, 529.f, 130 576.f, 625.f, 676.f, 729.f, 784.f, 841.f, 900.f, 961.f, 131 1024.f, 1089.f, 1156.f, 1225.f, 1296.f, 1369.f, 1444.f, 1521.f, 132 1600.f, 1681.f, 1764.f, 1849.f, 1936.f, 2025.f, 2116.f, 2209.f, 133 2304.f, 2401.f, 2500.f, 2601.f, 2704.f, 2809.f, 2916.f, 3025.f, 134 3136.f, 3249.f, 3364.f, 3481.f, 3600.f, 3721.f, 3844.f, 3969.f, 135 4096.f, 4225.f, 4356.f, 4489.f, 4624.f, 4761.f, 4900.f, 5041.f, 136 5184.f, 5329.f, 5476.f, 5625.f, 5776.f, 5929.f, 6084.f, 6241.f, 137 6400.f, 6561.f, 6724.f, 6889.f, 7056.f, 7225.f, 7396.f, 7569.f, 138 7744.f, 7921.f, 8100.f, 8281.f, 8464.f, 8649.f, 8836.f, 9025.f, 139 9216.f, 9409.f, 9604.f, 9801.f, 10000.f, 10201.f, 10404.f, 10609.f, 140 10816.f, 11025.f, 11236.f, 11449.f, 11664.f, 11881.f, 12100.f, 12321.f, 141 12544.f, 12769.f, 12996.f, 13225.f, 13456.f, 13689.f, 13924.f, 14161.f, 142 14400.f, 14641.f, 14884.f, 15129.f, 15376.f, 15625.f, 15876.f, 16129.f, 143 16384.f, 16641.f, 16900.f, 17161.f, 17424.f, 17689.f, 17956.f, 18225.f, 144 18496.f, 18769.f, 19044.f, 19321.f, 19600.f, 19881.f, 20164.f, 20449.f, 145 20736.f, 21025.f, 21316.f, 21609.f, 21904.f, 22201.f, 22500.f, 22801.f, 146 23104.f, 23409.f, 23716.f, 24025.f, 24336.f, 24649.f, 24964.f, 25281.f, 147 25600.f, 25921.f, 26244.f, 26569.f, 26896.f, 27225.f, 27556.f, 27889.f, 148 28224.f, 28561.f, 28900.f, 29241.f, 29584.f, 29929.f, 30276.f, 30625.f, 149 30976.f, 31329.f, 31684.f, 32041.f, 32400.f, 32761.f, 33124.f, 33489.f, 150 33856.f, 34225.f, 34596.f, 34969.f, 35344.f, 35721.f, 36100.f, 36481.f, 151 36864.f, 37249.f, 37636.f, 38025.f, 38416.f, 38809.f, 39204.f, 39601.f, 152 40000.f, 40401.f, 40804.f, 41209.f, 41616.f, 42025.f, 42436.f, 42849.f, 153 43264.f, 43681.f, 44100.f, 44521.f, 44944.f, 45369.f, 45796.f, 46225.f, 154 46656.f, 47089.f, 47524.f, 47961.f, 48400.f, 48841.f, 49284.f, 49729.f, 155 50176.f, 50625.f, 51076.f, 51529.f, 51984.f, 52441.f, 52900.f, 53361.f, 156 53824.f, 54289.f, 54756.f, 55225.f, 55696.f, 56169.f, 56644.f, 57121.f, 157 57600.f, 58081.f, 58564.f, 59049.f, 59536.f, 60025.f, 60516.f, 61009.f, 158 61504.f, 62001.f, 62500.f, 63001.f, 63504.f, 64009.f, 64516.f, 65025.f 159 }; 160 161 const uchar icvSaturate8u_cv[] = 162 { 163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 180 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 181 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 182 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 183 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 184 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 185 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 186 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 187 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 188 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 189 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 190 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 191 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 192 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 193 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 194 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 195 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 198 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 199 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 200 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 201 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 202 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 203 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 204 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 206 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 208 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 209 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 210 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 211 255 212 }; 213 214 /* End of file. */ 215