www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20493] New: Incorrect result of BigInt * BigInt

https://issues.dlang.org/show_bug.cgi?id=20493

          Issue ID: 20493
           Summary: Incorrect result of BigInt * BigInt
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: tankf33der disroot.org

void main()
{
    import std.bigint;
    import std.stdio: writeln;
    BigInt a =
"-1842715020208853838327463061046454882905377013501590882138216780561467260877446549989924291520960013329713360734907976811650821496501491803331130702042954054651344568739835947664108318817035990848186446038664428508434553223317822973669623736011003787093463198922109083728556165276076019918784073526159350296967334828139286720184760118017682787980587559511502738560986450611201892988193882246659315145624545242893957637927368726079177516927634850569100127456600036306332956299516241686085896278111336197027464304473916209819071375370200172218616033678832404850156212940847510011353504139153578717247275219538569219177891416859716640739663727224782384267011431079657299691909622971709057719550730673608768387207193829704678761459703705626421778042782073002087177989229359943380935512232976794197794527666935561532129383599329853225131862967018043226625716388321240653151881120694844750810047408724361320135528250898706801756144454456821651715841596039528029461149718125975252224032737360604114227465491259368715619819615505340022843764524504154403826126245864831569325539708582643047212469058381046885384425795023790863674902256335164460405995119454468105488059095227868093331784756797970418850037168699410138649921490284350071984383644515828287409374218807360929427337835112144175354343982736111808427478411633166572551140628891786855373956362394300457962792128900258503834482535492165729173006069622292898693979640105967717920298022710794928838735709719020470456707111871683774846869958743895167993167898014702298877793132267395678990210482304568367658835852324285701455187380047364592684142582528213969115058364549502669899599674691758817830649087110593656752622055661297897499251734602044367656288955986103293812056989136791747081641697573929257957692527751199585893981108015862692589643642406216867933059610937521312684518031983584261510225160026183584772947120465739423693612292857788037358984165274472117046791075349875218158478357004477411523654339176376931822185440319950653124523670678618970932424087891362459702320786269289109155044204698279000343325824716597245154749960319050152362580422557684049110037679545948724522131853755814766779895917941380946120632399494094496999704168853052092892916869429814185088535276120386554336436498930081213637403317751443880179856090091346759121823918636004333140993749142151240665055002249322878947807712073527730492382888624892268098472434084422267296589733031518549992107356452088319937511009018187894788830218207653468018146440419622681754723048564205441086636778243822165763221655895459388372864891991281231728783850213110237663500950828575556040718918921310288568951741480455819917853339929591183243536399662846177859106679156896782243318873743888069632060993200271212272972400814320217855555226897639107694204642693186048964375934645598166974648163235962835920577023855872270761901909283184053349818580670839566306991437995686424774081714266943400521374426757376891643423499840157387135039602142339726695281908128600723535861108988265001518250483828491321419824224810153484625218321726727303490153599851354848573373937691072477512571534786951498996533814581171553679488419481323639999878609715095948940205992173627549712247304974614878635563916999178740433116702088205845320810409370686253532230242292326037795821275591507576715357035130486055878771987332375066845939057847834285396783366444166783298420197020251317062252078147861027174979591153808788842475768534639026705556673164263128144088175691742715207396213871305535497138092787434151541393105983248031459895866050908531168549588452375178722576930028526653296452015300921206425027096890995459459113312615749153088538724176941032323558972961741185331279456244167357199462907443182686430955629993171427451541985133953746254392715765670478452526597286172772276606349937199984229823264639632459690890639305654733937147817";
    BigInt b =
"-795015763987812394601678989995149918484808985675990860049882447762319297137926894907724803811163368024504821537291120357841366799112222449692677688299101260770275703096995437010460065194727137147465313919717348795084789769583720211630646322020645226482233335558209269732193305546424678041359437147767134599622277091217609040686970695201790306902731614632708088570454043187350252050362751021453739949307929537730874707021187907402570192495668395505766540321282572956467236609560933688045618312952127475893519364045740568632917710701008897161916647967179700755461933127680577928053359963079955213279252692129744432606738300534158596436366616891254055538770360571642497048075173757652787938409093616460748001454579709944783050865063436428831897810707419313324031042707602213877478112980575574617851254848666041995464606028659567189289353853665619035777818234201668166062849756735581261208359623628297296901400168170994195285690049006806558328859717605966866214868659696604775261325405845051695330360846306446722747309406968073620043937927089283447907904038346793122304516623774952304952214596109946256326252361253329490298706819292689237978789402027902719261827336724395631111831615304901324694150001151200589036714865052206829777037506374909215599993530018509200796345431657857368562961849948208212150110120300583223586747858383618552303715224184138053297648761350316698222295020420346165859230227827075773100320424799793270584316931966626459368569872563156740531948248129339298609099705793697444168943004705341970739725767476304564417180097616228228377419526978500192972225665204635620545667689460673231757641760429391150436106249431308002338927621885218855303158995977346333111704751081970024294165113385634614222965418862647362086252628363050404063961445836252911936622838835264789693335611814157414007625128158664299172367190532720642397124115013552021526784118439916882732784709260675703033129981218338260111873606707166515117001237787129375549060389588253096320010830760659907517867038277251775723307262659551943492403881174546494630063868091669249364461720735162086928693897869914704077628700025358501607194440147117880819370785805614075687342720432355963363037357685032707478904857051352271749972396512412227399150336866287274469899918551623298181904590370495161379";
    auto c = a * b;
    writeln(c); 
    //
"1464987489603159090314375891574658597902172171715582527096274578185081153742038021710708983391794388209054501363698214433404196773946587739216284831670443810430488270019033484786344817967066237615719148510621924616099931459014469048842705047258091825568003831562493777282297502454686913285612650314729338222490383913875610457649393611787293383648653603447194055896351721613758861676596148605859651853970261830141533140601991075234679460859636084715971379542656976667107139656406817619226201480605901652056383566565338619285627678825269544908067497013770922565533536811281517496474858226374710767215712532613048257117909060712481234512394685392418870200450510807050148745655599019780981123136916239583500078368426432476588111574356925601308407606980194521223960214142433633452454435407713051141286228350972582595543867590992111524779486133411973884166624194124769729495948036951551353157321161441208649030641890423880281993830725828106555702189766523484485674054598959514347940144311563186441887643619986970185081415927419717436795000473727219323261545452222473887907377383697546880620696012495699107039076493810099481813268673926476363285700992767395050114188018448608336796232838111993227984032220704884958973095098365395670545673082803650320830157225370155554228780003639872567176928474539750428343996205280801072709436506945085233412319492813398929664715993531684782658668385248821335828428421446902412017310299194417379251374761066509490321653766671236614502552338499478603487732132787714591805828798532635831003892007599690170840219394554310989478184361871941570881344709431392593902600758765361364874647636899170278255980879713830169550083644206807015349517661217918252822797291338350975675063221413497021997731117277005774162475461486359716655368033924357321938865884469356772246700537855980163570896996579247612807693044517585981983639030162147044123792547961213233071472278446697344221352300678122610665018980651087249543616284644218323816720869694833575826296189926526681758676255566067956457974879594480705192225351540249302894587322464317563517079639518038974916241703625182259141545952755861224885795686360800016935176952286000032403029032153621785929797362148606963339162947262074128594133294202227252295640389081211309244839537817138550819258984614215268630215735787503176464892475665487588700912325970372413952181803133344897112938077483852756893639395540291483583773238438602907359779503866316853631408739914505474722817909949971650855342140186663148487376335299837261538509895459611359215806456304398991473464620782898169603686340737197021732904850998346164186426844879571948647470590738277605414571504648551522774121986241014777218637467271826698877152858459649396665389704925615548657021697697398704218157839974947812099704939577911264215074000046156698264077044733515186486124550263892982088721220056104975516799380502343487730547655902139066001796285603271680264179868865009502347927373669521214838984117073703283734240447195577401614105717350363844435101636492302627281345105428541433916490342503060141593168770102620850667011574089680513385612078024956611235395656744320870333916831201965900147614250293210067243705747669958190294400256079375791327319924632004615565507599021614715481150356251880326849675682832171994438826643872693569397714463457516311413298197669958906475404988345307918315049700370447245047795001461108046502929509041281794664458364694098665304660309971309335356283638935581499197194712850551046638321537017799780950680867294368247922356112926755457437997139519674155556595569541334604478553778251149637323825543593202459833498816446060037746078977717475647285937456050087910229216162622849835081208061826143097262021226832675125830936672101418329900143288295796140650660466733608746965173294561792931465816605305574696072623669162268132814467169981025325518351180611218367594443838059218026019490444802507878674860867892598546321205886881831239552919727487523029115189199051740386363435025249984147113129561698435569952389722668400888387321398045269498836680734874539556013136733825148145995428294679181727841865285119686594375942738532944934106059820669944306323440620672228301738524183842028397432115717213514003005023039263847705207322632509073740001094662567881964262139095026407376296918734199497526087601750149327923175436391127689801495743969647181942687288772748538466468885124574538998530229201253599732674076955799786824939077512596525627538383118325323410100900106445507808112671262865510807546960805048832093170383453331653440494777981384528671811802761329976132367856510927661909442727317828995476401831805397270663985341990292352489630976377975247167477072088073048917460187776827233225270192463947679195767112780290531845793580572091523694546482347326723605928022201930007650880477190407664529753995543799309413084810451483080016784431622711363363534656169396663408887834709526497980455425182694498053092683648069710344661869759299946818907316414749876878048510441077960629446984952313574143153534606562439207526472844518419407852394716095478030337682905505094164083573120718476218962753126397522541878646170149810075835829092513877578109468613689092200474414841473848485231257432759165275419503161089823383340105897774341305636100871537452529817581510589503381827080948286543669528163988932723218069052234962559335805919305028388004145733507339563760796012261015579892817905614867965948433942373597319599047927612164395875202332790060821892906396109448451018339701696451536537343984791469550826343393363097540827172970157964769956999005911617384147153156873496486336644590866717764202498756156178656924864382788407500385174472263436607180618932789723459793850523460641032205550958410834830000304912214335486322773582634491582742016268460761497426107463991671343732255564091634576471153185470951869463036117138765403050602962089337728075027626925206976026838399785290150278499326644205967747909984536922521508510663506178957861113857999086486596557632430453146201068057225706511103157686199662881405183547583915387425941593618759248124352220038359106165087211406032926959843266797281691254117320500254884993827730061405921571309799110683"
}



