function lib_ascii_version()
{
return 1
}
# convert an binary character to ascii code (integer)
function lib_ascii_ord(chr)
{
return lib_ascii_ASCII[chr]
}
# ---- initializing the ASCII table ----
# Slowest variant: 10k runs at 2.241 seconds on a machine
# for(n = 0; n < 256; n = n+1)
# lib_ascii_ASCII[sprintf("%c", n)] = n
#
# a bit faster: 10k runs at 1.604 on the same machine
# split("\001 \002 \003 \004 \005 \006 \007 \010 \011 \012 \013 \014 \015 \016 \017 \020 \021 \022 \023 \024 \025 \026 \027 \030 \031 \032 \033 \034 \035 \036 \037 ! \041 \042 \043 \044 \045 \046 \047 \050 \051 \052 \053 \054 \055 \056 \057 \060 \061 \062 \063 \064 \065 \066 \067 \070 \071 \072 \073 \074 \075 \076 \077 \100 \101 \102 \103 \104 \105 \106 \107 \110 \111 \112 \113 \114 \115 \116 \117 \120 \121 \122 \123 \124 \125 \126 \127 \130 \131 \132 \133 \134 \135 \136 \137 \140 \141 \142 \143 \144 \145 \146 \147 \150 \151 \152 \153 \154 \155 \156 \157 \160 \161 \162 \163 \164 \165 \166 \167 \170 \171 \172 \173 \174 \175 \176 \177 ", A, " ");
# for(n = 1; n < 128; n++) {
# lib_ascii_ASCII[A[n]] = n;
# }
# split("\200 \201 \202 \203 \204 \205 \206 \207 \210 \211 \212 \213 \214 \215 \216 \217 \220 \221 \222 \223 \224 \225 \226 \227 \230 \231 \232 \233 \234 \235 \236 \237 \240 \241 \242 \243 \244 \245 \246 \247 \250 \251 \252 \253 \254 \255 \256 \257 \260 \261 \262 \263 \264 \265 \266 \267 \270 \271 \272 \273 \274 \275 \276 \277 \300 \301 \302 \303 \304 \305 \306 \307 \310 \311 \312 \313 \314 \315 \316 \317 \320 \321 \322 \323 \324 \325 \326 \327 \330 \331 \332 \333 \334 \335 \336 \337 \340 \341 \342 \343 \344 \345 \346 \347 \350 \351 \352 \353 \354 \355 \356 \357 \360 \361 \362 \363 \364 \365 \366 \367 \370 \371 \372 \373 \374 \375 \376 \377", A, " ");
# for(n = 1; n < 128; n++) {
# lib_ascii_ASCII[A[n]] = n+128;
# }
# lib_ascii_ASCII["\000"] = 0
# lib_ascii_ASCII[" "] = 32
# Fastest version on the same machine: 0.5 seconds
BEGIN {
lib_ascii_ASCII["\000"] = 0
lib_ascii_ASCII["\001"] = 1
lib_ascii_ASCII["\002"] = 2
lib_ascii_ASCII["\003"] = 3
lib_ascii_ASCII["\004"] = 4
lib_ascii_ASCII["\005"] = 5
lib_ascii_ASCII["\006"] = 6
lib_ascii_ASCII["\007"] = 7
lib_ascii_ASCII["\010"] = 8
lib_ascii_ASCII["\011"] = 9
lib_ascii_ASCII["\012"] = 10
lib_ascii_ASCII["\013"] = 11
lib_ascii_ASCII["\014"] = 12
lib_ascii_ASCII["\015"] = 13
lib_ascii_ASCII["\016"] = 14
lib_ascii_ASCII["\017"] = 15
lib_ascii_ASCII["\020"] = 16
lib_ascii_ASCII["\021"] = 17
lib_ascii_ASCII["\022"] = 18
lib_ascii_ASCII["\023"] = 19
lib_ascii_ASCII["\024"] = 20
lib_ascii_ASCII["\025"] = 21
lib_ascii_ASCII["\026"] = 22
lib_ascii_ASCII["\027"] = 23
lib_ascii_ASCII["\030"] = 24
lib_ascii_ASCII["\031"] = 25
lib_ascii_ASCII["\032"] = 26
lib_ascii_ASCII["\033"] = 27
lib_ascii_ASCII["\034"] = 28
lib_ascii_ASCII["\035"] = 29
lib_ascii_ASCII["\036"] = 30
lib_ascii_ASCII["\037"] = 31
lib_ascii_ASCII["\040"] = 32
lib_ascii_ASCII["\041"] = 33
lib_ascii_ASCII["\042"] = 34
lib_ascii_ASCII["\043"] = 35
lib_ascii_ASCII["\044"] = 36
lib_ascii_ASCII["\045"] = 37
lib_ascii_ASCII["\046"] = 38
lib_ascii_ASCII["\047"] = 39
lib_ascii_ASCII["\050"] = 40
lib_ascii_ASCII["\051"] = 41
lib_ascii_ASCII["\052"] = 42
lib_ascii_ASCII["\053"] = 43
lib_ascii_ASCII["\054"] = 44
lib_ascii_ASCII["\055"] = 45
lib_ascii_ASCII["\056"] = 46
lib_ascii_ASCII["\057"] = 47
lib_ascii_ASCII["\060"] = 48
lib_ascii_ASCII["\061"] = 49
lib_ascii_ASCII["\062"] = 50
lib_ascii_ASCII["\063"] = 51
lib_ascii_ASCII["\064"] = 52
lib_ascii_ASCII["\065"] = 53
lib_ascii_ASCII["\066"] = 54
lib_ascii_ASCII["\067"] = 55
lib_ascii_ASCII["\070"] = 56
lib_ascii_ASCII["\071"] = 57
lib_ascii_ASCII["\072"] = 58
lib_ascii_ASCII["\073"] = 59
lib_ascii_ASCII["\074"] = 60
lib_ascii_ASCII["\075"] = 61
lib_ascii_ASCII["\076"] = 62
lib_ascii_ASCII["\077"] = 63
lib_ascii_ASCII["\100"] = 64
lib_ascii_ASCII["\101"] = 65
lib_ascii_ASCII["\102"] = 66
lib_ascii_ASCII["\103"] = 67
lib_ascii_ASCII["\104"] = 68
lib_ascii_ASCII["\105"] = 69
lib_ascii_ASCII["\106"] = 70
lib_ascii_ASCII["\107"] = 71
lib_ascii_ASCII["\110"] = 72
lib_ascii_ASCII["\111"] = 73
lib_ascii_ASCII["\112"] = 74
lib_ascii_ASCII["\113"] = 75
lib_ascii_ASCII["\114"] = 76
lib_ascii_ASCII["\115"] = 77
lib_ascii_ASCII["\116"] = 78
lib_ascii_ASCII["\117"] = 79
lib_ascii_ASCII["\120"] = 80
lib_ascii_ASCII["\121"] = 81
lib_ascii_ASCII["\122"] = 82
lib_ascii_ASCII["\123"] = 83
lib_ascii_ASCII["\124"] = 84
lib_ascii_ASCII["\125"] = 85
lib_ascii_ASCII["\126"] = 86
lib_ascii_ASCII["\127"] = 87
lib_ascii_ASCII["\130"] = 88
lib_ascii_ASCII["\131"] = 89
lib_ascii_ASCII["\132"] = 90
lib_ascii_ASCII["\133"] = 91
lib_ascii_ASCII["\134"] = 92
lib_ascii_ASCII["\135"] = 93
lib_ascii_ASCII["\136"] = 94
lib_ascii_ASCII["\137"] = 95
lib_ascii_ASCII["\140"] = 96
lib_ascii_ASCII["\141"] = 97
lib_ascii_ASCII["\142"] = 98
lib_ascii_ASCII["\143"] = 99
lib_ascii_ASCII["\144"] = 100
lib_ascii_ASCII["\145"] = 101
lib_ascii_ASCII["\146"] = 102
lib_ascii_ASCII["\147"] = 103
lib_ascii_ASCII["\150"] = 104
lib_ascii_ASCII["\151"] = 105
lib_ascii_ASCII["\152"] = 106
lib_ascii_ASCII["\153"] = 107
lib_ascii_ASCII["\154"] = 108
lib_ascii_ASCII["\155"] = 109
lib_ascii_ASCII["\156"] = 110
lib_ascii_ASCII["\157"] = 111
lib_ascii_ASCII["\160"] = 112
lib_ascii_ASCII["\161"] = 113
lib_ascii_ASCII["\162"] = 114
lib_ascii_ASCII["\163"] = 115
lib_ascii_ASCII["\164"] = 116
lib_ascii_ASCII["\165"] = 117
lib_ascii_ASCII["\166"] = 118
lib_ascii_ASCII["\167"] = 119
lib_ascii_ASCII["\170"] = 120
lib_ascii_ASCII["\171"] = 121
lib_ascii_ASCII["\172"] = 122
lib_ascii_ASCII["\173"] = 123
lib_ascii_ASCII["\174"] = 124
lib_ascii_ASCII["\175"] = 125
lib_ascii_ASCII["\176"] = 126
lib_ascii_ASCII["\177"] = 127
lib_ascii_ASCII["\200"] = 128
lib_ascii_ASCII["\201"] = 129
lib_ascii_ASCII["\202"] = 130
lib_ascii_ASCII["\203"] = 131
lib_ascii_ASCII["\204"] = 132
lib_ascii_ASCII["\205"] = 133
lib_ascii_ASCII["\206"] = 134
lib_ascii_ASCII["\207"] = 135
lib_ascii_ASCII["\210"] = 136
lib_ascii_ASCII["\211"] = 137
lib_ascii_ASCII["\212"] = 138
lib_ascii_ASCII["\213"] = 139
lib_ascii_ASCII["\214"] = 140
lib_ascii_ASCII["\215"] = 141
lib_ascii_ASCII["\216"] = 142
lib_ascii_ASCII["\217"] = 143
lib_ascii_ASCII["\220"] = 144
lib_ascii_ASCII["\221"] = 145
lib_ascii_ASCII["\222"] = 146
lib_ascii_ASCII["\223"] = 147
lib_ascii_ASCII["\224"] = 148
lib_ascii_ASCII["\225"] = 149
lib_ascii_ASCII["\226"] = 150
lib_ascii_ASCII["\227"] = 151
lib_ascii_ASCII["\230"] = 152
lib_ascii_ASCII["\231"] = 153
lib_ascii_ASCII["\232"] = 154
lib_ascii_ASCII["\233"] = 155
lib_ascii_ASCII["\234"] = 156
lib_ascii_ASCII["\235"] = 157
lib_ascii_ASCII["\236"] = 158
lib_ascii_ASCII["\237"] = 159
lib_ascii_ASCII["\240"] = 160
lib_ascii_ASCII["\241"] = 161
lib_ascii_ASCII["\242"] = 162
lib_ascii_ASCII["\243"] = 163
lib_ascii_ASCII["\244"] = 164
lib_ascii_ASCII["\245"] = 165
lib_ascii_ASCII["\246"] = 166
lib_ascii_ASCII["\247"] = 167
lib_ascii_ASCII["\250"] = 168
lib_ascii_ASCII["\251"] = 169
lib_ascii_ASCII["\252"] = 170
lib_ascii_ASCII["\253"] = 171
lib_ascii_ASCII["\254"] = 172
lib_ascii_ASCII["\255"] = 173
lib_ascii_ASCII["\256"] = 174
lib_ascii_ASCII["\257"] = 175
lib_ascii_ASCII["\260"] = 176
lib_ascii_ASCII["\261"] = 177
lib_ascii_ASCII["\262"] = 178
lib_ascii_ASCII["\263"] = 179
lib_ascii_ASCII["\264"] = 180
lib_ascii_ASCII["\265"] = 181
lib_ascii_ASCII["\266"] = 182
lib_ascii_ASCII["\267"] = 183
lib_ascii_ASCII["\270"] = 184
lib_ascii_ASCII["\271"] = 185
lib_ascii_ASCII["\272"] = 186
lib_ascii_ASCII["\273"] = 187
lib_ascii_ASCII["\274"] = 188
lib_ascii_ASCII["\275"] = 189
lib_ascii_ASCII["\276"] = 190
lib_ascii_ASCII["\277"] = 191
lib_ascii_ASCII["\300"] = 192
lib_ascii_ASCII["\301"] = 193
lib_ascii_ASCII["\302"] = 194
lib_ascii_ASCII["\303"] = 195
lib_ascii_ASCII["\304"] = 196
lib_ascii_ASCII["\305"] = 197
lib_ascii_ASCII["\306"] = 198
lib_ascii_ASCII["\307"] = 199
lib_ascii_ASCII["\310"] = 200
lib_ascii_ASCII["\311"] = 201
lib_ascii_ASCII["\312"] = 202
lib_ascii_ASCII["\313"] = 203
lib_ascii_ASCII["\314"] = 204
lib_ascii_ASCII["\315"] = 205
lib_ascii_ASCII["\316"] = 206
lib_ascii_ASCII["\317"] = 207
lib_ascii_ASCII["\320"] = 208
lib_ascii_ASCII["\321"] = 209
lib_ascii_ASCII["\322"] = 210
lib_ascii_ASCII["\323"] = 211
lib_ascii_ASCII["\324"] = 212
lib_ascii_ASCII["\325"] = 213
lib_ascii_ASCII["\326"] = 214
lib_ascii_ASCII["\327"] = 215
lib_ascii_ASCII["\330"] = 216
lib_ascii_ASCII["\331"] = 217
lib_ascii_ASCII["\332"] = 218
lib_ascii_ASCII["\333"] = 219
lib_ascii_ASCII["\334"] = 220
lib_ascii_ASCII["\335"] = 221
lib_ascii_ASCII["\336"] = 222
lib_ascii_ASCII["\337"] = 223
lib_ascii_ASCII["\340"] = 224
lib_ascii_ASCII["\341"] = 225
lib_ascii_ASCII["\342"] = 226
lib_ascii_ASCII["\343"] = 227
lib_ascii_ASCII["\344"] = 228
lib_ascii_ASCII["\345"] = 229
lib_ascii_ASCII["\346"] = 230
lib_ascii_ASCII["\347"] = 231
lib_ascii_ASCII["\350"] = 232
lib_ascii_ASCII["\351"] = 233
lib_ascii_ASCII["\352"] = 234
lib_ascii_ASCII["\353"] = 235
lib_ascii_ASCII["\354"] = 236
lib_ascii_ASCII["\355"] = 237
lib_ascii_ASCII["\356"] = 238
lib_ascii_ASCII["\357"] = 239
lib_ascii_ASCII["\360"] = 240
lib_ascii_ASCII["\361"] = 241
lib_ascii_ASCII["\362"] = 242
lib_ascii_ASCII["\363"] = 243
lib_ascii_ASCII["\364"] = 244
lib_ascii_ASCII["\365"] = 245
lib_ascii_ASCII["\366"] = 246
lib_ascii_ASCII["\367"] = 247
lib_ascii_ASCII["\370"] = 248
lib_ascii_ASCII["\371"] = 249
lib_ascii_ASCII["\372"] = 250
lib_ascii_ASCII["\373"] = 251
lib_ascii_ASCII["\374"] = 252
lib_ascii_ASCII["\375"] = 253
lib_ascii_ASCII["\376"] = 254
lib_ascii_ASCII["\377"] = 255
}