package Ġio . is land time . internal Ċ Ċ // Ċ // ĠAdapt ed Ġfrom Ġhttps :// github . com / Three Ten / th reet en bp / blob / master / src / main / java / org / th reet en / bp / jdk 8 / J dk 8 Methods . java Ċ // Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . floor Mod ( other : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġreturn Ġ(( this Ġ% Ġother ) Ġ+ Ġother ) Ġ% Ġother Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠInt . floor Mod ( other : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġ(( this Ġ% Ġother ) Ġ+ Ġother ) Ġ% Ġother Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . floor Mod ( other : ĠInt ): ĠLong Ġ= Ġthis Ġfloor Mod Ġother . to Long () Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . floor Div ( other : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ/ Ġother ĊĠĠĠ Ġ// Ġif Ġthe Ġsigns Ġare Ġdifferent Ġand Ġmodulo Ġnot Ġzero , Ġround Ġdown ĊĠĠĠ Ġreturn Ġif Ġ( this Ġxor Ġother Ġ< Ġ 0 Ġ&& Ġresult Ġ* Ġother Ġ!= Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ- Ġ 1 ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠInt . floor Div ( other : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ/ Ġother ĊĠĠĠ Ġ// Ġif Ġthe Ġsigns Ġare Ġdifferent Ġand Ġmodulo Ġnot Ġzero , Ġround Ġdown ĊĠĠĠ Ġreturn Ġif Ġ( this Ġxor Ġother Ġ< Ġ 0 Ġ&& Ġresult Ġ* Ġother Ġ!= Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ- Ġ 1 ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . floor Div ( other : ĠInt ): ĠLong Ġ= Ġthis Ġfloor Div Ġother . to Long () Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . plus Exact ( other : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ+ Ġother ĊĊĠĠĠ Ġif Ġ( this Ġxor Ġresult Ġ< Ġ 0 L Ġ&& Ġthis Ġxor Ġother Ġ>= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this Ġ+ Ġ$ other ' Ġoverflow s Ġa ĠLong ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠInt . plus Exact ( other : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ+ Ġother ĊĊĠĠĠ Ġif Ġ( this Ġxor Ġresult Ġ< Ġ 0 Ġ&& Ġthis Ġxor Ġother Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this Ġ+ Ġ$ other ' Ġoverflow s Ġan ĠInt ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . minus Exact ( other : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ- Ġother ĊĊĠĠĠ Ġif Ġ( this Ġxor Ġresult Ġ< Ġ 0 L Ġ&& Ġthis Ġxor Ġother Ġ< Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this Ġ- Ġ$ other ' Ġoverflow s Ġa ĠLong ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠInt . minus Exact ( other : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ- Ġother ĊĊĠĠĠ Ġif Ġ( this Ġxor Ġresult Ġ< Ġ 0 Ġ&& Ġthis Ġxor Ġother Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this Ġ- Ġ$ other ' Ġoverflow s Ġan ĠInt ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . times Exact ( other : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġother Ġ== Ġ 1 L Ġ-> Ġthis ĊĠĠĠĠĠĠĠ Ġthis Ġ== Ġ 1 L Ġ-> Ġother ĊĠĠĠĠĠĠĠ Ġthis Ġ== Ġ 0 L Ġ|| Ġother Ġ== Ġ 0 L Ġ-> Ġ 0 L ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal Ġ= Ġthis Ġ* Ġother ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( this Ġ== ĠLong . MIN _ VALUE Ġ&& Ġother Ġ== Ġ- 1 L ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( other Ġ== ĠLong . MIN _ VALUE Ġ&& Ġthis Ġ== Ġ- 1 L ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Ġ/ Ġother Ġ!= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this Ġ* Ġ$ other ' Ġoverflow s Ġa ĠLong ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠInt . times Exact ( other : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġtotal Ġ= Ġthis . to Long () Ġ* Ġother . to Long () ĊĊĠĠĠ Ġif Ġ( total Ġ! in ĠInt . MIN _ VALUE .. Int . MAX _ VALUE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this Ġ* Ġ$ other ' Ġoverflow s Ġan ĠInt ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġtotal . toInt () Ċ } Ċ Ċ internal Ġactual Ġin fix Ġfun ĠLong . times Exact ( other : ĠInt ): ĠLong Ġ= Ġthis Ġtimes Exact Ġother . to Long () Ċ Ċ internal Ġactual Ġfun ĠInt . neg ate Exact (): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== ĠInt . MIN _ VALUE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this ' Ġcan 't Ġbe Ġneg ated Ġwithout Ġoverflow ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ- this Ċ } Ċ Ċ internal Ġactual Ġfun ĠLong . neg ate Exact (): ĠLong Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== ĠLong . MIN _ VALUE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this ' Ġcan 't Ġbe Ġneg ated Ġwithout Ġoverflow ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ- this Ċ } Ċ Ċ internal Ġactual Ġfun ĠLong . toInt Exact (): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ! in ĠInt . MIN _ VALUE .. Int . MAX _ VALUE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception ("' $ this ' Ġcan 't Ġbe Ġconverted Ġto ĠInt Ġwithout Ġoverflow ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġto Int () Ċ }