diff --git a/vlib/math/big/big_test.v b/vlib/math/big/big_test.v index a79a4e09c6..6e9fad91e1 100644 --- a/vlib/math/big/big_test.v +++ b/vlib/math/big/big_test.v @@ -480,6 +480,24 @@ const big_mod_pow_test_data = [ '31195165372897259196222538898096203590151924108450147950531565441852619837316692843188389598728651769482088968838700984268947453885587967878549286444999755742573423371025356539077075265986419171772426279084559025861175301940492273427120221755816136975739916983004778387946699939545354293487098252428954036286183995782377175227121587657233553706589448547148066273280603243167958729707736664649187444136702017299877489729451997277875868782399735511520086969969766278182145454186690598629675562422923132555707758646587702550600894625696538109646366308973392363200122154242784576162149305816215109893613161331026672647000825615987247035266514313689413563779184515427920269935280569035788081552413007563772309295149800172031645681720569680154349893907395864528243629654386620034655445226295834594630792819545156798270599481573436039129275439653984521135652249263653985326577886990615665734998585216581730937090703518997669223802429711292740491797911117308280939507973715877108492303860661291987529284719391551256912380499409630332506454532263266457209921483705507359152839264852808182519011100934922492651373859423833024010283468753147686188675294998119637462200763443029190704825719342806119404339670408160210011918981038977425180213726646978883378058838510330816291941879581568740273684084511318422175006728346276489384220596694727036836687670632486602655240593463885077059375085482211864761344849868123074687509143827139683659102930877963676911995751113159944160296419825178911962487549670296207457410515598040046860567719116506974858703739531721991704589155513182996455827177472', '20080128881481836026329919458482291336427826856257996902940216961274769492432457342329585911526680598599706497937330675336231322550089070961997878231160797014417182095610964306078005177657705895303701167263611016504813896879268670353690809857529479048652197026092060293580162938995900771157020773980149060390600886988165389386800313399935681668574561849644795370126640258861886083152431680309682414362667647047408205246634496700184520404072535696087062725321498879508195864728319264953502905783599235208616928912295007582161378604427602444176983900856363236858555001132922259491209136145654862306503211818341793436738181575298025051779368026867674815572620689517665845691581156037531328681002192885908572782500210185856071870996928958700199226442991667291661898788475465881534872952976564959204125435567408766407069080824764398534937188392006557445009391997597405999602710062336419706104598663078108578494090878260551511868925451048198114479011315931259263368212342695453474607592164864833976245439378166385649596428707473508482940426102862136582304433403471613967149235623865180698593404828164563801111816849132293956996556247415009648932020221786934682827799748481777622180801590275002765776928805756187584952776044614940158088391767782343033313716059721086499569092199761880797791493764006487948292742803823944731896556184944138299575510183812680359579022267096795084742403276965131310267236257021618824374001979653996305168583849734973984410291953747451176667816227487401602863864660642232048020325795772190251487050535547981550465960228478297407995702324941118877701015321', }, + BigModPowTest{ + '919883988246145022313927375667609631628', + '11258911920206359584', + '10961431611736082634', + '3987973861467626556', + }, + BigModPowTest{ + '319978239103006490429056663053051872523340306', + '3450311374119871456', + '16136980157234240016', + '6495281920355297920', + }, + BigModPowTest{ + '6572721605915324110691520672890333438736158723396', + '8598931276445806048', + '6234270195866676796', + '2267960990325264040', + }, ] // vfmt on diff --git a/vlib/math/big/exponentiation.v b/vlib/math/big/exponentiation.v index f0a9b00c4c..6142ceb2f8 100644 --- a/vlib/math/big/exponentiation.v +++ b/vlib/math/big/exponentiation.v @@ -224,11 +224,7 @@ fn (a Integer) exp_binary(x Integer, m Integer) Integer { mut r := one_int mut start := true - mut wstart := if x.bit_len() - 1 > n { - int(n) - } else { - x.bit_len() - 1 - } + mut wstart := x.bit_len() - 1 mut wend := 0 mut wvalue := 1