(self)
return e + len(str(10**-e - c)) - 1
Compute a lower bound for the adjusted exponent of self.ln().
        In other words, compute r such that self.ln() >= 10**r.  Assumes
        that self is finite and positive and that self != 1.
Compute a lower bound for the adjusted exponent of self.ln().
        In other words, compute r such that self.ln() >= 10**r.  Assumes
        that self is finite and positive and that self != 1.
Compute a lower bound for the adjusted exponent of self . ln () . In other words compute r such that self . ln () > = 10 ** r . Assumes that self is finite and positive and that self ! = 1 .
def _ln_exp_bound(self):
        """Compute a lower bound for the adjusted exponent of self.ln().
        In other words, compute r such that self.ln() >= 10**r.  Assumes
        that self is finite and positive and that self != 1.
        """

        # for 0.1 <= x <= 10 we use the inequalities 1-1/x <= ln(x) <= x-1
        adj = self._exp + len(self._int) - 1
        if adj >= 1:
            # argument >= 10; we use 23/10 = 2.3 as a lower bound for ln(10)
            return len(str(adj*23//10)) - 1
        if adj <= -2:
            # argument <= 0.1
            return len(str((-1-adj)*23//10)) - 1
        op = _WorkRep(self)
        c, e = op.int, op.exp
        if adj == 0:
            # 1 < self < 10
            num = str(c-10**-e)
            den = str(c)
            return len(num) - len(den) - (num < den)
        # adj == -1, 0.1 <= self < 1
        return e + len(str(10**-e - c)) - 1
def _ln_exp_bound ( self ) : # for 0.1 <= x <= 10 we use the inequalities 1-1/x <= ln(x) <= x-1 adj = self . _exp + len ( self . _int ) - 1 if adj >= 1 : # argument >= 10; we use 23/10 = 2.3 as a lower bound for ln(10) return len ( str ( adj * 23 // 10 ) ) - 1 if adj <= - 2 : # argument <= 0.1 return len ( str ( ( - 1 - adj ) * 23 // 10 ) ) - 1 op = _WorkRep ( self ) c , e = op . int , op . exp if adj == 0 : # 1 < self < 10 num = str ( c - 10 ** - e ) den = str ( c ) return len ( num ) - len ( den ) - ( num < den ) # adj == -1, 0.1 <= self < 1 return e + len ( str ( 10 ** - e - c ) ) - 1