/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 9 ĠU gl jes a ĠJ ovan ov ic Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . ion spin . kotlin . b ignum . integer Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠU gl jes a ĠJ ovan ov ic Ċ Ġ* Ġug lj es a . j ovan ov ic @ ion spin . com Ċ Ġ* Ġon Ġ 1 0 - Mar - 2 0 1 9 Ċ Ġ*/ Ċ Ċ fun ĠLong . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from Long ( this ) Ċ } Ċ Ċ fun ĠInt . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from Int ( this ) Ċ } Ċ Ċ fun ĠShort . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from Short ( this ) Ċ } Ċ Ċ fun ĠByte . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from Byte ( this ) Ċ } Ċ Ċ fun ĠString . to BigInteger ( base : ĠInt Ġ= Ġ 1 0 ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . parse String ( this , Ġbase ) Ċ } Ċ Ċ fun ĠU Long . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from UL ong ( this ) Ċ } Ċ Ċ fun ĠUInt . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from UInt ( this ) Ċ } Ċ Ċ fun ĠU Short . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from U Short ( this ) Ċ } Ċ Ċ fun ĠU Byte . to BigInteger (): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn ĠBigInteger . from U Byte ( this ) Ċ } Ċ Ċ // Ċ // Ġ Ġ-------- ĠBasic Ġtype Ġarithmetic Ġoperation Ġextensions Ġ------- Ċ // Ċ Ċ // Ġ--------- ĠAdd ition Ġ---------------- - Ċ Ċ operator Ġfun ĠLong . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠInt . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠShort . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠByte . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠU Long . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠUInt . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠU Short . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ operator Ġfun ĠU Byte . plus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ+ Ġother Ċ } Ċ Ċ // Ġ--------- ĠSub traction Ġ---------------- - Ċ Ċ operator Ġfun ĠLong . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠInt . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠShort . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠByte . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠU Long . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠUInt . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠU Short . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ operator Ġfun ĠU Byte . minus ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ- Ġother Ċ } Ċ Ċ // Ġ--------- ĠMultip lication Ġ---------------- - Ċ Ċ operator Ġfun ĠLong . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠInt . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠShort . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠByte . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠU Long . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠUInt . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠU Short . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ operator Ġfun ĠU Byte . times ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ* Ġother Ċ } Ċ Ċ // Ġ--------- ĠDiv ision Ġ---------------- - Ċ Ċ operator Ġfun ĠLong . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠInt . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠShort . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠByte . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠU Long . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠUInt . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠU Short . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ operator Ġfun ĠU Byte . div ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ/ Ġother Ċ } Ċ Ċ // Ġ--------- ĠRem ain der Ġ---------------- - Ċ Ċ operator Ġfun ĠLong . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠInt . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠShort . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠByte . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠU Long . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠUInt . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠU Short . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ Ċ operator Ġfun ĠU Byte . rem ( other : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠ Ġreturn Ġthis . to BigInteger () Ġ% Ġother Ċ } Ċ