- Joined
- Nov 7, 2014
- Messages
- 571
I think this is a cute alternative to the "binary-searchy-if-statements" technique of implementing arrays bigger than 8191 in Jass.
Obviously its not great because of having to call the ForceForce native for every read/write, which is slower than calling a jass function, but perhaps at some point the if statement branches become slower? I don't know.
And of course, maybe the hashtable natives blow both techniques out of the water, or maybe it becomes much slower for 100_000s of entries duo to many many collisions. Who knows.
"biggish-array":
"binary-searchy-if-statements" technique:
Obviously its not great because of having to call the ForceForce native for every read/write, which is slower than calling a jass function, but perhaps at some point the if statement branches become slower? I don't know.
And of course, maybe the hashtable natives blow both techniques out of the water, or maybe it becomes much slower for 100_000s of entries duo to many many collisions. Who knows.
"biggish-array":
JASS:
library biggisharray initializer init /*
*/ uses /*
*/ Typecast // C2I, I2C
globals
private force exec = null
private integer idx = 0
private integer val = 0
private integer read1_addr
private integer write1_addr
private integer array a001
private integer array a002
private integer array a003
private integer array a004
private integer array a005
private integer array a006
private integer array a007
private integer array a008
private integer array a009
private integer array a010
private integer array a011
private integer array a012
private integer array a013
private integer array a014
private integer array a015
private integer array a016
private integer array a017
private integer array a018
private integer array a019
private integer array a020
private integer array a021
private integer array a022
private integer array a023
private integer array a024
private integer array a025
private integer array a026
private integer array a027
private integer array a028
private integer array a029
private integer array a030
private integer array a031
private integer array a032
private integer array a033
private integer array a034
private integer array a035
private integer array a036
private integer array a037
private integer array a038
private integer array a039
private integer array a040
private integer array a041
private integer array a042
private integer array a043
private integer array a044
private integer array a045
private integer array a046
private integer array a047
private integer array a048
private integer array a049
private integer array a050
private integer array a051
private integer array a052
private integer array a053
private integer array a054
private integer array a055
private integer array a056
private integer array a057
private integer array a058
private integer array a059
private integer array a060
private integer array a061
private integer array a062
private integer array a063
private integer array a064
private integer array a065
private integer array a066
private integer array a067
private integer array a068
private integer array a069
private integer array a070
private integer array a071
private integer array a072
private integer array a073
private integer array a074
private integer array a075
private integer array a076
private integer array a077
private integer array a078
private integer array a079
private integer array a080
private integer array a081
private integer array a082
private integer array a083
private integer array a084
private integer array a085
private integer array a086
private integer array a087
private integer array a088
private integer array a089
private integer array a090
private integer array a091
private integer array a092
private integer array a093
private integer array a094
private integer array a095
private integer array a096
private integer array a097
private integer array a098
private integer array a099
private integer array a100
private integer array a101
private integer array a102
private integer array a103
private integer array a104
private integer array a105
private integer array a106
private integer array a107
private integer array a108
private integer array a109
private integer array a110
private integer array a111
private integer array a112
private integer array a113
private integer array a114
private integer array a115
private integer array a116
private integer array a117
private integer array a118
private integer array a119
private integer array a120
private integer array a121
private integer array a122
private integer array a123
private integer array a124
private integer array a125
private integer array a126
private integer array a127
private integer array a128
endglobals
private function read1 takes nothing returns nothing
set val = a001[idx - 0]
return
set val = a002[idx - 8191]
return
set val = a003[idx - 16382]
return
set val = a004[idx - 24573]
return
set val = a005[idx - 32764]
return
set val = a006[idx - 40955]
return
set val = a007[idx - 49146]
return
set val = a008[idx - 57337]
return
set val = a009[idx - 65528]
return
set val = a010[idx - 73719]
return
set val = a011[idx - 81910]
return
set val = a012[idx - 90101]
return
set val = a013[idx - 98292]
return
set val = a014[idx - 106483]
return
set val = a015[idx - 114674]
return
set val = a016[idx - 122865]
return
set val = a017[idx - 131056]
return
set val = a018[idx - 139247]
return
set val = a019[idx - 147438]
return
set val = a020[idx - 155629]
return
set val = a021[idx - 163820]
return
set val = a022[idx - 172011]
return
set val = a023[idx - 180202]
return
set val = a024[idx - 188393]
return
set val = a025[idx - 196584]
return
set val = a026[idx - 204775]
return
set val = a027[idx - 212966]
return
set val = a028[idx - 221157]
return
set val = a029[idx - 229348]
return
set val = a030[idx - 237539]
return
set val = a031[idx - 245730]
return
set val = a032[idx - 253921]
return
set val = a033[idx - 262112]
return
set val = a034[idx - 270303]
return
set val = a035[idx - 278494]
return
set val = a036[idx - 286685]
return
set val = a037[idx - 294876]
return
set val = a038[idx - 303067]
return
set val = a039[idx - 311258]
return
set val = a040[idx - 319449]
return
set val = a041[idx - 327640]
return
set val = a042[idx - 335831]
return
set val = a043[idx - 344022]
return
set val = a044[idx - 352213]
return
set val = a045[idx - 360404]
return
set val = a046[idx - 368595]
return
set val = a047[idx - 376786]
return
set val = a048[idx - 384977]
return
set val = a049[idx - 393168]
return
set val = a050[idx - 401359]
return
set val = a051[idx - 409550]
return
set val = a052[idx - 417741]
return
set val = a053[idx - 425932]
return
set val = a054[idx - 434123]
return
set val = a055[idx - 442314]
return
set val = a056[idx - 450505]
return
set val = a057[idx - 458696]
return
set val = a058[idx - 466887]
return
set val = a059[idx - 475078]
return
set val = a060[idx - 483269]
return
set val = a061[idx - 491460]
return
set val = a062[idx - 499651]
return
set val = a063[idx - 507842]
return
set val = a064[idx - 516033]
return
set val = a065[idx - 524224]
return
set val = a066[idx - 532415]
return
set val = a067[idx - 540606]
return
set val = a068[idx - 548797]
return
set val = a069[idx - 556988]
return
set val = a070[idx - 565179]
return
set val = a071[idx - 573370]
return
set val = a072[idx - 581561]
return
set val = a073[idx - 589752]
return
set val = a074[idx - 597943]
return
set val = a075[idx - 606134]
return
set val = a076[idx - 614325]
return
set val = a077[idx - 622516]
return
set val = a078[idx - 630707]
return
set val = a079[idx - 638898]
return
set val = a080[idx - 647089]
return
set val = a081[idx - 655280]
return
set val = a082[idx - 663471]
return
set val = a083[idx - 671662]
return
set val = a084[idx - 679853]
return
set val = a085[idx - 688044]
return
set val = a086[idx - 696235]
return
set val = a087[idx - 704426]
return
set val = a088[idx - 712617]
return
set val = a089[idx - 720808]
return
set val = a090[idx - 728999]
return
set val = a091[idx - 737190]
return
set val = a092[idx - 745381]
return
set val = a093[idx - 753572]
return
set val = a094[idx - 761763]
return
set val = a095[idx - 769954]
return
set val = a096[idx - 778145]
return
set val = a097[idx - 786336]
return
set val = a098[idx - 794527]
return
set val = a099[idx - 802718]
return
set val = a100[idx - 810909]
return
set val = a101[idx - 819100]
return
set val = a102[idx - 827291]
return
set val = a103[idx - 835482]
return
set val = a104[idx - 843673]
return
set val = a105[idx - 851864]
return
set val = a106[idx - 860055]
return
set val = a107[idx - 868246]
return
set val = a108[idx - 876437]
return
set val = a109[idx - 884628]
return
set val = a110[idx - 892819]
return
set val = a111[idx - 901010]
return
set val = a112[idx - 909201]
return
set val = a113[idx - 917392]
return
set val = a114[idx - 925583]
return
set val = a115[idx - 933774]
return
set val = a116[idx - 941965]
return
set val = a117[idx - 950156]
return
set val = a118[idx - 958347]
return
set val = a119[idx - 966538]
return
set val = a120[idx - 974729]
return
set val = a121[idx - 982920]
return
set val = a122[idx - 991111]
return
set val = a123[idx - 999302]
return
set val = a124[idx - 1007493]
return
set val = a125[idx - 1015684]
return
set val = a126[idx - 1023875]
return
set val = a127[idx - 1032066]
return
set val = a128[idx - 1040257]
return
endfunction
public function read takes integer i returns integer
set idx = i
call ForForce(exec, I2C(read1_addr + (64 * (i / 8191))))
return val
endfunction
private function write1 takes nothing returns nothing
set a001[idx - 0] = val
return
set a002[idx - 8191] = val
return
set a003[idx - 16382] = val
return
set a004[idx - 24573] = val
return
set a005[idx - 32764] = val
return
set a006[idx - 40955] = val
return
set a007[idx - 49146] = val
return
set a008[idx - 57337] = val
return
set a009[idx - 65528] = val
return
set a010[idx - 73719] = val
return
set a011[idx - 81910] = val
return
set a012[idx - 90101] = val
return
set a013[idx - 98292] = val
return
set a014[idx - 106483] = val
return
set a015[idx - 114674] = val
return
set a016[idx - 122865] = val
return
set a017[idx - 131056] = val
return
set a018[idx - 139247] = val
return
set a019[idx - 147438] = val
return
set a020[idx - 155629] = val
return
set a021[idx - 163820] = val
return
set a022[idx - 172011] = val
return
set a023[idx - 180202] = val
return
set a024[idx - 188393] = val
return
set a025[idx - 196584] = val
return
set a026[idx - 204775] = val
return
set a027[idx - 212966] = val
return
set a028[idx - 221157] = val
return
set a029[idx - 229348] = val
return
set a030[idx - 237539] = val
return
set a031[idx - 245730] = val
return
set a032[idx - 253921] = val
return
set a033[idx - 262112] = val
return
set a034[idx - 270303] = val
return
set a035[idx - 278494] = val
return
set a036[idx - 286685] = val
return
set a037[idx - 294876] = val
return
set a038[idx - 303067] = val
return
set a039[idx - 311258] = val
return
set a040[idx - 319449] = val
return
set a041[idx - 327640] = val
return
set a042[idx - 335831] = val
return
set a043[idx - 344022] = val
return
set a044[idx - 352213] = val
return
set a045[idx - 360404] = val
return
set a046[idx - 368595] = val
return
set a047[idx - 376786] = val
return
set a048[idx - 384977] = val
return
set a049[idx - 393168] = val
return
set a050[idx - 401359] = val
return
set a051[idx - 409550] = val
return
set a052[idx - 417741] = val
return
set a053[idx - 425932] = val
return
set a054[idx - 434123] = val
return
set a055[idx - 442314] = val
return
set a056[idx - 450505] = val
return
set a057[idx - 458696] = val
return
set a058[idx - 466887] = val
return
set a059[idx - 475078] = val
return
set a060[idx - 483269] = val
return
set a061[idx - 491460] = val
return
set a062[idx - 499651] = val
return
set a063[idx - 507842] = val
return
set a064[idx - 516033] = val
return
set a065[idx - 524224] = val
return
set a066[idx - 532415] = val
return
set a067[idx - 540606] = val
return
set a068[idx - 548797] = val
return
set a069[idx - 556988] = val
return
set a070[idx - 565179] = val
return
set a071[idx - 573370] = val
return
set a072[idx - 581561] = val
return
set a073[idx - 589752] = val
return
set a074[idx - 597943] = val
return
set a075[idx - 606134] = val
return
set a076[idx - 614325] = val
return
set a077[idx - 622516] = val
return
set a078[idx - 630707] = val
return
set a079[idx - 638898] = val
return
set a080[idx - 647089] = val
return
set a081[idx - 655280] = val
return
set a082[idx - 663471] = val
return
set a083[idx - 671662] = val
return
set a084[idx - 679853] = val
return
set a085[idx - 688044] = val
return
set a086[idx - 696235] = val
return
set a087[idx - 704426] = val
return
set a088[idx - 712617] = val
return
set a089[idx - 720808] = val
return
set a090[idx - 728999] = val
return
set a091[idx - 737190] = val
return
set a092[idx - 745381] = val
return
set a093[idx - 753572] = val
return
set a094[idx - 761763] = val
return
set a095[idx - 769954] = val
return
set a096[idx - 778145] = val
return
set a097[idx - 786336] = val
return
set a098[idx - 794527] = val
return
set a099[idx - 802718] = val
return
set a100[idx - 810909] = val
return
set a101[idx - 819100] = val
return
set a102[idx - 827291] = val
return
set a103[idx - 835482] = val
return
set a104[idx - 843673] = val
return
set a105[idx - 851864] = val
return
set a106[idx - 860055] = val
return
set a107[idx - 868246] = val
return
set a108[idx - 876437] = val
return
set a109[idx - 884628] = val
return
set a110[idx - 892819] = val
return
set a111[idx - 901010] = val
return
set a112[idx - 909201] = val
return
set a113[idx - 917392] = val
return
set a114[idx - 925583] = val
return
set a115[idx - 933774] = val
return
set a116[idx - 941965] = val
return
set a117[idx - 950156] = val
return
set a118[idx - 958347] = val
return
set a119[idx - 966538] = val
return
set a120[idx - 974729] = val
return
set a121[idx - 982920] = val
return
set a122[idx - 991111] = val
return
set a123[idx - 999302] = val
return
set a124[idx - 1007493] = val
return
set a125[idx - 1015684] = val
return
set a126[idx - 1023875] = val
return
set a127[idx - 1032066] = val
return
set a128[idx - 1040257] = val
return
endfunction
public function write takes integer i, integer v returns nothing
set idx = i
set val = v
call ForForce(exec, I2C(write1_addr + (80 * (i / 8191))))
endfunction
private function allocate_arrays takes nothing returns nothing
set a001[8190] = 0
set a002[8190] = 0
set a003[8190] = 0
set a004[8190] = 0
set a005[8190] = 0
set a006[8190] = 0
set a007[8190] = 0
set a008[8190] = 0
set a009[8190] = 0
set a010[8190] = 0
set a011[8190] = 0
set a012[8190] = 0
set a013[8190] = 0
set a014[8190] = 0
set a015[8190] = 0
set a016[8190] = 0
set a017[8190] = 0
set a018[8190] = 0
set a019[8190] = 0
set a020[8190] = 0
set a021[8190] = 0
set a022[8190] = 0
set a023[8190] = 0
set a024[8190] = 0
set a025[8190] = 0
set a026[8190] = 0
set a027[8190] = 0
set a028[8190] = 0
set a029[8190] = 0
set a030[8190] = 0
set a031[8190] = 0
set a032[8190] = 0
set a033[8190] = 0
set a034[8190] = 0
set a035[8190] = 0
set a036[8190] = 0
set a037[8190] = 0
set a038[8190] = 0
set a039[8190] = 0
set a040[8190] = 0
set a041[8190] = 0
set a042[8190] = 0
set a043[8190] = 0
set a044[8190] = 0
set a045[8190] = 0
set a046[8190] = 0
set a047[8190] = 0
set a048[8190] = 0
set a049[8190] = 0
set a050[8190] = 0
set a051[8190] = 0
set a052[8190] = 0
set a053[8190] = 0
set a054[8190] = 0
set a055[8190] = 0
set a056[8190] = 0
set a057[8190] = 0
set a058[8190] = 0
set a059[8190] = 0
set a060[8190] = 0
set a061[8190] = 0
set a062[8190] = 0
set a063[8190] = 0
set a064[8190] = 0
set a065[8190] = 0
set a066[8190] = 0
set a067[8190] = 0
set a068[8190] = 0
set a069[8190] = 0
set a070[8190] = 0
set a071[8190] = 0
set a072[8190] = 0
set a073[8190] = 0
set a074[8190] = 0
set a075[8190] = 0
set a076[8190] = 0
set a077[8190] = 0
set a078[8190] = 0
set a079[8190] = 0
set a080[8190] = 0
set a081[8190] = 0
set a082[8190] = 0
set a083[8190] = 0
set a084[8190] = 0
set a085[8190] = 0
set a086[8190] = 0
set a087[8190] = 0
set a088[8190] = 0
set a089[8190] = 0
set a090[8190] = 0
set a091[8190] = 0
set a092[8190] = 0
set a093[8190] = 0
set a094[8190] = 0
set a095[8190] = 0
set a096[8190] = 0
set a097[8190] = 0
set a098[8190] = 0
set a099[8190] = 0
set a100[8190] = 0
set a101[8190] = 0
set a102[8190] = 0
set a103[8190] = 0
set a104[8190] = 0
set a105[8190] = 0
set a106[8190] = 0
set a107[8190] = 0
set a108[8190] = 0
set a109[8190] = 0
set a110[8190] = 0
set a111[8190] = 0
set a112[8190] = 0
set a113[8190] = 0
set a114[8190] = 0
set a115[8190] = 0
set a116[8190] = 0
set a117[8190] = 0
set a118[8190] = 0
set a119[8190] = 0
set a120[8190] = 0
set a121[8190] = 0
set a122[8190] = 0
set a123[8190] = 0
set a124[8190] = 0
set a125[8190] = 0
set a126[8190] = 0
set a127[8190] = 0
set a128[8190] = 0
endfunction
private function init takes nothing returns nothing
set exec = CreateForce()
call ForceAddPlayer(exec, Player(15))
call allocate_arrays()
set read1_addr = C2I(function read1)
set write1_addr = C2I(function write1)
endfunction
endlibrary
"binary-searchy-if-statements" technique:
JASS:
if i < 524224 then
if i < 262112 then
if i < 131056 then
if i < 65528 then
if i < 32764 then
if i < 16382 then
if i < 8191 then
return array1[i]
else
return array2[i - 8191]
endif
else // if i >= 16382 then
if i < 24573 then
return array3[i - 16382]
else
return array4[i - 24573]
endif
endif
else // if i >= 32764 then
if i < 49146 then
if i < 40955 then
return array5[i - 32764]
else
return array6[i - 40955]
endif
else // if i >= 49146 then
if i < 57337 then
return array7[i - 49146]
else
return array8[i - 57337]
endif
endif
endif
else // if i >= 65528 then
if i < 98292 then
if i < 81910 then
if i < 73719 then
return array9[i - 65528]
else
return array10[i - 73719]
endif
else // if i >= 81910 then
if i < 90101 then
return array11[i - 81910]
else
return array12[i - 90101]
endif
endif
else // if i >= 98292 then
if i < 114674 then
if i < 106483 then
return array13[i - 98292]
else
return array14[i - 106483]
endif
else // if i >= 114674 then
if i < 122865 then
return array15[i - 114674]
else
return array16[i - 122865]
endif
endif
endif
endif
else // if i >= 131056 then
if i < 196584 then
if i < 163820 then
if i < 147438 then
if i < 139247 then
return array17[i - 131056]
else
return array18[i - 139247]
endif
else // if i >= 147438 then
if i < 155629 then
return array19[i - 147438]
else
return array20[i - 155629]
endif
endif
else // if i >= 163820 then
if i < 180202 then
if i < 172011 then
return array21[i - 163820]
else
return array22[i - 172011]
endif
else // if i >= 180202 then
if i < 188393 then
return array23[i - 180202]
else
return array24[i - 188393]
endif
endif
endif
else // if i >= 196584 then
if i < 229348 then
if i < 212966 then
if i < 204775 then
return array25[i - 196584]
else
return array26[i - 204775]
endif
else // if i >= 212966 then
if i < 221157 then
return array27[i - 212966]
else
return array28[i - 221157]
endif
endif
else // if i >= 229348 then
if i < 245730 then
if i < 237539 then
return array29[i - 229348]
else
return array30[i - 237539]
endif
else // if i >= 245730 then
if i < 253921 then
return array31[i - 245730]
else
return array32[i - 253921]
endif
endif
endif
endif
endif
else // if i >= 262112 then
if i < 393168 then
if i < 327640 then
if i < 294876 then
if i < 278494 then
if i < 270303 then
return array33[i - 262112]
else
return array34[i - 270303]
endif
else // if i >= 278494 then
if i < 286685 then
return array35[i - 278494]
else
return array36[i - 286685]
endif
endif
else // if i >= 294876 then
if i < 311258 then
if i < 303067 then
return array37[i - 294876]
else
return array38[i - 303067]
endif
else // if i >= 311258 then
if i < 319449 then
return array39[i - 311258]
else
return array40[i - 319449]
endif
endif
endif
else // if i >= 327640 then
if i < 360404 then
if i < 344022 then
if i < 335831 then
return array41[i - 327640]
else
return array42[i - 335831]
endif
else // if i >= 344022 then
if i < 352213 then
return array43[i - 344022]
else
return array44[i - 352213]
endif
endif
else // if i >= 360404 then
if i < 376786 then
if i < 368595 then
return array45[i - 360404]
else
return array46[i - 368595]
endif
else // if i >= 376786 then
if i < 384977 then
return array47[i - 376786]
else
return array48[i - 384977]
endif
endif
endif
endif
else // if i >= 393168 then
if i < 458696 then
if i < 425932 then
if i < 409550 then
if i < 401359 then
return array49[i - 393168]
else
return array50[i - 401359]
endif
else // if i >= 409550 then
if i < 417741 then
return array51[i - 409550]
else
return array52[i - 417741]
endif
endif
else // if i >= 425932 then
if i < 442314 then
if i < 434123 then
return array53[i - 425932]
else
return array54[i - 434123]
endif
else // if i >= 442314 then
if i < 450505 then
return array55[i - 442314]
else
return array56[i - 450505]
endif
endif
endif
else // if i >= 458696 then
if i < 491460 then
if i < 475078 then
if i < 466887 then
return array57[i - 458696]
else
return array58[i - 466887]
endif
else // if i >= 475078 then
if i < 483269 then
return array59[i - 475078]
else
return array60[i - 483269]
endif
endif
else // if i >= 491460 then
if i < 507842 then
if i < 499651 then
return array61[i - 491460]
else
return array62[i - 499651]
endif
else // if i >= 507842 then
if i < 516033 then
return array63[i - 507842]
else
return array64[i - 516033]
endif
endif
endif
endif
endif
endif
else // if i >= 524224 then
if i < 786336 then
if i < 655280 then
if i < 589752 then
if i < 556988 then
if i < 540606 then
if i < 532415 then
return array65[i - 524224]
else
return array66[i - 532415]
endif
else // if i >= 540606 then
if i < 548797 then
return array67[i - 540606]
else
return array68[i - 548797]
endif
endif
else // if i >= 556988 then
if i < 573370 then
if i < 565179 then
return array69[i - 556988]
else
return array70[i - 565179]
endif
else // if i >= 573370 then
if i < 581561 then
return array71[i - 573370]
else
return array72[i - 581561]
endif
endif
endif
else // if i >= 589752 then
if i < 622516 then
if i < 606134 then
if i < 597943 then
return array73[i - 589752]
else
return array74[i - 597943]
endif
else // if i >= 606134 then
if i < 614325 then
return array75[i - 606134]
else
return array76[i - 614325]
endif
endif
else // if i >= 622516 then
if i < 638898 then
if i < 630707 then
return array77[i - 622516]
else
return array78[i - 630707]
endif
else // if i >= 638898 then
if i < 647089 then
return array79[i - 638898]
else
return array80[i - 647089]
endif
endif
endif
endif
else // if i >= 655280 then
if i < 720808 then
if i < 688044 then
if i < 671662 then
if i < 663471 then
return array81[i - 655280]
else
return array82[i - 663471]
endif
else // if i >= 671662 then
if i < 679853 then
return array83[i - 671662]
else
return array84[i - 679853]
endif
endif
else // if i >= 688044 then
if i < 704426 then
if i < 696235 then
return array85[i - 688044]
else
return array86[i - 696235]
endif
else // if i >= 704426 then
if i < 712617 then
return array87[i - 704426]
else
return array88[i - 712617]
endif
endif
endif
else // if i >= 720808 then
if i < 753572 then
if i < 737190 then
if i < 728999 then
return array89[i - 720808]
else
return array90[i - 728999]
endif
else // if i >= 737190 then
if i < 745381 then
return array91[i - 737190]
else
return array92[i - 745381]
endif
endif
else // if i >= 753572 then
if i < 769954 then
if i < 761763 then
return array93[i - 753572]
else
return array94[i - 761763]
endif
else // if i >= 769954 then
if i < 778145 then
return array95[i - 769954]
else
return array96[i - 778145]
endif
endif
endif
endif
endif
else // if i >= 786336 then
if i < 917392 then
if i < 851864 then
if i < 819100 then
if i < 802718 then
if i < 794527 then
return array97[i - 786336]
else
return array98[i - 794527]
endif
else // if i >= 802718 then
if i < 810909 then
return array99[i - 802718]
else
return array100[i - 810909]
endif
endif
else // if i >= 819100 then
if i < 835482 then
if i < 827291 then
return array101[i - 819100]
else
return array102[i - 827291]
endif
else // if i >= 835482 then
if i < 843673 then
return array103[i - 835482]
else
return array104[i - 843673]
endif
endif
endif
else // if i >= 851864 then
if i < 884628 then
if i < 868246 then
if i < 860055 then
return array105[i - 851864]
else
return array106[i - 860055]
endif
else // if i >= 868246 then
if i < 876437 then
return array107[i - 868246]
else
return array108[i - 876437]
endif
endif
else // if i >= 884628 then
if i < 901010 then
if i < 892819 then
return array109[i - 884628]
else
return array110[i - 892819]
endif
else // if i >= 901010 then
if i < 909201 then
return array111[i - 901010]
else
return array112[i - 909201]
endif
endif
endif
endif
else // if i >= 917392 then
if i < 982920 then
if i < 950156 then
if i < 933774 then
if i < 925583 then
return array113[i - 917392]
else
return array114[i - 925583]
endif
else // if i >= 933774 then
if i < 941965 then
return array115[i - 933774]
else
return array116[i - 941965]
endif
endif
else // if i >= 950156 then
if i < 966538 then
if i < 958347 then
return array117[i - 950156]
else
return array118[i - 958347]
endif
else // if i >= 966538 then
if i < 974729 then
return array119[i - 966538]
else
return array120[i - 974729]
endif
endif
endif
else // if i >= 982920 then
if i < 1015684 then
if i < 999302 then
if i < 991111 then
return array121[i - 982920]
else
return array122[i - 991111]
endif
else // if i >= 999302 then
if i < 1007493 then
return array123[i - 999302]
else
return array124[i - 1007493]
endif
endif
else // if i >= 1015684 then
if i < 1032066 then
if i < 1023875 then
return array125[i - 1015684]
else
return array126[i - 1023875]
endif
else // if i >= 1032066 then
if i < 1040257 then
return array127[i - 1032066]
else
return array128[i - 1040257]
endif
endif
endif
endif
endif
endif
endif