Module Expr Str ImportFrom alias alias ImportFrom alias alias alias ImportFrom alias ImportFrom alias alias ImportFrom alias ImportFrom alias ImportFrom alias alias ImportFrom alias ImportFrom alias alias ImportFrom alias ImportFrom alias alias alias ImportFrom alias alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias alias ImportFrom alias ImportFrom alias alias ImportFrom alias alias Import alias ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad NameLoad NameLoad kwarg body Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad If CompareIs NameLoad NameLoad body Assign NameStore Call NameLoad Num Num orelse Assign NameStore Call NameLoad NameLoad If CompareNotEq Call NameLoad NameLoad Num body Raise Call NameLoad Call AttributeLoad Str attr NameLoad If CompareNotEq Call NameLoad Call NameLoad Call NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad Num body Raise Call NameLoad Str If CompareIsNot NameLoad NameLoad body If CompareIs NameLoad NameLoad body Assign NameStore BinOpDiv NameLoad Call NameLoad BinOpSub Num BinOpPow NameLoad Num orelse If CompareIs NameLoad NameLoad body Assign NameStore BinOpMult NameLoad Call NameLoad BinOpSub Num BinOpPow NameLoad Num If CompareEq NameLoad NameLoad body Return Call NameLoad NameLoad NameLoad NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num Num If CompareEq Call NameLoad NameLoad Num body Return SubscriptLoad NameLoad Index Num Assign TupleStore NameStore NameStore NameLoad Assign NameStore CompareLt BinOpSub NameLoad NameLoad Num If CompareEq NameLoad NameLoad body Return NameLoad orelse If CompareEq NameLoad NameLoad body Return NameLoad Return AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num Num If CompareEq Call NameLoad NameLoad Num body Return SubscriptLoad NameLoad Index Num Assign TupleStore NameStore NameStore NameLoad Assign NameStore CompareLt BinOpSub NameLoad NameLoad Num If CompareEq NameLoad NameLoad body Return NameLoad orelse If CompareEq NameLoad NameLoad body Return NameLoad Return AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return Call NameLoad BinOpMult BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str ImportFrom alias If CompareEq AttributeLoad NameLoad attr Num body Return BinOpMult BinOpMult Num NameLoad AttributeLoad NameLoad attr orelse Assign NameStore Call NameLoad Str keyword NameLoad Return BinOpMult BinOpMult Num AttributeLoad NameLoad attr Call NameLoad Call NameLoad BinOpDiv BinOpSub Num BinOpPow BinOpMult AttributeLoad NameLoad attr NameLoad Num BinOpSub Num BinOpPow NameLoad Num TupleLoad NameLoad Num Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpDiv AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpMult AttributeLoad NameLoad attr BinOpSub Num AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpMult AttributeLoad NameLoad attr BinOpAdd Num AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assign TupleStore NameStore NameStore TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareEq NameLoad NameLoad body Return TupleLoad NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub BinOpPow AttributeLoad NameLoad attr Num BinOpPow AttributeLoad NameLoad attr Num If CompareEq NameLoad AttributeLoad NameLoad attr body Return TupleLoad BinOpAdd NameLoad Call NameLoad Num UnaryOpUSub NameLoad BinOpAdd NameLoad Call NameLoad Num NameLoad orelse If CompareEq NameLoad AttributeLoad NameLoad attr body Return TupleLoad BinOpAdd NameLoad Call NameLoad UnaryOpUSub NameLoad Num BinOpAdd NameLoad Call NameLoad NameLoad Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return TupleLoad BinOpSub AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpSub AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults Num NameLoad body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr If AttributeLoad BinOpDiv NameLoad AttributeLoad NameLoad attr attr body Return Call AttributeLoad Call NameLoad NameLoad NameLoad attr NameLoad NameLoad If AttributeLoad BinOpDiv BinOpMult Num NameLoad AttributeLoad NameLoad attr attr body Return Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Raise Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults Num Num NameLoad body Expr Str Assign NameStore AttributeLoad NameLoad attr If NameLoad body Assign NameStore Call NameLoad NameLoad Return Call AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr AttributeLoad UnaryOpUSub NameLoad attr attr NameLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Return Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword BinOpMult NameLoad NameLoad keyword BinOpMult NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str ImportFrom alias If CompareIn AttributeLoad NameLoad attr TupleLoad Num NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad UnaryOpUSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr orelse Assign TupleStore NameStore NameStore ListComp Call NameLoad NameLoad NameLoad NameLoad comprehension NameStore Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call AttributeLoad Call NameLoad NameLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad TupleLoad NameLoad NameLoad AttributeLoad NameLoad attr keyword NameLoad Raise Call NameLoad Call NameLoad BinOpAdd Str BinOpMod Str TupleLoad Call NameLoad NameLoad Call NameLoad NameLoad Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad If CompareIn NameLoad NameLoad body Return NameLoad If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign TupleStore NameStore NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore AttributeLoad NameLoad attr Assign NameStore BinOpSub BinOpMult Num AttributeLoad NameLoad attr BinOpAdd NameLoad NameLoad orelse Assign NameStore BinOpSub AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Return Call NameLoad AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad If Call AttributeLoad NameLoad attr NameLoad body Return ListLoad If CompareIn NameLoad NameLoad body Assign NameStore BinOpSub AttributeLoad NameLoad attr NameLoad Assign NameStore BinOpMult BinOpPow AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Assign NameStore BinOpMult UnaryOpUSub BinOpPow AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Assign NameStore Call NameLoad Call NameLoad BinOpAdd AttributeLoad NameLoad attr NameLoad Call NameLoad BinOpAdd AttributeLoad NameLoad attr NameLoad Return ListLoad Call NameLoad NameLoad NameLoad orelse If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign TupleStore NameStore NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpSub BinOpSub BinOpMult Num NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad orelse Assign NameStore BinOpSub AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad If BoolOpAnd AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return ListLoad Assign TupleStore NameStore NameStore TupleLoad Call NameLoad Str Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad NameLoad Assign NameStore AttributeLoad Call NameLoad NameLoad Call NameLoad NameLoad NameLoad attr Assign NameStore Call NameLoad ListLoad BinOpSub NameLoad NameLoad NameLoad ListLoad NameLoad NameLoad If CompareEq Call NameLoad NameLoad Num body Assert BoolOpOr CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Num AttributeLoad NameLoad attr CompareEq SubscriptLoad SubscriptLoad NameLoad Index Num Index Num AttributeLoad NameLoad attr Return ListLoad Call NameLoad NameLoad BinOpAdd NameLoad Call NameLoad Num Num Call NameLoad NameLoad BinOpAdd NameLoad Call NameLoad Num Num Return ListLoad Call NameLoad NameLoad SubscriptLoad NameLoad Index Num Call NameLoad NameLoad SubscriptLoad NameLoad Index Num decorator_list Call NameLoad keyword TupleLoad Str FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore NameLoad If Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If Call NameLoad NameLoad NameLoad body Return NameLoad Return BoolOpAnd CompareIsNot NameLoad NameLoad CompareEq Call NameLoad NameLoad Num Call NameLoad SubscriptLoad NameLoad Index Num NameLoad orelse If Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareEq Call NameLoad NameLoad Num body Return CompareIn SubscriptLoad NameLoad Index Num NameLoad orelse Return NameLoad orelse If Call NameLoad NameLoad NameLoad body Assign NameStore Num For NameStore AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad AugAssignAdd NameStore Call NameLoad ListComp NameLoad comprehension NameStore NameLoad CompareIn NameLoad NameLoad Return CompareEq NameLoad Num orelse Raise Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Call NameLoad NameLoad If NameLoad body Assign NameStore ListLoad If CompareEq AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr keyword NameLoad If CompareEq AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr keyword Num If NameLoad body Return NameLoad Assign TupleStore NameStore NameStore TupleLoad Call NameLoad Str keyword NameLoad Call NameLoad Str keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad NameLoad Assign NameStore BinOpDiv Num NameLoad Assign NameStore AttributeLoad Call NameLoad NameLoad TupleLoad NameLoad NameLoad attr Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore SubscriptLoad Call NameLoad NameLoad NameLoad Index Num Assign NameStore Call AttributeLoad SubscriptLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad NameLoad attr Index Num attr If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body TryExcept body Assign NameStore Call AttributeLoad Call NameLoad NameLoad NameLoad attr handlers ExceptHandler type TupleLoad NameLoad NameLoad NameLoad body Assign NameStore SubscriptLoad Call NameLoad Call NameLoad NameLoad NameLoad keyword NameLoad Index Num Assign NameStore ListComp Call NameLoad NameLoad SubscriptLoad Call NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Index Num comprehension NameStore NameLoad orelse Raise Call NameLoad Str Assign NameStore ListComp Call AttributeLoad NameLoad attr Call NameLoad TupleLoad NameLoad NameLoad AttributeLoad NameLoad attr comprehension NameStore NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad Assign NameStore ListComp IfExp Call NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad Return ListComp Call NameLoad NameLoad keyword NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults Str body Expr Str Assign NameStore Call NameLoad NameLoad If CompareIn AttributeLoad NameLoad attr GeneratorExp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr body Raise Call NameLoad Call NameLoad BinOpMod Str AttributeLoad NameLoad attr Return Call NameLoad BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr BinOpMult AttributeLoad NameLoad attr Call NameLoad NameLoad BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr BinOpMult AttributeLoad NameLoad attr Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults Str body Expr Str Assign NameStore Call NameLoad NameLoad Return ListLoad NameLoad UnaryOpUSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults NameLoad body Expr Str ImportFrom alias alias alias Assign NameStore Call NameLoad Str Assign TupleStore NameStore NameStore AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr If CompareIsNot NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore BinOpSub BinOpMult Num Call NameLoad Call AttributeLoad NameLoad attr Num Assign NameStore Call NameLoad BinOpSub Num BinOpPow NameLoad Num Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad If CompareIn NameLoad NameLoad body Return NameLoad Raise Call NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults Str Str body Expr Str Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpPow BinOpDiv BinOpSub NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Num Assign NameStore BinOpPow BinOpDiv BinOpSub NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Num Return BinOpSub BinOpAdd NameLoad NameLoad Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore BinOpPow AttributeLoad NameLoad attr Num Assign NameStore BinOpPow AttributeLoad NameLoad attr Num Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num Assign NameStore BinOpSub SubscriptLoad NameLoad Index Num AttributeLoad NameLoad attr Assign NameStore Call NameLoad BinOpDiv AttributeLoad NameLoad attr NameLoad BinOpDiv AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad BinOpDiv AttributeLoad NameLoad attr NameLoad BinOpDiv AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore BinOpSub Call AttributeLoad NameLoad attr NameLoad Num Assign NameStore Call NameLoad BinOpSub BinOpMult NameLoad NameLoad BinOpMult NameLoad NameLoad Assign NameStore ListLoad If CompareEq NameLoad Num body Assign NameStore BinOpDiv UnaryOpUSub NameLoad NameLoad Expr Call AttributeLoad NameLoad attr BinOpAdd SubscriptLoad NameLoad Index Num BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num NameLoad orelse If CompareNotEq CompareGt NameLoad Num NameLoad body Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpDiv BinOpSub UnaryOpUSub NameLoad NameLoad NameLoad Assign NameStore BinOpDiv BinOpAdd UnaryOpUSub NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr BinOpAdd SubscriptLoad NameLoad Index Num BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num NameLoad Expr Call AttributeLoad NameLoad attr BinOpAdd SubscriptLoad NameLoad Index Num BinOpMult BinOpSub SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num NameLoad Return ListComp NameLoad comprehension NameStore NameLoad CompareIn NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad Str keyword NameLoad Assign NameStore Call NameLoad Str keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call NameLoad ListLoad NameLoad NameLoad ListLoad NameLoad NameLoad Return ListComp Call NameLoad NameLoad comprehension NameStore Call NameLoad Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body If CompareIn NameLoad NameLoad body Return ListLoad NameLoad orelse Return ListLoad orelse If Call NameLoad NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad orelse If Call NameLoad NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad orelse If Call NameLoad NameLoad NameLoad body If CompareEq NameLoad NameLoad body Return NameLoad orelse Return Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults Str Str body Expr Str If CompareNotEq Call NameLoad AttributeLoad NameLoad attr Num body Raise Call NameLoad Str Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpPow BinOpMult AttributeLoad NameLoad attr BinOpSub NameLoad AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Num Num Assign NameStore BinOpPow BinOpMult AttributeLoad NameLoad attr BinOpSub NameLoad AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Num Num Return BinOpSub BinOpAdd NameLoad NameLoad BinOpPow BinOpSub BinOpPow AttributeLoad NameLoad attr Num BinOpPow AttributeLoad NameLoad attr Num Call NameLoad Num Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return BoolOpAnd Call NameLoad NameLoad NameLoad BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return Call AttributeLoad Call NameLoad NameLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body If Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad Str keyword NameLoad Assign NameStore Call NameLoad Str keyword NameLoad Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad NameLoad attr Dict NameLoad NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return CompareIs Call NameLoad Call NameLoad NameLoad AttributeLoad NameLoad attr orelse If Call NameLoad NameLoad NameLoad body Return CompareEq NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults Num Str body Expr Str ImportFrom alias Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign TupleStore NameStore NameStore TupleLoad Call NameLoad AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr Return Call AttributeLoad Str attr BinOpMult Num NameLoad NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults vararg kwarg body Assign TupleStore NameStore NameStore TupleLoad NameLoad NameLoad If CompareEq Call NameLoad NameLoad Num body Assign NameStore ListComp Call NameLoad NameLoad comprehension NameStore NameLoad If Call AttributeLoad NameLoad attr NameLoad body Raise Call NameLoad Str ImportFrom alias Assign NameStore Call NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr orelse If CompareEq Call NameLoad NameLoad Num body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num If UnaryOpNot BoolOpOr CompareIs NameLoad NameLoad CompareIs NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Raise Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return Call NameLoad AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpMult BinOpMult Num AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults Str Str body Expr Str Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore BinOpPow BinOpSub NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num Assign NameStore BinOpPow BinOpSub NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num Return BinOpSub BinOpAdd NameLoad NameLoad BinOpPow AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Return ListLoad Assign TupleStore NameStore NameStore AttributeLoad BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad Call NameLoad BinOpAdd BinOpPow NameLoad Num BinOpPow NameLoad Num Assign NameStore BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr If BoolOpOr CompareGt NameLoad NameLoad CompareLt NameLoad Call NameLoad BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return ListLoad Assign NameStore Call NameLoad BinOpDiv BinOpAdd BinOpSub BinOpPow AttributeLoad NameLoad attr Num BinOpPow AttributeLoad NameLoad attr Num BinOpPow NameLoad Num BinOpMult Num NameLoad Assign NameStore BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr BinOpDiv BinOpMult NameLoad NameLoad NameLoad Assign NameStore BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr BinOpDiv BinOpMult NameLoad NameLoad NameLoad Assign NameStore Call NameLoad Call NameLoad BinOpSub BinOpPow AttributeLoad NameLoad attr Num BinOpPow NameLoad Num Assign NameStore BinOpMult UnaryOpUSub NameLoad BinOpDiv NameLoad NameLoad Assign NameStore BinOpMult NameLoad BinOpDiv NameLoad NameLoad Assign NameStore Call NameLoad BinOpAdd NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad BinOpAdd NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub NameLoad NameLoad Assign NameStore ListLoad Call NameLoad NameLoad NameLoad If BoolOpOr CompareNotEq NameLoad NameLoad CompareNotEq NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad Return NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults Num Num NameLoad body Expr Str Assign NameStore AttributeLoad NameLoad attr If NameLoad body Assign NameStore Call NameLoad NameLoad Return Call AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr AttributeLoad UnaryOpUSub NameLoad attr attr NameLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign TupleStore NameStore NameStore ListComp Call NameLoad NameLoad comprehension NameStore TupleLoad NameLoad NameLoad If CompareEq NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore NameStore AttributeLoad NameLoad attr Return Call NameLoad NameLoad keyword BinOpMult NameLoad NameLoad keyword BinOpMult NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad UnaryOpUSub AttributeLoad NameLoad attr decorator_list decorator_list ImportFrom alias
N/A N/A Elliptical geometrical entities.

