/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 , ĠSa alf eld ĠLab , ĠHH MI ĠJ anel ia Ċ Ġ* ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ 1 . ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis Ċ Ġ* ĠĠĠ Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ 2 . ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ Ġ* ĠĠĠ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " Ċ Ġ* ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE Ċ Ġ* ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE Ċ Ġ* ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠHOLDER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE Ċ Ġ* ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL Ċ Ġ* ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR Ċ Ġ* ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER Ċ Ġ* ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , Ċ Ġ* ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE Ċ Ġ* ĠOF ĠTHIS ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ Ċ // Ġauto - generated , Ġdo Ġnot Ġmodify ! Ċ Ċ package Ġorg . nt akt Ċ Ċ import Ġkotlin . String Ċ import Ġnet . img lib 2 . converter . Bi Converter Ċ import Ġnet . img lib 2 . type . Type Ċ import Ġnet . img lib 2 . type . numeric . Numeric Type Ċ import Ġnet . img lib 2 . type . operators . Add Ċ import Ġnet . img lib 2 . type . operators . Div Ċ import Ġnet . img lib 2 . type . operators . Mul Ċ import Ġnet . img lib 2 . type . operators . Sub Ċ Ċ class ĠBi Converter Plus < T > Ġ: ĠBi Converter < T , ĠT , ĠT > Ġwhere ĠT Ġ: ĠAdd < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠ Ġoverride Ġfun Ġconvert ( ĊĠĠĠ Ġs 1 : ĠT , ĊĠĠĠ Ġs 2 : ĠT , ĊĠĠĠ Ġt : ĠT ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġt . set ( s 1 ) ĊĠĠĠ Ġt Ġ+= Ġs 2 ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġ< T > Ġinstance (): ĠBi Converter Plus < T > Ġwhere ĠT Ġ: ĠAdd < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠBi Converter Plus < T >() ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ class ĠBi Converter Minus < T > Ġ: ĠBi Converter < T , ĠT , ĠT > Ġwhere ĠT Ġ: ĠSub < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠ Ġoverride Ġfun Ġconvert ( ĊĠĠĠ Ġs 1 : ĠT , ĊĠĠĠ Ġs 2 : ĠT , ĊĠĠĠ Ġt : ĠT ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġt . set ( s 1 ) ĊĠĠĠ Ġt Ġ-= Ġs 2 ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġ< T > Ġinstance (): ĠBi Converter Minus < T > Ġwhere ĠT Ġ: ĠSub < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠBi Converter Minus < T >() ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ class ĠBi Converter Times < T > Ġ: ĠBi Converter < T , ĠT , ĠT > Ġwhere ĠT Ġ: ĠMul < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠ Ġoverride Ġfun Ġconvert ( ĊĠĠĠ Ġs 1 : ĠT , ĊĠĠĠ Ġs 2 : ĠT , ĊĠĠĠ Ġt : ĠT ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġt . set ( s 1 ) ĊĠĠĠ Ġt Ġ*= Ġs 2 ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġ< T > Ġinstance (): ĠBi Converter Times < T > Ġwhere ĠT Ġ: ĠMul < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠBi Converter Times < T >() ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ class ĠBi Converter Div < T > Ġ: ĠBi Converter < T , ĠT , ĠT > Ġwhere ĠT Ġ: ĠDiv < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠ Ġoverride Ġfun Ġconvert ( ĊĠĠĠ Ġs 1 : ĠT , ĊĠĠĠ Ġs 2 : ĠT , ĊĠĠĠ Ġt : ĠT ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġt . set ( s 1 ) ĊĠĠĠ Ġt Ġ/= Ġs 2 ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġ< T > Ġinstance (): ĠBi Converter Div < T > Ġwhere ĠT Ġ: ĠDiv < T >, ĠT Ġ: ĠType < T > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠBi Converter Div < T >() ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ object ĠArithmetic Converters Ġ{ ĊĠ Ġoperator Ġfun Ġ< T Ġ: ĠNumeric Type < T >> Ġget ( operator : ĠString ): ĠBi Converter < T , ĠT , ĠT > Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( operator . toLowerCase ()) Ġ{ ĊĠĠĠĠĠ Ġ" plus " Ġ-> ĠBi Converter Plus . instance < T >() ĊĠĠĠĠĠ Ġ" minus " Ġ-> ĠBi Converter Minus . instance < T >() ĊĠĠĠĠĠ Ġ" times " Ġ-> ĠBi Converter Times . instance < T >() ĊĠĠĠĠĠ Ġ" div " Ġ-> ĠBi Converter Div . instance < T >() ĊĠĠĠĠĠ Ġelse Ġ-> Ġerror (" Operator Ġnot Ġsupported : Ġ$ operator ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoperator Ġfun Ġ< T Ġ: ĠNumeric Type < T >> Ġget ( operator : ĠString , Ġtype : ĠT ): ĠBi Converter < T , ĠT , ĠT > Ġ= ĊĠĠĠĠĠ Ġget ( operator ) Ċ } Ċ