qr-0.2.0.0: src/Data/QR/Tables.hs
module Data.QR.Tables
( dataBits
, capacity
) where
import Data.QR.Types
dataBits :: Version -> Level -> Int
dataBits v l = values !! ((v - 1) * 4 + levelIndex l)
where
values =
[ 152, 128, 104, 72
, 272, 224, 176, 128
, 440, 352, 272, 208
, 640, 512, 384, 288
, 864, 688, 496, 368
, 1088, 864, 608, 480
, 1248, 992, 704, 528
, 1552, 1232, 880, 688
, 1856, 1456, 1056, 800
, 2192, 1728, 1232, 976
, 2592, 2032, 1440, 1120
, 2960, 2320, 1648, 1264
, 3424, 2672, 1952, 1440
, 3688, 2920, 2088, 1576
, 4184, 3320, 2360, 1784
, 4712, 3624, 2600, 2024
, 5176, 4056, 2936, 2264
, 5768, 4504, 3176, 2504
, 6360, 5016, 3560, 2728
, 6888, 5352, 3880, 3080
, 7456, 5712, 4096, 3248
, 8048, 6256, 4544, 3536
, 8752, 6880, 4912, 3712
, 9392, 7312, 5312, 4112
, 10208, 8000, 5744, 4304
, 10960, 8496, 6032, 4768
, 11744, 9024, 6464, 5024
, 12248, 9544, 6968, 5288
, 13048, 10136, 7288, 5608
, 13880, 10984, 7880, 5960
, 14744, 11640, 8264, 6344
, 15640, 12328, 8920, 6760
, 16568, 13048, 9368, 7208
, 17528, 13800, 9848, 7688
, 18448, 14496, 10288, 7888
, 19472, 15312, 10832, 8432
, 20528, 15936, 11408, 8768
, 21616, 16816, 12016, 9136
, 22496, 17728, 12656, 9776
, 23648, 18672, 13328, 10208 ]
capacity :: Level -> Mode -> Version -> Int
capacity l m v = capacities !! ((v - 1) * 16 + fromEnum l * 4 + fromEnum m)
where
capacities =
[ 41, 25, 17, 10
, 34, 20, 14, 8
, 27, 16, 11, 7
, 17, 10, 7, 4
, 77, 47, 32, 20
, 63, 38, 26, 16
, 48, 29, 20, 12
, 34, 20, 14, 8
, 127, 77, 53, 32
, 101, 61, 42, 26
, 77, 47, 32, 20
, 58, 35, 24, 15
, 187, 114, 78, 48
, 149, 90, 62, 38
, 111, 67, 46, 28
, 82, 50, 34, 21
, 255, 154, 106, 65
, 202, 122, 84, 52
, 144, 87, 60, 37
, 106, 64, 44, 27
, 322, 195, 134, 82
, 255, 154, 106, 65
, 178, 108, 74, 45
, 139, 84, 58, 36
, 370, 224, 154, 95
, 293, 178, 122, 75
, 207, 125, 86, 53
, 154, 93, 64, 39
, 461, 279, 192, 118
, 365, 221, 152, 93
, 259, 157, 108, 66
, 202, 122, 84, 52
, 552, 335, 230, 141
, 432, 262, 180, 111
, 312, 189, 130, 80
, 235, 143, 98, 60
, 652, 395, 271, 167
, 513, 311, 213, 131
, 364, 221, 151, 93
, 288, 174, 119, 74
, 772, 468, 321, 198
, 604, 366, 251, 155
, 427, 259, 177, 109
, 331, 200, 137, 85
, 883, 535, 367, 226
, 691, 419, 287, 177
, 489, 296, 203, 125
, 374, 227, 155, 96
, 1022, 619, 425, 262
, 796, 483, 331, 204
, 580, 352, 241, 149
, 427, 259, 177, 109
, 1101, 667, 458, 282
, 871, 528, 362, 223
, 621, 376, 258, 159
, 468, 283, 194, 120
, 1250, 758, 520, 320
, 991, 600, 412, 254
, 703, 426, 292, 180
, 530, 321, 220, 136
, 1408, 854, 586, 361
, 1082, 656, 450, 277
, 775, 470, 322, 198
, 602, 365, 250, 154
, 1548, 938, 644, 397
, 1212, 734, 504, 310
, 876, 531, 364, 224
, 674, 408, 280, 173
, 1725, 1046, 718, 442
, 1346, 816, 560, 345
, 948, 574, 394, 243
, 746, 452, 310, 191
, 1903, 1153, 792, 488
, 1500, 909, 624, 384
, 1063, 644, 442, 272
, 813, 493, 338, 208
, 2061, 1249, 858, 528
, 1600, 970, 666, 410
, 1159, 702, 482, 297
, 919, 557, 382, 235
, 2232, 1352, 929, 572
, 1708, 1035, 711, 438
, 1224, 742, 509, 314
, 969, 587, 403, 248
, 2409, 1460, 1003, 618
, 1872, 1134, 779, 480
, 1358, 823, 565, 348
, 1056, 640, 439, 270
, 2620, 1588, 1091, 672
, 2059, 1248, 857, 528
, 1468, 890, 611, 376
, 1108, 672, 461, 284
, 2812, 1704, 1171, 721
, 2188, 1326, 911, 561
, 1588, 963, 661, 407
, 1228, 744, 511, 315
, 3057, 1853, 1273, 784
, 2395, 1451, 997, 614
, 1718, 1041, 715, 440
, 1286, 779, 535, 330
, 3283, 1990, 1367, 842
, 2544, 1542, 1059, 652
, 1804, 1094, 751, 462
, 1425, 864, 593, 365
, 3517, 2132, 1465, 902
, 2701, 1637, 1125, 692
, 1933, 1172, 805, 496
, 1501, 910, 625, 385
, 3669, 2223, 1528, 940
, 2857, 1732, 1190, 732
, 2085, 1263, 868, 534
, 1581, 958, 658, 405
, 3909, 2369, 1628, 1002
, 3035, 1839, 1264, 778
, 2181, 1322, 908, 559
, 1677, 1016, 698, 430
, 4158, 2520, 1732, 1066
, 3289, 1994, 1370, 843
, 2358, 1429, 982, 604
, 1782, 1080, 742, 457
, 4417, 2677, 1840, 1132
, 3486, 2113, 1452, 894
, 2473, 1499, 1030, 634
, 1897, 1150, 790, 486
, 4686, 2840, 1952, 1201
, 3693, 2238, 1538, 947
, 2670, 1618, 1112, 684
, 2022, 1226, 842, 518
, 4965, 3009, 2068, 1273
, 3909, 2369, 1628, 1002
, 2805, 1700, 1168, 719
, 2157, 1307, 898, 553
, 5253, 3183, 2188, 1347
, 4134, 2506, 1722, 1060
, 2949, 1787, 1228, 756
, 2301, 1394, 958, 590
, 5529, 3351, 2303, 1417
, 4343, 2632, 1809, 1113
, 3081, 1867, 1283, 790
, 2361, 1431, 983, 605
, 5836, 3537, 2431, 1496
, 4588, 2780, 1911, 1176
, 3244, 1966, 1351, 832
, 2524, 1530, 1051, 647
, 6153, 3729, 2563, 1577
, 4775, 2894, 1989, 1224
, 3417, 2071, 1423, 876
, 2625, 1591, 1093, 673
, 6479, 3927, 2699, 1661
, 5039, 3054, 2099, 1292
, 3599, 2181, 1499, 923
, 2735, 1658, 1139, 701
, 6743, 4087, 2809, 1729
, 5313, 3220, 2213, 1362
, 3791, 2298, 1579, 972
, 2927, 1774, 1219, 750
, 7089, 4296, 2953, 1817
, 5596, 3391, 2331, 1435
, 3993, 2420, 1663, 1024
, 3057, 1852, 1273, 784 ]