Skip to content

Commit cf18424

Browse files
committed
Speed up
1 parent 340b1f4 commit cf18424

File tree

7 files changed

+1665
-248
lines changed

7 files changed

+1665
-248
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ decode Mapcodes.
5050

5151
## Release Notes
5252

53+
* 2.0.2
54+
55+
Speed-up of encoding (4x times faster than 2.0.1).
56+
57+
* 2.0.1
58+
59+
Removed compiler warnings.
60+
5361
* 2.0.0
5462

5563
Support for high-precision mapcodes, with up to 8 character extensions (up to 10 micron accuracy).

mapcodelib/basics.h

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,10 @@
1414
* limitations under the License.
1515
*/
1616

17-
#define UWORD unsigned short int // 2-byte unsigned integer
18-
19-
#define mapcode_cversion "2.0.1"
17+
#define mapcode_dataversion "2.0" // coords 2.0.2
2018
#define MAXWIDE 10
2119
#define BASEX 31
2220
#define MAXFITLONG 6
23-
#define XSIDE3 168
24-
#define YSIDE3 176
2521

2622
#define ALIASES "2UK=2UT,2CG=2CT,1GU=GUM,1UM=UMI,1VI=VIR,1PR=PRI,1AS=ASM,1MP=MNP,4CX=CXR,4CC=CCK,4NF=NFK,4HM=HMD,COL=5CL,5ME=5MX,MEX=5MX,5TM=TAM,5AG=AGU,5BC=BCN,5BS=BCS,5CM=CAM,5CS=CHP,5CH=CHH,5CO=COA,5DF=DIF,5DG=DUR,5GT=GUA,5GR=GRO,5HG=HID,5JA=JAL,5MI=MIC,5MO=MOR,5NA=NAY,5NL=NLE,5OA=OAX,5PB=PUE,5QE=QUE,5QR=ROO,5SL=SLP,5SI=SIN,5SO=SON,5TB=TAB,5TL=TLA,5VE=VER,5YU=YUC,5ZA=ZAC,811=8BJ,812=8TJ,813=8HE,814=8SX,815=8NM,821=8LN,822=8JL,823=8HL,831=8SH,832=8JS,833=8ZJ,834=8AH,835=8FJ,836=8JX,837=8SD,841=8HA,842=8HB,843=8HN,844=8GD,845=8GX,846=8HI,850=8CQ,851=8SC,852=8GZ,853=8YN,854=8XZ,861=8SN,862=8GS,863=8QH,864=8NX,865=8XJ,871=TWN,891=HKG,892=MAC,8TW=TWN,8HK=HKG,8MC=MAC,BEL=7BE,KIR=7KI,PRI=7PO,CHE=7CH,KHM=7KM,PER=7PM,TAM=7TT,0US=USA,0AU=AUS,0RU=RUS,0CN=CHN,TAA=SHN,ASC=SHN,DGA=IOT,WAK=MHL,JTN=UMI,MID=1HI,2OD=2OR,"
2723

@@ -84,37 +80,31 @@ static const char *entity_iso = ""
8480

8581
#define usa_from 343
8682
#define usa_upto 393
87-
#define ccode_usa 410
8883
#define ind_from 271
8984
#define ind_upto 306
9085
#define ccode_ind 407
9186
#define can_from 394
9287
#define can_upto 406
93-
#define ccode_can 495
9488
#define aus_from 307
9589
#define aus_upto 315
96-
#define ccode_aus 408
9790
#define mex_from 233
9891
#define mex_upto 264
9992
#define ccode_mex 411
10093
#define bra_from 316
10194
#define bra_upto 342
102-
#define ccode_bra 409
10395
#define chn_from 497
10496
#define chn_upto 527
105-
#define ccode_chn 528
10697
#define rus_from 412
10798
#define rus_upto 494
108-
#define ccode_rus 496
109-
#define ccode_ata 531
11099
#define ccode_earth 532
111100

112101
#define parents3 "USA,IND,CAN,AUS,MEX,BRA,RUS,CHN,"
113102
#define parents2 "US,IN,CA,AU,MX,BR,RU,CN,"
103+
static const int parentnr[9] = {-1,410,407,495,408,411,409,496,528};
114104

115105

116106

117-
static const UWORD xdivider19[172] = {
107+
static const long xdivider19[172] = {
118108
360, 360, 360, 360, 360, 360, 361, 361, 361, 361,
119109
362, 362, 362, 363, 363, 363, 364, 364, 365, 366,
120110
366, 367, 367, 368, 369, 370, 370, 371, 372, 373,
@@ -167,7 +157,7 @@ static const char encode_chars[34] = {
167157
,'A','E','U'};
168158

169159

170-
static const UWORD data_start[MAX_CCODE+1] = {
160+
static const int data_start[MAX_CCODE+1] = {
171161
0, 3, 6, 10, 14, 17, 19, 20, 31, 32,
172162
34, 36, 38, 43, 45, 48, 52, 59, 63, 65,
173163
67, 71, 73, 81, 87, 95, 97, 132, 139, 149,
@@ -227,7 +217,7 @@ static const UWORD data_start[MAX_CCODE+1] = {
227217
#define NR_RECS 16344
228218
#define WORST_RECS_PER_CCODE 195 // 8 Argentina @43
229219

230-
typedef struct { long minx; long miny; long maxx; long maxy; unsigned long flags; } mminforec;
220+
typedef struct { long minx; long miny; long maxx; long maxy; long flags; } mminforec;
231221

232222
#ifndef MAKE_SOURCE_DIGITAL
233223
static const mminforec mminfo[NR_RECS+1] = {

0 commit comments

Comments
 (0)