package Ġit . uni bo . tup ro log . core . impl Ċ Ċ import Ġit . uni bo . tup ro log . core . Real Ċ import Ġit . uni bo . tup ro log . core . Term Ċ import Ġorg . g ci at to . kt . math . BigDecimal Ċ import Ġorg . g ci at to . kt . math . BigInteger Ċ Ċ @ Suppress (" Equals Or HashCode ") Ċ internal Ġclass ĠReal Impl ( override Ġval Ġvalue : ĠBigDecimal ) Ġ: ĠNumeric Impl (), ĠReal Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdecimal Value : ĠBigDecimal Ġ= Ġvalue ĊĊĠĠĠ Ġoverride Ġval Ġint Value : ĠBigInteger Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue . to BigInteger () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĊĠĠĠĠĠĠĠ ĠReal . toString Ens uring Decimal ( value ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull Ġ|| Ġother Ġ! is ĠReal ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġequals To Real ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" NOTH ING _ TO _ INLINE ") ĊĠĠĠ Ġprivate Ġinline Ġfun Ġequals To Real ( other : ĠReal ) Ġ= ĊĠĠĠĠĠĠĠ Ġvalue . compareTo ( other . value ) Ġ== Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠTerm , Ġuse Var Complete Name : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġother Ġis ĠReal Ġ&& Ġequals To Real ( other ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠhashCode Cache : ĠInt Ġby Ġlazy Ġ{ Ġvalue . strip Trailing Z eros (). hashCode () Ġ} Ċ } Ċ