MINI MINI MANI MO

Path : /usr/lib64/python3.6/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/__pycache__/numbers.cpython-36.pyc

3


 \(@sdZddlmZmZdddddgZGddded	ZGd
ddeZejeGdddeZ	e	je
Gddde	ZGd
ddeZeje
dS)z~Abstract Base Classes (ABCs) for numbers, according to PEP 3141.

TODO: Fill out more detailed documentation on the operators.)ABCMetaabstractmethodNumberComplexRealRationalIntegralc@seZdZdZfZdZdS)rzAll numbers inherit from this class.

    If you just want to check if an argument x is a number, without
    caring what kind, use isinstance(x, Number).
    N)__name__
__module____qualname____doc__	__slots____hash__rr/usr/lib64/python3.6/numbers.pyrs)	metaclassc@seZdZdZfZeddZddZeeddZ	eedd	Z
ed
dZedd
ZeddZ
eddZddZddZeddZeddZeddZeddZeddZed d!Zed"d#Zed$d%Zed&d'Zd(S))raaComplex defines the operations that work on the builtin complex type.

    In short, those are: a conversion to complex, .real, .imag, +, -,
    *, /, abs(), .conjugate, ==, and !=.

    If it is given heterogenous arguments, and doesn't have special
    knowledge about them, it should fall back to the builtin complex
    type as described below.
    cCsdS)z<Return a builtin complex instance. Called for complex(self).Nr)selfrrr__complex__-szComplex.__complex__cCs|dkS)z)True if self != 0. Called for bool(self).rr)rrrr__bool__1szComplex.__bool__cCstdS)zXRetrieve the real component of this number.

        This should subclass Real.
        N)NotImplementedError)rrrrreal5szComplex.realcCstdS)z]Retrieve the imaginary component of this number.

        This should subclass Real.
        N)r)rrrrimag>szComplex.imagcCstdS)zself + otherN)r)rotherrrr__add__GszComplex.__add__cCstdS)zother + selfN)r)rrrrr__radd__LszComplex.__radd__cCstdS)z-selfN)r)rrrr__neg__QszComplex.__neg__cCstdS)z+selfN)r)rrrr__pos__VszComplex.__pos__cCs
||S)zself - otherr)rrrrr__sub__[szComplex.__sub__cCs
||S)zother - selfr)rrrrr__rsub___szComplex.__rsub__cCstdS)zself * otherN)r)rrrrr__mul__cszComplex.__mul__cCstdS)zother * selfN)r)rrrrr__rmul__hszComplex.__rmul__cCstdS)z5self / other: Should promote to float when necessary.N)r)rrrrr__truediv__mszComplex.__truediv__cCstdS)zother / selfN)r)rrrrr__rtruediv__rszComplex.__rtruediv__cCstdS)zBself**exponent; should promote to float or complex when necessary.N)r)rexponentrrr__pow__wszComplex.__pow__cCstdS)zbase ** selfN)r)rbaserrr__rpow__|szComplex.__rpow__cCstdS)z7Returns the Real distance from 0. Called for abs(self).N)r)rrrr__abs__szComplex.__abs__cCstdS)z$(x+y*i).conjugate() returns (x-y*i).N)r)rrrr	conjugateszComplex.conjugatecCstdS)z
self == otherN)r)rrrrr__eq__szComplex.__eq__N)r	r
rrr
rrrpropertyrrrrrrrrrr r!r"r$r&r'r(r)rrrrr s.	c@seZdZdZfZeddZeddZeddZedd	Z	ed%ddZ
d
dZddZeddZ
eddZeddZeddZeddZeddZddZedd Zed!d"Zd#d$Zd
S)&rzTo Complex, Real adds the operations that work on real numbers.

    In short, those are: a conversion to float, trunc(), divmod,
    %, <, <=, >, and >=.

    Real also provides defaults for the derived operations.
    cCstdS)zTAny Real can be converted to a native float object.

        Called for float(self).N)r)rrrr	__float__szReal.__float__cCstdS)aGtrunc(self): Truncates self to an Integral.

        Returns an Integral i such that:
          * i>0 iff self>0;
          * abs(i) <= abs(self);
          * for any Integral j satisfying the first two conditions,
            abs(i) >= abs(j) [i.e. i has "maximal" abs among those].
        i.e. "truncate towards 0".
        N)r)rrrr	__trunc__szReal.__trunc__cCstdS)z$Finds the greatest Integral <= self.N)r)rrrr	__floor__szReal.__floor__cCstdS)z!Finds the least Integral >= self.N)r)rrrr__ceil__sz