Python 3.8.1 (default, Dec 23 2019, 13:11:45)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
 -18427150202088538383274630610464548829053770135015908821382167805614672608774465499899242915209600133297133607349079768116508214965014918033311307020429540546513445687398359476641083188170359908481864460386644285084345532233178229736696237360110037870934631989221090837285561652760760199187840735261593502969673348281392867201847601180176827879805875595115027385609864506112018929881938822466593151456245452428939576379273687260791775169276348505691001274566000363063329562995162416860858962781113361970274643044739162098190713753702001722186160336788324048501562129408475100113535041391535787172472752195385692191778914168597166407396637272247823842670114310796572996919096229717090577195507306736087683872071938297046787614597037056264217780427820730020871779892293599433809355122329767941977945276669355615321293835993298532251318629670180432266257163883212406531518811206948447508100474087243613201355282508987068017561444544568216517158415960395280294611497181259752522240327373606041142274654912593687156198196155053400228437645245041544038261262458648315693255397085826430472124690583810468853844257950237908636749022563351644604059951194544681054880590952278680933317847567979704188500371686994101386499214902843500719843836445158282874093742188073609294273378351121441753543439827361118084274784116331665725511406288917868553739563623943004579627921289002585038344825354921657291730060696222928986939796401059677179202980227107949288387357097190204704567071118716837748468699587438951679931678980147022988777931322673956789902104823045683676588358523242857014551873800473645926841425825282139691150583645495026698995996746917588178306490871105936567526220556612978974992517346020443676562889559861032938120569891367917470816416975739292579576925277511995858939811080158626925896436424062168679330596109375213126845180319835842615102251600261835847729471204657394236936122928577880373589841652744721170467910753498752181584783570044774115236543391763769318221854403199506531245236706786189709324240878913624597023207862692891091550442046982790003433258247165972451547499603190501523625804225576840491100376795459487245221318537558147667798959179413809461206323994940944969997041688530520928929168694298141850885352761203865543364364989300812136374033177514438801798560900913467591218239186360043331409937491421512406650550022493228789478077120735277304923828886248922680984724340844222672965897330315185499921073564520883199375110090181878947888302182076534680181464404196226817547230485642054410866367782438221657632216558954593883728648919912812317287838502131102376635009508285755560407189189213102885689517414804558199178533399295911832435363996628461778591066791568967822433188737438880696320609932002712122729724008143202178555552268976391076942046426931860489643759346455981669746481632359628359205770238558722707619019092831840533498185806708395663069914379956864247740817142669434005213744267573768916434234998401573871350396021423397266952819081286007235358611089882650015182504838284913214198242248101534846252183217267273034901535998513548485733739376910724775125715347869514989965338145811715536794884194813236399998786097150959489402059921736275497122473049746148786355639169991787404331167020882058453208104093706862535322302422923260377958212755915075767153570351304860558787719873323750668459390578478342853967833664441667832984201970202513170622520781478610271749795911538087888424757685346390267055566731642631281440881756917427152073962138713055354971380927874341515413931059832480314598958660509085311685495884523751787225769300285266532964520153009212064250270968909954594591133126157491530885387241769410323235589729617411853312794562441673571994629074431826864309556299931714274515419851339537462543927157656704784525265972861727722766063499371999842298232646396324596908906