Contains
* Ellipse
* Circle

 __future__ division print_function sympy.core S pi sympify sympy.core.logic fuzzy_bool sympy.core.numbers Rational oo sympy.core.compatibility range sympy.core.symbol Dummy sympy.simplify simplify trigsimp sympy.functions.elementary.miscellaneous sqrt sympy.functions.elementary.trigonometric cos sin sympy.geometry.exceptions GeometryError sympy.polys DomainError Poly PolynomialError sympy.polys.polyutils _not_a_coeff _nsort sympy.solvers solve sympy.utilities.iterables uniq sympy.utilities.misc filldedent sympy.utilities.decorator doctest_depends_on entity GeometryEntity GeometrySet point Point line Line LinearEntity util _symbol idiff N/A random Ellipse N/A GeometrySet N/A N/A An elliptical GeometryEntity.

    Parameters
    ==========

    center : Point, optional
        Default value is Point(0, 0)
    hradius : number or SymPy expression, optional
    vradius : number or SymPy expression, optional
    eccentricity : number or SymPy expression, optional
        Two of `hradius`, `vradius` and `eccentricity` must be supplied to
        create an Ellipse. The third is derived from the two supplied.

    Attributes
    ==========

    center
    hradius
    vradius
    area
    circumference
    eccentricity
    periapsis
    apoapsis
    focus_distance
    foci

    Raises
    ======

    GeometryError
        When `hradius`, `vradius` and `eccentricity` are incorrectly supplied
        as parameters.
    TypeError
        When `center` is not a Point.

    See Also
    ========

    Circle

    Notes
    -----
    Constructed from a center and two radii, the first being the horizontal
    radius (along the x-axis) and the second being the vertical radius (along
    the y-axis).

    When symbolic value for hradius and vradius are used, any calculation that
    refers to the foci or the major or minor axis will assume that the ellipse
    has its major radius on the x-axis. If this is not true then a manual
    rotation is necessary.

    Examples
    ========

    >>> from sympy import Ellipse, Point, Rational
    >>> e1 = Ellipse(Point(0, 0), 5, 1)
    >>> e1.hradius, e1.vradius
    (5, 1)
    >>> e2 = Ellipse(Point(3, 1), hradius=3, eccentricity=Rational(4, 5))
    >>> e2
    Ellipse(Point2D(3, 1), 3, 9/5)

    Plotting:

    >>> from sympy.plotting.pygletplot import PygletPlot as Plot
    >>> from sympy import Circle, Segment
    >>> c1 = Circle(Point(0,0), 1)
    >>> Plot(c1)                                # doctest: +SKIP
    [0]: cos(t), sin(t), 'mode=parametric'
    >>> p = Plot()                              # doctest: +SKIP
    >>> p[0] = c1                               # doctest: +SKIP
    >>> radius = Segment(c1.center, c1.random_point())
    >>> p[1] = radius                           # doctest: +SKIP
    >>> p                                       # doctest: +SKIP
    [0]: cos(t), sin(t), 'mode=parametric'
    [1]: t*cos(1.546086215036205357975518382),
    t*sin(1.546086215036205357975518382), 'mode=parametric'

     __new__ N/A N/A cls center hradius vradius eccentricity N/A None None None None kwargs N/A N/A hradius N/A sympify hradius N/A vradius N/A sympify vradius N/A eccentricity N/A sympify eccentricity N/A N/A center None N/A N/A center N/A Point 0 0 N/A N/A center N/A Point center N/A N/A N/A len center 2 N/A N/A N/A ValueError N/A N/A The center of "{0}" must be a two dimensional point format cls N/A N/A N/A len N/A list N/A filter None N/A hradius vradius eccentricity 2 N/A N/A N/A ValueError Exactly two arguments of "hradius", "vradius", and "eccentricity" must not be None." N/A N/A eccentricity None N/A N/A N/A hradius None N/A N/A hradius N/A vradius N/A sqrt N/A 1 N/A eccentricity 2 N/A N/A N/A vradius None N/A N/A vradius N/A hradius N/A sqrt N/A 1 N/A eccentricity 2 N/A N/A hradius vradius N/A N/A N/A Circle center hradius kwargs N/A N/A N/A GeometryEntity __new__ cls center hradius vradius kwargs N/A ambient_dimension N/A N/A self N/A N/A N/A 2 N/A property center N/A N/A self N/A N/A N/A The center of the ellipse.

        Returns
        =======

        center : number

        See Also
        ========

        sympy.geometry.point.Point

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.center
        Point2D(0, 0)

         N/A N/A N/A self args N/A 0 N/A property hradius N/A N/A self N/A N/A N/A The horizontal radius of the ellipse.

        Returns
        =======

        hradius : number

        See Also
        ========

        vradius, major, minor

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.hradius
        3

         N/A N/A N/A self args N/A 1 N/A property vradius N/A N/A self N/A N/A N/A The vertical radius of the ellipse.

        Returns
        =======

        vradius : number

        See Also
        ========

        hradius, major, minor

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.vradius
        1

         N/A N/A N/A self args N/A 2 N/A property minor N/A N/A self N/A N/A N/A Shorter axis of the ellipse (if it can be determined) else vradius.

        Returns
        =======

        minor : number or expression

        See Also
        ========

        hradius, vradius, major

        Examples
        ========

        >>> from sympy import Point, Ellipse, Symbol
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.minor
        1

        >>> a = Symbol('a')
        >>> b = Symbol('b')
        >>> Ellipse(p1, a, b).minor
        b
        >>> Ellipse(p1, b, a).minor
        a

        >>> m = Symbol('m')
        >>> M = m + 1
        >>> Ellipse(p1, m, M).minor
        m

         N/A ab N/A N/A self args N/A 1 3 N/A N/A N/A len ab 1 N/A N/A N/A ab N/A 0 N/A N/A a b ab N/A o N/A N/A a b 0 N/A N/A o True N/A N/A a N/A N/A N/A o False N/A N/A b N/A N/A self vradius N/A property major N/A N/A self N/A N/A N/A Longer axis of the ellipse (if it can be determined) else hradius.

        Returns
        =======

        major : number or expression

        See Also
        ========

        hradius, vradius, minor

        Examples
        ========

        >>> from sympy import Point, Ellipse, Symbol
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.major
        3

        >>> a = Symbol('a')
        >>> b = Symbol('b')
        >>> Ellipse(p1, a, b).major
        a
        >>> Ellipse(p1, b, a).major
        b

        >>> m = Symbol('m')
        >>> M = m + 1
        >>> Ellipse(p1, m, M).major
        m + 1

         N/A ab N/A N/A self args N/A 1 3 N/A N/A N/A len ab 1 N/A N/A N/A ab N/A 0 N/A N/A a b ab N/A o N/A N/A b a 0 N/A N/A o True N/A N/A a N/A N/A N/A o False N/A N/A b N/A N/A self hradius N/A property area N/A N/A self N/A N/A N/A The area of the ellipse.

        Returns
        =======

        area : number

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.area
        3*pi

         N/A N/A simplify N/A N/A N/A S Pi N/A self hradius N/A self vradius N/A property circumference N/A N/A self N/A N/A N/A The circumference of the ellipse.

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.circumference
        12*Integral(sqrt((-8*_x**2/9 + 1)/(-_x**2 + 1)), (_x, 0, 1))

         sympy Integral N/A N/A N/A self eccentricity 1 N/A N/A N/A N/A 2 pi N/A self hradius N/A N/A x N/A Dummy x real True N/A N/A N/A 4 N/A self major N/A Integral N/A sqrt N/A N/A 1 N/A N/A N/A self eccentricity x 2 N/A 1 N/A x 2 N/A x 0 1 N/A property eccentricity N/A N/A self N/A N/A N/A The eccentricity of the ellipse.

        Returns
        =======

        eccentricity : number

        Examples
        ========

        >>> from sympy import Point, Ellipse, sqrt
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, sqrt(2))
        >>> e1.eccentricity
        sqrt(7)/3

         N/A N/A N/A self focus_distance N/A self major N/A property periapsis N/A N/A self N/A N/A N/A The periapsis of the ellipse.

        The shortest distance between the focus and the contour.

        Returns
        =======

        periapsis : number

        See Also
        ========

        apoapsis : Returns greatest distance between focus and contour

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.periapsis
        -2*sqrt(2) + 3

         N/A N/A N/A self major N/A 1 N/A self eccentricity N/A property apoapsis N/A N/A self N/A N/A N/A The apoapsis of the ellipse.

        The greatest distance between the focus and the contour.

        Returns
        =======

        apoapsis : number

        See Also
        ========

        periapsis : Returns shortest distance between foci and contour

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.apoapsis
        2*sqrt(2) + 3

         N/A N/A N/A self major N/A 1 N/A self eccentricity N/A property focus_distance N/A N/A self N/A N/A N/A The focale distance of the ellipse.

        The distance between the center and one focus.

        Returns
        =======

        focus_distance : number

        See Also
        ========

        foci

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.focus_distance
        2*sqrt(2)

         N/A N/A N/A Point distance N/A self center N/A N/A self foci N/A 0 N/A property foci N/A N/A self N/A N/A N/A The foci of the ellipse.

        Notes
        -----
        The foci can only be calculated if the major/minor axes are known.

        Raises
        ======

        ValueError
            When the major and minor axis cannot be determined.

        See Also
        ========

        sympy.geometry.point.Point
        focus_distance : Returns the distance between focus and center

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> p1 = Point(0, 0)
        >>> e1 = Ellipse(p1, 3, 1)
        >>> e1.foci
        (Point2D(-2*sqrt(2), 0), Point2D(2*sqrt(2), 0))

         N/A c N/A self center N/A N/A hr vr N/A N/A self hradius N/A self vradius N/A N/A hr vr N/A N/A N/A c c N/A fd N/A sqrt N/A N/A N/A self major 2 N/A N/A self minor 2 N/A N/A hr N/A self minor N/A N/A N/A N/A c N/A Point 0 N/A fd N/A c N/A Point 0 fd N/A N/A N/A hr N/A self major N/A N/A N/A N/A c N/A Point N/A fd 0 N/A c N/A Point fd 0 N/A property bounds N/A N/A self N/A N/A N/A Return a tuple (xmin, ymin, xmax, ymax) representing the bounding
        rectangle for the geometric figure.

         N/A N/A h v N/A N/A self hradius N/A self vradius N/A N/A N/A N/A N/A self center x h N/A N/A N/A self center y v N/A N/A N/A self center x h N/A N/A N/A self center y v N/A property rotate N/A N/A self angle pt N/A 0 None N/A N/A Rotate ``angle`` radians counterclockwise about Point ``pt``.

        Note: since the general ellipse is not supported, only rotations that
        are integer multiples of pi/2 are allowed.

        Examples
        ========

        >>> from sympy import Ellipse, pi
        >>> Ellipse((1, 0), 2, 1).rotate(pi/2)
        Ellipse(Point2D(0, 1), 1, 2)
        >>> Ellipse((1, 0), 2, 1).rotate(pi)
        Ellipse(Point2D(-1, 0), 2, 1)
         N/A N/A N/A self hradius N/A self vradius N/A N/A N/A N/A self func N/A self args N/A N/A N/A angle N/A S Pi is_integer N/A N/A N/A N/A N/A super Ellipse self rotate angle pt N/A N/A N/A N/A 2 angle N/A S Pi is_integer N/A N/A N/A N/A self func N/A N/A N/A self center rotate angle pt N/A self vradius N/A self hradius N/A N/A NotImplementedError Only rotations of pi/2 are currently supported for Ellipse. N/A scale N/A N/A self x y pt N/A 1 1 None N/A N/A Override GeometryEntity.scale since it is the major and minor
        axes which must be scaled and they are not GeometryEntities.

        Examples
        ========

        >>> from sympy import Ellipse
        >>> Ellipse((0, 0), 2, 1).scale(2, 4)
        Circle(Point2D(0, 0), 4)
        >>> Ellipse((0, 0), 2, 1).scale(2)
        Ellipse(Point2D(0, 0), 4, 1)
         N/A c N/A self center N/A pt N/A N/A pt N/A Point pt N/A N/A N/A N/A N/A N/A N/A self translate N/A N/A pt args scale x y translate N/A pt args N/A h N/A self hradius N/A v N/A self vradius N/A N/A N/A self func N/A N/A c scale x y hradius N/A h x vradius N/A v y N/A reflect N/A N/A self line N/A N/A N/A Override GeometryEntity.reflect since the radius
        is not a GeometryEntity.

        Examples
        ========

        >>> from sympy import Circle, Line
        >>> Circle((0, 1), 1).reflect(Line((0, 0), (1, 1)))
        Circle(Point2D(1, 0), -1)
        >>> from sympy import Ellipse, Line, Point
        >>> Ellipse(Point(3, 4), 1, 3).reflect(Line(Point(0, -4), Point(5, 0)))
        Traceback (most recent call last):
        ...
        NotImplementedError:
        General Ellipse is not supported but the equation of the reflected
        Ellipse is given by the zeros of: f(x, y) = (9*x/41 + 40*y/41 +
        37/41)**2 + (40*x/123 - 3*y/41 - 364/123)**2 - 1

        Notes
        =====

        Until the general ellipse (with no axis parallel to the x-axis) is
        supported a NotImplemented error is raised and the equation whose
        zeros define the rotated ellipse is given.

         util _uniquely_named_symbol N/A N/A N/A line slope N/A 0 oo N/A N/A c N/A self center N/A c N/A N/A c reflect line N/A N/A N/A self func c N/A N/A self hradius N/A self vradius N/A N/A N/A x y N/A N/A _uniquely_named_symbol name self line N/A name xy N/A expr N/A N/A self equation x y N/A p N/A N/A N/A Point x y reflect line N/A result N/A N/A expr subs N/A zip N/A x y N/A p args simultaneous True N/A N/A NotImplementedError N/A filldedent N/A General Ellipse is not supported but the equation of the reflected Ellipse is given by the zeros of:  N/A f(%s, %s) = %s N/A N/A str x N/A str y N/A str result N/A encloses_point N/A N/A self p N/A N/A N/A 
        Return True if p is enclosed by (is inside of) self.

        Notes
        -----
        Being on the border of self is considered False.

        Parameters
        ==========

        p : Point

        Returns
        =======

        encloses_point : True, False or None

        See Also
        ========

        sympy.geometry.point.Point

        Examples
        ========

        >>> from sympy import Ellipse, S
        >>> from sympy.abc import t
        >>> e = Ellipse((0, 0), 3, 2)
        >>> e.encloses_point((0, 0))
        True
        >>> e.encloses_point(e.arbitrary_point(t).subs(t, S.Half))
        False
        >>> e.encloses_point((4, 0))
        False

         N/A p N/A Point p N/A N/A p self N/A N/A False N/A N/A N/A len N/A self foci 2 N/A N/A N/A h1 h2 N/A N/A N/A f distance p N/A f N/A self foci N/A test N/A N/A 2 N/A self major N/A h1 h2 N/A N/A test N/A N/A self radius N/A N/A N/A self center distance p N/A N/A fuzzy_bool N/A test is_positive N/A tangent_lines N/A N/A self p N/A N/A N/A Tangent lines between `p` and the ellipse.

        If `p` is on the ellipse, returns the tangent line through point `p`.
        Otherwise, returns the tangent line(s) from `p` to the ellipse, or
        None if no tangent line is possible (e.g., `p` inside ellipse).

        Parameters
        ==========

        p : Point

        Returns
        =======

        tangent_lines : list with 1 or 2 Lines

        Raises
        ======

        NotImplementedError
            Can only find tangent lines for a point, `p`, on the ellipse.

        See Also
        ========

        sympy.geometry.point.Point, sympy.geometry.line.Line

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> e1 = Ellipse(Point(0, 0), 3, 2)
        >>> e1.tangent_lines(Point(3, 0))
        [Line(Point2D(3, 0), Point2D(3, -12))]

        >>> # This will plot an ellipse together with a tangent line.
        >>> from sympy.plotting.pygletplot import PygletPlot as Plot
        >>> from sympy import Point, Ellipse
        >>> e = Ellipse(Point(0,0), 3, 2)
        >>> t = e.tangent_lines(e.random_point())
        >>> p = Plot()
        >>> p[0] = e # doctest: +SKIP
        >>> p[1] = t # doctest: +SKIP

         N/A p N/A Point p N/A N/A N/A self encloses_point p N/A N/A N/A N/A N/A p self N/A N/A delta N/A N/A self center p N/A rise N/A N/A N/A self vradius 2 N/A delta x N/A run N/A N/A N/A N/A self hradius 2 N/A delta y N/A p2 N/A Point N/A simplify N/A N/A p x run N/A simplify N/A N/A p y rise N/A N/A N/A Line p p2 N/A N/A N/A N/A len N/A self foci 2 N/A N/A N/A f1 f2 N/A self foci N/A maj N/A self hradius N/A test N/A N/A N/A 2 maj N/A N/A Point distance f1 p N/A N/A Point distance f2 p N/A N/A test N/A N/A self radius N/A N/A Point distance N/A self center p N/A N/A N/A test is_number N/A test is_positive N/A N/A N/A N/A N/A x y N/A N/A Dummy x N/A Dummy y N/A eq N/A N/A self equation x y N/A dydx N/A idiff eq y x N/A slope N/A N/A Line p N/A Point x y slope N/A tangent_points N/A solve N/A N/A slope dydx eq N/A x y N/A N/A N/A len tangent_points 1 N/A N/A N/A N/A N/A N/A tangent_points N/A 0 N/A 0 N/A p x N/A N/A N/A tangent_points N/A 0 N/A 1 N/A p y N/A N/A N/A Line p N/A p N/A Point 1 0 N/A Line p N/A p N/A Point 0 1 N/A N/A N/A Line p N/A tangent_points N/A 0 N/A Line p N/A tangent_points N/A 1 N/A N/A doctest_depends_on modules N/A pyglet is_tangent N/A N/A self o N/A N/A N/A Is `o` tangent to the ellipse?

        Parameters
        ==========

        o : GeometryEntity
            An Ellipse, LinearEntity or Polygon

        Raises
        ======

        NotImplementedError
            When the wrong type of argument is supplied.

        Returns
        =======

        is_tangent: boolean
            True if o is tangent to the ellipse, False otherwise.

        See Also
        ========

        tangent_lines

        Examples
        ========

        >>> from sympy import Point, Ellipse, Line
        >>> p0, p1, p2 = Point(0, 0), Point(3, 0), Point(3, 3)
        >>> e1 = Ellipse(p0, 3, 2)
        >>> l1 = Line(p1, p2)
        >>> e1.is_tangent(l1)
        True

         N/A inter None N/A N/A isinstance o Ellipse N/A N/A inter N/A N/A self intersection o N/A N/A isinstance inter Ellipse N/A N/A False N/A N/A N/A inter None N/A N/A len inter 1 N/A isinstance N/A inter N/A 0 Point N/A N/A N/A isinstance o LinearEntity N/A N/A inter N/A N/A self _do_line_intersection o N/A N/A N/A inter None N/A N/A len inter 1 N/A N/A N/A N/A inter N/A 0 o N/A N/A False N/A N/A N/A isinstance o Polygon N/A N/A c 0 N/A seg N/A o sides N/A N/A inter N/A N/A self _do_line_intersection seg N/A c N/A len N/A True N/A point inter N/A point seg N/A N/A c 1 N/A N/A N/A NotImplementedError Unknown argument type N/A normal_lines N/A N/A self p prec N/A None N/A N/A Normal lines between `p` and the ellipse.

        Parameters
        ==========

        p : Point

        Returns
        =======

        normal_lines : list with 1, 2 or 4 Lines

        Examples
        ========

        >>> from sympy import Line, Point, Ellipse
        >>> e = Ellipse((0, 0), 2, 3)
        >>> c = e.center
        >>> e.normal_lines(c + Point(1, 0))
        [Line(Point2D(0, 0), Point2D(1, 0))]
        >>> e.normal_lines(c)
        [Line(Point2D(0, 0), Point2D(0, 1)), Line(Point2D(0, 0), Point2D(1, 0))]

        Off-axis points require the solution of a quartic equation. This
        often leads to very large expressions that may be of little practical
        use. An approximate solution of `prec` digits can be obtained by
        passing in the desired value:

        >>> e.normal_lines((3, 3), prec=2)
        [Line(Point2D(-38/47, -85/31), Point2D(9/47, -21/17)),
        Line(Point2D(19/13, -43/21), Point2D(32/13, -8/3))]

        Whereas the above solution has an operation count of 12, the exact
        solution has an operation count of 2020.
         N/A p N/A Point p N/A True N/A N/A rv N/A N/A N/A N/A p x N/A N/A self center x N/A N/A N/A N/A rv append N/A Line N/A self center slope oo N/A N/A N/A p y N/A N/A self center y N/A N/A N/A N/A rv append N/A Line N/A self center slope 0 N/A rv N/A N/A rv N/A N/A x y N/A N/A Dummy x real True N/A Dummy y real True N/A eq N/A N/A self equation x y N/A dydx N/A idiff eq y x N/A norm N/A -1 dydx N/A slope N/A N/A Line p N/A x y slope N/A seq N/A slope norm N/A yis N/A N/A solve seq y N/A 0 N/A xeq N/A N/A N/A N/A N/A N/A N/A eq subs y yis as_numer_denom N/A 0 expand N/A N/A N/A len N/A xeq free_symbols 1 N/A N/A N/A N/A xsol N/A N/A N/A Poly xeq x real_roots N/A N/A N/A N/A DomainError PolynomialError NotImplementedError N/A N/A xsol N/A N/A _nsort N/A solve xeq x separated True N/A 0 N/A points N/A N/A Point i N/A N/A solve N/A N/A eq subs x i y N/A 0 N/A i xsol N/A N/A N/A NotImplementedError intersections for the general ellipse are not supported N/A slopes N/A N/A N/A norm subs N/A zip N/A x y N/A pt args N/A pt points N/A N/A prec None N/A N/A points N/A N/A N/A pt n prec N/A pt points N/A slopes N/A N/A N/A _not_a_coeff i i N/A N/A i n prec N/A i slopes N/A N/A N/A Line pt slope s N/A N/A pt s N/A zip points slopes N/A arbitrary_point N/A N/A self parameter N/A t N/A N/A A parameterized point on the ellipse.

        Parameters
        ==========

        parameter : str, optional
            Default value is 't'.

        Returns
        =======

        arbitrary_point : Point

        Raises
        ======

        ValueError
            When `parameter` already appears in the functions.

        See Also
        ========

        sympy.geometry.point.Point

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> e1 = Ellipse(Point(0, 0), 3, 2)
        >>> e1.arbitrary_point()
        Point2D(3*cos(t), 2*sin(t))

         N/A t N/A _symbol parameter N/A N/A N/A t name N/A N/A f name N/A f N/A self free_symbols N/A N/A N/A ValueError N/A filldedent N/A Symbol %s already appears in object and cannot be used as a parameter. N/A t name N/A N/A Point N/A N/A N/A self center x N/A N/A self hradius N/A cos t N/A N/A N/A self center y N/A N/A self vradius N/A sin t N/A plot_interval N/A N/A self parameter N/A t N/A N/A The plot interval for the default geometric plot of the Ellipse.

        Parameters
        ==========

        parameter : str, optional
            Default value is 't'.

        Returns
        =======

        plot_interval : list
            [parameter, lower_bound, upper_bound]

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> e1 = Ellipse(Point(0, 0), 3, 2)
        >>> e1.plot_interval()
        [t, -pi, pi]

         N/A t N/A _symbol parameter N/A N/A t N/A N/A S Pi N/A S Pi N/A random_point N/A N/A self seed N/A None N/A N/A A random point on the ellipse.

        Returns
        =======

        point : Point

        See Also
        ========

        sympy.geometry.point.Point
        arbitrary_point : Returns parameterized point on ellipse

        Notes
        -----

        A random point may not appear to be on the ellipse, ie, `p in e` may
        return False. This is because the coordinates of the point will be
        floating point values, and when these values are substituted into the
        equation for the ellipse the result may not be zero because of floating
        point rounding error.

        Examples
        ========

        >>> from sympy import Point, Ellipse, Segment
        >>> e1 = Ellipse(Point(0, 0), 3, 2)
        >>> e1.random_point() # gives some random point
        Point2D(...)
        >>> p1 = e1.random_point(seed=0); p1.n(2)
        Point2D(2.1, 1.4)

        The random_point method assures that the point will test as being
        in the ellipse:

        >>> p1 in e1
        True

        Notes
        =====

        An arbitrary_point with a random value of t substituted into it may
        not test as being on the ellipse because the expression tested that
        a point is on the ellipse doesn't simplify to zero and doesn't evaluate
        exactly to zero:

        >>> from sympy.abc import t
        >>> e1.arbitrary_point(t)
        Point2D(3*cos(t), 2*sin(t))
        >>> p2 = _.subs(t, 0.1)
        >>> p2 in e1
        False

        Note that arbitrary_point routine does not take this approach. A value
        for cos(t) and sin(t) (not t) is substituted into the arbitrary point.
        There is a small chance that this will give a point that will not
        test as being in the ellipse, so the process is repeated (up to 10
        times) until a valid point is obtained.

         sympy sin cos Rational N/A t N/A _symbol t N/A N/A x y N/A N/A N/A self arbitrary_point t args N/A N/A seed None N/A N/A rng N/A N/A random Random seed N/A N/A rng random N/A i N/A range 10 N/A N/A c N/A N/A 2 N/A Rational N/A N/A rng random 1 N/A s N/A sqrt N/A 1 N/A c 2 N/A p1 N/A Point N/A N/A x subs N/A cos t c N/A N/A y subs N/A sin t s N/A N/A p1 self N/A N/A p1 N/A N/A GeometryError Having problems generating a point in the ellipse. N/A equation N/A N/A self x y N/A x y N/A N/A The equation of the ellipse.

        Parameters
        ==========

        x : str, optional
            Label for the x-axis. Default value is 'x'.
        y : str, optional
            Label for the y-axis. Default value is 'y'.

        Returns
        =======

        equation : sympy expression

        See Also
        ========

        arbitrary_point : Returns parameterized point on ellipse

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> e1 = Ellipse(Point(1, 0), 3, 2)
        >>> e1.equation()
        y**2/4 + (x/3 - 1/3)**2 - 1

         N/A x N/A _symbol x N/A y N/A _symbol y N/A t1 N/A N/A N/A x N/A N/A self center x N/A self hradius 2 N/A t2 N/A N/A N/A y N/A N/A self center y N/A self vradius 2 N/A N/A N/A t1 t2 1 N/A _do_line_intersection N/A N/A self o N/A N/A N/A 
        Find the intersection of a LinearEntity and the ellipse.

        All LinearEntities are treated as a line and filtered at
        the end to see that they lie in o.

         N/A hr_sq N/A N/A self hradius 2 N/A vr_sq N/A N/A self vradius 2 N/A lp N/A o points N/A ldir N/A N/A lp N/A 1 N/A lp N/A 0 N/A diff N/A N/A lp N/A 0 N/A self center N/A mdir N/A Point N/A N/A ldir x hr_sq N/A N/A ldir y vr_sq N/A mdiff N/A Point N/A N/A diff x hr_sq N/A N/A diff y vr_sq N/A a N/A N/A ldir dot mdir N/A b N/A N/A ldir dot mdiff N/A c N/A N/A N/A diff dot mdiff 1 N/A det N/A simplify N/A N/A b b N/A a c N/A result N/A N/A N/A det 0 N/A N/A t N/A N/A b a N/A N/A N/A result append N/A N/A lp N/A 0 N/A N/A N/A lp N/A 1 N/A lp N/A 0 t N/A N/A N/A N/A det 0 False N/A N/A root N/A sqrt det N/A t_a N/A N/A N/A b root a N/A t_b N/A N/A N/A b root a N/A N/A N/A result append N/A N/A lp N/A 0 N/A N/A N/A lp N/A 1 N/A lp N/A 0 t_a N/A N/A N/A result append N/A N/A lp N/A 0 N/A N/A N/A lp N/A 1 N/A lp N/A 0 t_b N/A N/A r N/A r result N/A r o N/A _do_ellipse_intersection N/A N/A self o N/A N/A N/A The intersection of an ellipse with another ellipse or a circle.

        Private helper method for `intersection`.

         N/A x N/A Dummy x real True N/A y N/A Dummy y real True N/A seq N/A N/A self equation x y N/A oeq N/A N/A o equation x y N/A result N/A solve N/A seq oeq N/A x y N/A N/A N/A Point r N/A r N/A list N/A uniq result N/A intersection N/A N/A self o N/A N/A N/A The intersection of this ellipse and another geometrical entity
        `o`.

        Parameters
        ==========

        o : GeometryEntity

        Returns
        =======

        intersection : list of GeometryEntity objects

        Notes
        -----
        Currently supports intersections with Point, Line, Segment, Ray,
        Circle and Ellipse types.

        See Also
        ========

        sympy.geometry.entity.GeometryEntity

        Examples
        ========

        >>> from sympy import Ellipse, Point, Line, sqrt
        >>> e = Ellipse(Point(0, 0), 5, 7)
        >>> e.intersection(Point(0, 0))
        []
        >>> e.intersection(Point(5, 0))
        [Point2D(5, 0)]
        >>> e.intersection(Line(Point(0,0), Point(0, 1)))
        [Point2D(0, -7), Point2D(0, 7)]
        >>> e.intersection(Line(Point(5,0), Point(5, 1)))
        [Point2D(5, 0)]
        >>> e.intersection(Line(Point(6,0), Point(6, 1)))
        []
        >>> e = Ellipse(Point(-1, 0), 4, 3)
        >>> e.intersection(Ellipse(Point(1, 0), 4, 3))
        [Point2D(0, -3*sqrt(15)/4), Point2D(0, 3*sqrt(15)/4)]
        >>> e.intersection(Ellipse(Point(5, 0), 4, 3))
        [Point2D(2, -3*sqrt(7)/4), Point2D(2, 3*sqrt(7)/4)]
        >>> e.intersection(Ellipse(Point(100500, 0), 4, 3))
        []
        >>> e.intersection(Ellipse(Point(0, 0), 3, 4))
        [Point2D(-363/175, -48*sqrt(111)/175), Point2D(-363/175, 48*sqrt(111)/175), Point2D(3, 0)]

        >>> e.intersection(Ellipse(Point(-1, 0), 3, 4))
        [Point2D(-17/5, -12/5), Point2D(-17/5, 12/5), Point2D(7/5, -12/5), Point2D(7/5, 12/5)]
         N/A N/A isinstance o Point N/A N/A N/A o self N/A N/A N/A o N/A N/A N/A N/A N/A N/A isinstance o LinearEntity N/A N/A N/A N/A self _do_line_intersection o N/A N/A N/A isinstance o Circle N/A N/A N/A N/A self _do_ellipse_intersection o N/A N/A N/A isinstance o Ellipse N/A N/A N/A o self N/A N/A self N/A N/A N/A N/A self _do_ellipse_intersection o N/A N/A N/A o intersection self N/A evolute N/A N/A self x y N/A x y N/A N/A The equation of evolute of the ellipse.

        Parameters
        ==========

        x : str, optional
            Label for the x-axis. Default value is 'x'.
        y : str, optional
            Label for the y-axis. Default value is 'y'.

        Returns
        =======

        equation : sympy expression

        Examples
        ========

        >>> from sympy import Point, Ellipse
        >>> e1 = Ellipse(Point(1, 0), 3, 2)
        >>> e1.evolute()
        2**(2/3)*y**(2/3) + (3*x - 3)**(2/3) - 5**(2/3)
         N/A N/A N/A len N/A self args 3 N/A N/A N/A NotImplementedError Evolute of arbitrary Ellipse is not supported. N/A x N/A _symbol x N/A y N/A _symbol y N/A t1 N/A N/A N/A self hradius N/A x N/A N/A self center x N/A Rational 2 3 N/A t2 N/A N/A N/A self vradius N/A y N/A N/A self center y N/A Rational 2 3 N/A N/A N/A t1 t2 N/A N/A N/A N/A self hradius 2 N/A N/A self vradius 2 N/A Rational 2 3 N/A __eq__ N/A N/A self o N/A N/A N/A Is the other GeometryEntity the same as this ellipse? N/A N/A N/A isinstance o GeometryEntity N/A N/A N/A self center N/A o center N/A N/A self hradius N/A o hradius N/A N/A self vradius N/A o vradius N/A __hash__ N/A N/A self N/A N/A N/A N/A N/A N/A super Ellipse self __hash__ N/A __contains__ N/A N/A self o N/A N/A N/A N/A isinstance o Point N/A N/A x N/A Dummy x real True N/A y N/A Dummy y real True N/A res N/A N/A N/A N/A self equation x y subs N/A x y N/A o x N/A o y N/A N/A N/A trigsimp N/A simplify res N/A S Zero N/A N/A N/A isinstance o Ellipse N/A N/A N/A self o N/A False N/A _svg N/A N/A self scale_factor fill_color N/A 1.0 #66cc99 N/A N/A Returns SVG ellipse element for the Ellipse.

        Parameters
        ==========

        scale_factor : float
            Multiplication factor for the SVG stroke-width.  Default is 1.
        fill_color : str, optional
            Hex string for fill color. Default is "#66cc99".
         sympy.core.evalf N N/A c N/A N N/A self center N/A N/A h v N/A N/A N N/A self hradius N/A N N/A self vradius N/A N/A N/A <ellipse fill="{1}" stroke="#555555" stroke-width="{0}" opacity="0.6" cx="{2}" cy="{3}" rx="{4}" ry="{5}"/> format N/A 2.0 scale_factor fill_color N/A c x N/A c y h v N/A N/A Circle N/A Ellipse N/A N/A A circle in space.

    Constructed simply from a center and a radius, or from three
    non-collinear points.

    Parameters
    ==========

    center : Point
    radius : number or sympy expression
    points : sequence of three Points

    Attributes
    ==========

    radius (synonymous with hradius, vradius, major and minor)
    circumference
    equation

    Raises
    ======

    GeometryError
        When trying to construct circle from three collinear points.
        When trying to construct circle from incorrect parameters.

    See Also
    ========

    Ellipse, sympy.geometry.point.Point

    Examples
    ========

    >>> from sympy.geometry import Point, Circle
    >>> # a circle constructed from a center and radius
    >>> c1 = Circle(Point(0, 0), 5)
    >>> c1.hradius, c1.vradius, c1.radius
    (5, 5, 5)

    >>> # a circle costructed from three points
    >>> c2 = Circle(Point(0, 0), Point(1, 1), Point(1, 0))
    >>> c2.hradius, c2.vradius, c2.radius, c2.center
    (sqrt(2)/2, sqrt(2)/2, sqrt(2)/2, Point2D(1/2, 1/2))

     __new__ N/A N/A cls N/A args kwargs N/A N/A N/A c r N/A None None N/A N/A N/A len args 3 N/A N/A args N/A N/A Point a N/A a args N/A N/A N/A Point is_collinear args N/A N/A N/A GeometryError Cannot construct a circle from three collinear points polygon Triangle N/A t N/A Triangle args N/A c N/A t circumcenter N/A r N/A t circumradius N/A N/A N/A N/A len args 2 N/A N/A c N/A Point N/A args N/A 0 N/A r N/A sympify N/A args N/A 1 N/A N/A N/A N/A c None N/A r None N/A N/A N/A N/A GeometryEntity __new__ cls c r kwargs N/A N/A GeometryError Circle.__new__ received unknown arguments N/A radius N/A N/A self N/A N/A N/A The radius of the circle.

        Returns
        =======

        radius : number or sympy expression

        See Also
        ========

        Ellipse.major, Ellipse.minor, Ellipse.hradius, Ellipse.vradius

        Examples
        ========

        >>> from sympy import Point, Circle
        >>> c1 = Circle(Point(3, 4), 6)
        >>> c1.radius
        6

         N/A N/A N/A self args N/A 1 N/A property vradius N/A N/A self N/A N/A N/A 
        This Ellipse property is an alias for the Circle's radius.

        Whereas hradius, major and minor can use Ellipse's conventions,
        the vradius does not exist for a circle. It is always a positive
        value in order that the Circle, like Polygons, will have an
        area that can be positive or negative as determined by the sign
        of the hradius.

        Examples
        ========

        >>> from sympy import Point, Circle
        >>> c1 = Circle(Point(3, 4), 6)
        >>> c1.vradius
        6
         N/A N/A abs N/A self radius N/A property circumference N/A N/A self N/A N/A N/A The circumference of the circle.

        Returns
        =======

        circumference : number or SymPy expression

        Examples
        ========

        >>> from sympy import Point, Circle
        >>> c1 = Circle(Point(3, 4), 6)
        >>> c1.circumference
        12*pi

         N/A N/A N/A 2 N/A S Pi N/A self radius N/A property equation N/A N/A self x y N/A x y N/A N/A The equation of the circle.

        Parameters
        ==========

        x : str or Symbol, optional
            Default value is 'x'.
        y : str or Symbol, optional
            Default value is 'y'.

        Returns
        =======

        equation : SymPy expression

        Examples
        ========

        >>> from sympy import Point, Circle
        >>> c1 = Circle(Point(0, 0), 5)
        >>> c1.equation()
        x**2 + y**2 - 25

         N/A x N/A _symbol x N/A y N/A _symbol y N/A t1 N/A N/A x N/A N/A self center x 2 N/A t2 N/A N/A y N/A N/A self center y 2 N/A N/A N/A t1 t2 N/A N/A self major 2 N/A intersection N/A N/A self o N/A N/A N/A The intersection of this circle with another geometrical entity.

        Parameters
        ==========

        o : GeometryEntity

        Returns
        =======

        intersection : list of GeometryEntities

        Examples
        ========

        >>> from sympy import Point, Circle, Line, Ray
        >>> p1, p2, p3 = Point(0, 0), Point(5, 5), Point(6, 0)
        >>> p4 = Point(5, 0)
        >>> c1 = Circle(p1, 5)
        >>> c1.intersection(p2)
        []
        >>> c1.intersection(p4)
        [Point2D(5, 0)]
        >>> c1.intersection(Ray(p1, p2))
        [Point2D(5*sqrt(2)/2, 5*sqrt(2)/2)]
        >>> c1.intersection(Line(p2, p3))
        []

         N/A N/A isinstance o Circle N/A N/A N/A N/A o center N/A self center N/A N/A N/A N/A o radius N/A self radius N/A N/A o N/A N/A N/A N/A dx dy N/A N/A N/A o center N/A self center args N/A d N/A sqrt N/A simplify N/A N/A dy 2 N/A dx 2 N/A R N/A N/A o radius N/A self radius N/A N/A N/A d R N/A d N/A abs N/A N/A self radius N/A o radius N/A N/A N/A N/A a N/A simplify N/A N/A N/A N/A N/A self radius 2 N/A N/A o radius 2 N/A d 2 N/A 2 d N/A x2 N/A N/A N/A self center x N/A N/A dx a d N/A y2 N/A N/A N/A self center y N/A N/A dy a d N/A h N/A sqrt N/A simplify N/A N/A N/A self radius 2 N/A a 2 N/A rx N/A N/A dy N/A h d N/A ry N/A dx N/A h d N/A xi_1 N/A simplify N/A x2 rx N/A xi_2 N/A simplify N/A x2 rx N/A yi_1 N/A simplify N/A y2 ry N/A yi_2 N/A simplify N/A y2 ry N/A ret N/A N/A Point xi_1 yi_1 N/A N/A N/A xi_1 xi_2 N/A yi_1 yi_2 N/A N/A N/A N/A ret append N/A Point xi_2 yi_2 N/A ret N/A N/A N/A Ellipse intersection self o N/A scale N/A N/A self x y pt N/A 1 1 None N/A N/A Override GeometryEntity.scale since the radius
        is not a GeometryEntity.

        Examples
        ========

        >>> from sympy import Circle
        >>> Circle((0, 0), 1).scale(2, 2)
        Circle(Point2D(0, 0), 2)
        >>> Circle((0, 0), 1).scale(2, 4)
        Ellipse(Point2D(0, 0), 2, 4)
         N/A c N/A self center N/A pt N/A N/A pt N/A Point pt N/A N/A N/A N/A N/A N/A N/A self translate N/A N/A pt args scale x y translate N/A pt args N/A c N/A N/A c scale x y N/A N/A x y N/A N/A abs i N/A i N/A x y N/A N/A x y N/A N/A N/A N/A self func c N/A x N/A self radius N/A h v N/A self radius N/A N/A Ellipse c hradius N/A h x vradius N/A v y N/A reflect N/A N/A self line N/A N/A N/A Override GeometryEntity.reflect since the radius
        is not a GeometryEntity.

        Examples
        ========

        >>> from sympy import Circle, Line
        >>> Circle((0, 1), 1).reflect(Line((0, 0), (1, 1)))
        Circle(Point2D(1, 0), -1)
         N/A c N/A self center N/A c N/A N/A c reflect line N/A N/A N/A self func c N/A N/A self radius N/A N/A polygon Polygon