Real.__ceil__NcCstdS)zRounds self to ndigits decimal places, defaulting to 0.

        If ndigits is omitted or None, returns an Integral, otherwise
        returns a Real. Rounds half toward even.
        N)r)rZndigitsrrr	__round__szReal.__round__cCs||||fS)zdivmod(self, other): The pair (self // other, self % other).

        Sometimes this can be computed faster than the pair of
        operations.
        r)rrrrr
__divmod__szReal.__divmod__cCs||||fS)zdivmod(other, self): The pair (self // other, self % other).

        Sometimes this can be computed faster than the pair of
        operations.
        r)rrrrr__rdivmod__szReal.__rdivmod__cCstdS)z)self // other: The floor() of self/other.N)r)rrrrr__floordiv__szReal.__floordiv__cCstdS)z)other // self: The floor() of other/self.N)r)rrrrr
__rfloordiv__szReal.__rfloordiv__cCstdS)zself % otherN)r)rrrrr__mod__szReal.__mod__cCstdS)zother % selfN)r)rrrrr__rmod__sz
Real.__rmod__cCstdS)zRself < other

        < on Reals defines a total ordering, except perhaps for NaN.N)r)rrrrr__lt__szReal.__lt__cCstdS)z
self <= otherN)r)rrrrr__le__szReal.__le__cCstt|S)z(complex(self) == complex(float(self), 0))complexfloat)rrrrrszReal.__complex__cCs|
S)z&Real numbers are their real component.r)rrrrrsz	Real.realcCsdS)z)Real numbers have no imaginary component.rr)rrrrrsz	Real.imagcCs|
S)zConjugate is a no-op for Reals.r)rrrrr(szReal.conjugate)N)r	r
rrr
rr+r,r-r.r/r0r1r2r3r4r5r6r7rr*rrr(rrrrrs(
c@s<eZdZdZfZeeddZeeddZddZ	dS)	rz6.numerator and .denominator should be in lowest terms.cCstdS)N)r)rrrr	numeratorszRational.numeratorcCstdS)N)r)rrrrdenominatorszRational.denominatorcCs|j|jS)afloat(self) = self.numerator / self.denominator

        It's important that this conversion use the integer's "true"
        division rather than casting one side to float before dividing
        so that ratios of huge integers convert without overflowing.

        )r:r;)rrrrr+szRational.__float__N)
r	r
rrr
r*rr:r;r+rrrrrsc@seZdZdZfZeddZddZed%ddZed	d
Z	eddZ
ed
dZeddZeddZ
eddZeddZeddZeddZeddZeddZdd Zed!d"Zed#d$ZdS)&rz@Integral adds a conversion to int and the bit-string operations.cCstdS)z	int(self)N)r)rrrr__int__+szIntegral.__int__cCst|S)z6Called whenever an index is needed, such as in slicing)int)rrrr	__index__0szIntegral.__index__NcCstdS)a4self ** exponent % modulus, but maybe faster.

        Accept the modulus argument if you want to support the
        3-argument version of pow(). Raise a TypeError if exponent < 0
        or any argument isn't Integral. Otherwise, just implement the
        2-argument version described in Complex.
        N)r)rr#modulusrrrr$4s	zIntegral.__pow__cCstdS)z
self << otherN)r)rrrrr
__lshift__?szIntegral.__lshift__cCstdS)z
other << selfN)r)rrrrr__rlshift__DszIntegral.__rlshift__cCstdS)z
self >> otherN)r)rrrrr
__rshift__IszIntegral.__rshift__cCstdS)z
other >> selfN)r)rrrrr__rrshift__NszIntegral.__rrshift__cCstdS)zself & otherN)r)rrrrr__and__SszIntegral.__and__cCstdS)zother & selfN)r)rrrrr__rand__XszIntegral.__rand__cCstdS)zself ^ otherN)r)rrrrr__xor__]szIntegral.__xor__cCstdS)zother ^ selfN)r)rrrrr__rxor__bszIntegral.__rxor__cCstdS)zself | otherN)r)rrrrr__or__gszIntegral.__or__cCstdS)zother | selfN)r)rrrrr__ror__lszIntegral.__ror__cCstdS)z~selfN)r)rrrr
__invert__qszIntegral.__invert__cCstt|S)zfloat(self) == float(int(self)))r9r=)rrrrr+wszIntegral.__float__cCs|
S)z"Integers are their own numerators.r)rrrrr:{szIntegral.numeratorcCsdS)z!Integers have a denominator of 1.r)rrrrr;szIntegral.denominator)N)r	r
rrr
rr<r>r$r@rArBrCrDrErFrGrHrIrJr+r*r:r;rrrrr&s(
N)rabcrr__all__rrregisterr8rr9rrr=rrrr<module>sp
u
_

OHA YOOOO