9305654733937147817 *
-795015763987812394601678989995149918484808985675990860049882447762319297137926894907724803811163368024504821537291120357841366799112222449692677688299101260770275703096995437010460065194727137147465313919717348795084789769583720211630646322020645226482233335558209269732193305546424678041359437147767134599622277091217609040686970695201790306902731614632708088570454043187350252050362751021453739949307929537730874707021187907402570192495668395505766540321282572956467236609560933688045618312952127475893519364045740568632917710701008897161916647967179700755461933127680577928053359963079955213279252692129744432606738300534158596436366616891254055538770360571642497048075173757652787938409093616460748001454579709944783050865063436428831897810707419313324031042707602213877478112980575574617851254848666041995464606028659567189289353853665619035777818234201668166062849756735581261208359623628297296901400168170994195285690049006806558328859717605966866214868659696604775261325405845051695330360846306446722747309406968073620043937927089283447907904038346793122304516623774952304952214596109946256326252361253329490298706819292689237978789402027902719261827336724395631111831615304901324694150001151200589036714865052206829777037506374909215599993530018509200796345431657857368562961849948208212150110120300583223586747858383618552303715224184138053297648761350316698222295020420346165859230227827075773100320424799793270584316931966626459368569872563156740531948248129339298609099705793697444168943004705341970739725767476304564417180097616228228377419526978500192972225665204635620545667689460673231757641760429391150436106249431308002338927621885218855303158995977346333111704751081970024294165113385634614222965418862647362086252628363050404063961445836252911936622838835264789693335611814157414007625128158664299172367190532720642397124115013552021526784118439916882732784709260675703033129981218338260111873606707166515117001237787129375549060389588253096320010830760659907517867038277251775723307262659551943492403881174546494630063868091669249364461720735162086928693897869914704077628700025358501607194440147117880819370785805614075687342720432355963363037357685032707478904857051352271749972396512412227399150336866287274469899918551623298181904590370495161379
1464987489603159090314375891574658597902172171715582527096274578185081153742038021710708983391794388209054501363698214433404196773946587739216284831670443810430488270019033484786344817967066237615719148510621924616099931459014469048842705047258091825568003831562493777282297502454686913285612650314729338222490383913875610457649393611787293383648653603447194055896351721613758861676596148605859651853970261830141533140601991075234679460859636084715971379542656976667107139656406817619226201480605901652056383566565338619285627678825269544908067497013770922565533536811281517496474858226374710767215712532613048257117909060712481234512394685392418870200450510807050148745655599019780981123136916239583500078368426432476588111574356925601308407606980194521223960214142433633452454435407713051141286228350972582595543867590992111524779486133411973884166624194124769729495948036951551353157321161441208649030641890423880281993830725828106555702189766523484485674054598959514347940144311563186441887643619986970185081415927419717436795000473727219323261545452222473887907377383697546880620696012495699107039076493810099481813268673926476363285700992767395050114188018448608336796232838111993227984032220704884958973095098365395670545673082803650320830157225370155554228780003639872567176928474539750428343996205280801072709436506945085233412319492813398929664715993531684782658668385248821335828428421446902412017310299194417379251374761066509490321653766671236614502552338499478603487732132787714591805828798532635831003892007599690170840219394554310989478184361871941570881344709431392593902600758765361364874647636899170278255980879713830169550083644206807015349517661217918252822797291338350975675063221413497021997731117277005774162475461486359716655368033924357321938865884469356772246700537855980163570896996579247612807693044517585981983639030162147044123792547961213233071472278446697344221352300678122610665018980651087249543616284644218323816720869694833575826296189926526681758676255566067956457974879594480705192225351540249302894587322464317563517079639518038974916241703625182259141545952755861224885795686360800016935176952286000032403029032153621785929797362148606963339162947262074128594133294202227252295640389081211309244839537817138550819258984614215268630215735787503176464892475665487588700912325970372413952181803133344897112938077483852756893639395540291483583773238438602907359779503866316853631408739914505474722817909949971650855342140186663148487376335299837261538509895459611359215806456304398991473464620782898169603686340737197021732904850998346164186426844879571948647470590738277605414571504648551522774121986241014777218637467271826698877152858459649396665389704925615548657021697697398704218157839974947812099704939577911264215074000046156698264077044733515186486124550263892982088721220056104975516799380502343487730547655902139066001796285603271680264179868865009502347927373669521214838984117073703283734240447195577401614105717350363844435101636492302627281345105428541433916490342503060141593168770102620850667011574089680513385612078024956611235395656744320870333916831201965900147614250293210067243705747669958190294400256079375791327319924632004615565507599021614715481150356251880326849675682832171994438826643872693569397714463457516311413298197669958906475404988345307918315049700370447245047795001461108046502929509041281794664458364694098665304660309971309335356283638935581499197194712850551046638321537017799780950680867294368247922356112926755457437997139519674155556595569541334604478553778251149637323825543593202459833498816446060037746078977717475647285937456050087910229216162622849835081208061826143097262021226832675125830936672101418329900143288295796140650660466733608746965173294561792931465816605305574696072623669162268132814467169981025325518351180611218367594443838059218026019490444802507878674860867892598546321205886881831239552919727487523029115189199051740386363435025249984147113129561698435569952389722668400888387321398045269498836680734874539556013136733825148145995428294679181727841865285119686594375942738532944934106059820669944306323440620672228301738524183842028397432115717178819130973761305765881411490403258403866674959857865479546084382329670251833699503358629658731460284251084294488627161577770864819171703347185718624243357832166076116358508148301226210874150292165458850783118432351872497599485295199950049465117705876969739504007579420048480598156996997410529354153902466729499573212638928127541441338199554610061705392201630264954148115338247599982443381049720058280620356894253905279838962032755054663653815414428852790661726328197886513966685653980807182091320716058484822788016499618240626524750727177956330863355367886621426004964815416097515084105593102467077495144696056519865242728268735554510644044266167734940144515133206874167933892172546982115790585797389032105320512754051295609166826081075273850105889661909383253985691805691971080964472931209617993847984673924739316389810298476056315285284772190240342432230557417978105480646940277778263565288233536012582279502489742911247564092293690118378551825528887431324002711616759451648726941437258342425833164322913041971159295130999263309847373201488652975019080411374217017804408940698411336364939100976317250477751795588333173679367636077945863378037810182531497083729789451503830645491879371255487424197399217707438034680400088612606985581251799875953084365930015160297640194570798498944657643702161803013374870145877488157293776608011080687086533376609117095967997381739271560829337565050904542233534642791814386257656698810875860904570410641590673077299466908368946710819270036374621353842164676358872033622513045527817182635836621257251310681406075344961346217070477491877730254898323142078216039943777247477577161231992656052221299761054215820007024120317236067424055774029336508189610167699619610925754209801457095941920533104165383538680229333118768122790279773796035599707930002643023843192718499564990117599859909089814431483804105709667987321632789317009437955130558098808018526674682363417938936544369656057258451225456578078918502392559643

--
Jan 09