Module Expr Str ImportFrom alias alias ImportFrom alias alias alias alias alias alias alias alias alias alias alias alias ImportFrom alias ImportFrom alias alias ImportFrom alias ImportFrom alias alias alias alias Assign NameStore ListLoad Str Str Str Str Str ClassDef bases NameLoad body Expr Str Assign NameStore NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign NameStore Call NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return UnaryOpNot Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore TupleLoad TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Num Assign NameStore Num Assign NameStore BinOpMult ListLoad Num Num For NameStore Call NameLoad Num body Assign SubscriptStore NameLoad Index NameLoad Call NameLoad ListComp Call AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad attr comprehension NameStore Call NameLoad Num Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Assign NameStore BinOpSub SubscriptLoad NameLoad Index NameLoad Call AttributeLoad NameLoad attr Assign NameStore BinOpFloorDiv NameLoad Num Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad If CompareIs NameLoad NameLoad body Assign NameStore NameLoad Continue Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Assign NameStore NameLoad Continue For NameStore Call NameLoad NameLoad body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Str Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore Call NameLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return BinOpMod Str Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults kwarg body If AttributeLoad NameLoad attr body Raise Call NameLoad Str Return Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults kwarg body If AttributeLoad NameLoad attr body Raise Call NameLoad Str Return Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword Str Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword Str Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Str Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Str If UnaryOpNot CompareEq NameLoad Call AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str BinOpSub NameLoad Call AttributeLoad NameLoad attr If UnaryOpNot CompareEq NameLoad Call AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str BinOpSub NameLoad Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad BinOpAdd Str BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore Call NameLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return BinOpMod Str Call NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign NameStore Call NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return UnaryOpNot Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore TupleLoad TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Num Assign NameStore Num Assign NameStore BinOpMult ListLoad Num Num For NameStore Call NameLoad Num body Assign SubscriptStore NameLoad Index NameLoad Call NameLoad ListComp Call AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad attr comprehension NameStore Call NameLoad Num Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Assign NameStore BinOpSub SubscriptLoad NameLoad Index NameLoad Call AttributeLoad NameLoad attr Assign NameStore BinOpFloorDiv NameLoad Num Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad If CompareIs NameLoad NameLoad body Assign NameStore NameLoad Continue Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Assign NameStore NameLoad Continue For NameStore Call NameLoad NameLoad body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Str Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr keyword Str keyword Str Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore Call NameLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return BinOpMod Str Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults kwarg body If AttributeLoad NameLoad attr body Raise Call NameLoad Str Return Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign NameStore Call NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Return UnaryOpNot Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore TupleLoad TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Num Assign NameStore Num Assign NameStore BinOpMult ListLoad Num Num For NameStore Call NameLoad Num body Assign SubscriptStore NameLoad Index NameLoad Call NameLoad ListComp Call AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad attr comprehension NameStore Call NameLoad Num Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore NameLoad For NameStore Call NameLoad Num body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Assign NameStore BinOpSub SubscriptLoad NameLoad Index NameLoad Call AttributeLoad NameLoad attr Assign NameStore BinOpFloorDiv NameLoad Num Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad If CompareIs NameLoad NameLoad body Assign NameStore NameLoad Continue Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr BinOpMult Str NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Assign NameStore NameLoad Continue For NameStore Call NameLoad NameLoad body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Str Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr keyword Str keyword Str Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults vararg body Assign NameStore Call NameLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return BinOpMod Str Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults kwarg body If AttributeLoad NameLoad attr body Raise Call NameLoad Str Return Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body Return Call NameLoad NameLoad orelse If Call NameLoad NameLoad NameLoad body Return Call NameLoad NameLoad orelse If Call NameLoad NameLoad NameLoad body Return Call NameLoad ListComp Call NameLoad NameLoad comprehension NameStore AttributeLoad NameLoad attr orelse If Call NameLoad NameLoad NameLoad body Return Call NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr orelse Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad For NameStore AttributeLoad NameLoad attr body If Call AttributeLoad NameLoad attr NameLoad body If Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad orelse If Call NameLoad NameLoad NameLoad body Assign NameStore Num For NameStore AttributeLoad NameLoad attr body If Call NameLoad NameLoad NameLoad body AugAssignMult NameStore Call NameLoad NameLoad orelse AugAssignMult NameStore NameLoad If Call AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return BinOpAdd Call NameLoad NameLoad Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore NameStore Call NameLoad NameLoad TupleLoad Str Str Str Str Assign NameStore BinOpMult NameLoad Call NameLoad NameLoad NameLoad NameLoad Num NameLoad NameLoad Assign NameStore BinOpMult BinOpAdd BinOpMult Num NameLoad Num Call NameLoad NameLoad Num Assign NameStore BinOpDiv NameLoad Call NameLoad NameLoad Assign NameStore BinOpAdd BinOpMult Num NameLoad Num Assign NameStore BinOpAdd NameLoad NameLoad Return Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore NameStore Call NameLoad NameLoad TupleLoad Str Str Str Str Assign NameStore BinOpMult NameLoad Call NameLoad NameLoad NameLoad NameLoad UnaryOpUSub NameLoad NameLoad Num Assign NameStore BinOpMult Call NameLoad BinOpAdd BinOpMult Num NameLoad Num Call NameLoad NameLoad Num Assign NameStore BinOpDiv BinOpMult BinOpPow Num BinOpSub NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore BinOpAdd BinOpMult Num NameLoad Num Assign NameStore BinOpAdd NameLoad NameLoad Return Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad NameLoad TupleLoad Str Str Str Str Str Str Str Str Str Assign NameStore BinOpMult NameLoad BinOpPow Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Num Assign NameStore Num Assign NameStore BinOpDiv NameLoad Call NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad BinOpAdd NameLoad NameLoad Assign NameStore BinOpSub BinOpAdd BinOpAdd NameLoad NameLoad Num Call NameLoad TupleLoad NameLoad CompareGt NameLoad NameLoad TupleLoad Num Call NameLoad NameLoad NameLoad TupleLoad NameLoad CompareGt NameLoad NameLoad Assign NameStore BinOpSub BinOpAdd NameLoad NameLoad NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub NameLoad NameLoad Assign NameStore BinOpAdd NameLoad NameLoad Assign NameStore BinOpMult BinOpSub BinOpAdd NameLoad Num NameLoad BinOpAdd BinOpAdd NameLoad NameLoad Num Assign NameStore BinOpAdd BinOpAdd BinOpMult BinOpSub NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore BinOpMult Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore BinOpMult Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad Num Assign NameStore Call NameLoad BinOpSub NameLoad NameLoad Assign NameStore Call NameLoad BinOpAdd NameLoad NameLoad Assign NameStore BinOpSub BinOpAdd BinOpAdd NameLoad NameLoad Num Call NameLoad TupleLoad NameLoad CompareGt NameLoad NameLoad TupleLoad Num Call NameLoad NameLoad NameLoad TupleLoad NameLoad CompareGt NameLoad NameLoad Assign NameStore BinOpSub BinOpAdd NameLoad NameLoad NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad NameLoad Call NameLoad Num NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub NameLoad NameLoad Assign NameStore BinOpAdd NameLoad NameLoad Assign NameStore BinOpMult BinOpSub BinOpAdd NameLoad Num NameLoad BinOpAdd BinOpAdd NameLoad NameLoad Num Assign NameStore BinOpAdd BinOpAdd BinOpMult BinOpSub NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad NameLoad Call NameLoad Num NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Return TupleLoad NameLoad BinOpAdd BinOpAdd NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Num Assign NameStore Num While CompareLt NameLoad Call NameLoad NameLoad body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad Call NameLoad NameLoad If CompareIs NameLoad NameLoad body AugAssignAdd NameStore Num Continue If UnaryOpNot AttributeLoad Call NameLoad Call AttributeLoad NameLoad attr NameLoad attr body AugAssignAdd NameStore Num Continue Assign NameStore ListComp TupleLoad NameLoad SubscriptLoad NameLoad Index NameLoad comprehension NameStore NameLoad Assign NameStore BinOpMult ListLoad NameLoad Call AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad NameLoad Call NameLoad NameLoad body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad Call AttributeLoad NameLoad attr NameLoad BinOpSub Call NameLoad NameLoad Call NameLoad NameLoad keyword TupleLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Continue If UnaryOpNot AttributeLoad Call NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr NameLoad attr body Continue Assign SubscriptStore NameLoad Index Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr NameLoad TupleLoad NameLoad Call AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad Num attr NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr NameLoad If Call NameLoad GeneratorExp CompareIsNot NameLoad NameLoad comprehension NameStore NameLoad body Assign NameStore Call NameLoad ListComp Call NameLoad SubscriptLoad NameLoad Index Num comprehension NameStore NameLoad Assign NameStore ListComp SubscriptLoad NameLoad Index Num comprehension NameStore NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Expr ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad For NameStore NameLoad body If CompareGt Call NameLoad SubscriptLoad NameLoad Index Num NameLoad body Expr Call AttributeLoad NameLoad attr BinOpMult BinOpSub SubscriptLoad NameLoad Index Num BinOpMult NameLoad SubscriptLoad NameLoad Index Num SubscriptLoad NameLoad Index Num AugAssignAdd NameStore BinOpMult NameLoad Call AttributeLoad BinOpMult NameLoad NameLoad attr NameLoad orelse AugAssignAdd NameStore Num Return TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Return If CompareIsNot NameLoad NameLoad body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str If UnaryOpNot CompareEq SubscriptLoad NameLoad Index Num Call AttributeLoad SubscriptLoad NameLoad Index Num attr NameLoad body Return If CompareEq Call NameLoad NameLoad NameLoad body Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad Call NameLoad NameLoad NameLoad NameLoad Num NameLoad NameLoad TupleLoad NameLoad UnaryOpUSub NameLoad NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareEq Call NameLoad NameLoad Num body Return Call AttributeLoad BinOpMult BinOpAdd BinOpMult Num NameLoad Num Call NameLoad NameLoad Num attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad BinOpMult BinOpPow Num BinOpSub NameLoad NameLoad Call NameLoad NameLoad NameLoad NameLoad UnaryOpUSub NameLoad NameLoad Num TupleLoad NameLoad UnaryOpUSub NameLoad NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareEq Call NameLoad NameLoad Num body Return Call AttributeLoad BinOpMult Call NameLoad BinOpAdd BinOpMult Num NameLoad Num Call NameLoad NameLoad Num attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad BinOpMult Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad TupleLoad NameLoad UnaryOpUSub NameLoad NameLoad TupleLoad NameLoad UnaryOpUSub NameLoad NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareEq Call NameLoad NameLoad Num body Return Call AttributeLoad BinOpMult Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad BinOpPow Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad Num TupleLoad NameLoad UnaryOpUSub NameLoad NameLoad TupleLoad NameLoad UnaryOpUSub NameLoad NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareEq Call NameLoad NameLoad Num body Return Num Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body If Call NameLoad NameLoad NameLoad body Return TupleLoad TupleLoad NameLoad Num Num Assign NameStore ListLoad Assign NameStore Num If UnaryOpNot BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str If BoolOpAnd Call NameLoad NameLoad NameLoad AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr body If AttributeLoad Call NameLoad AttributeLoad NameLoad attr attr body Expr ListComp Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr comprehension NameStore Call NameLoad AttributeLoad NameLoad attr orelse Return TupleLoad TupleLoad NameLoad Num Num If Call NameLoad NameLoad NameLoad body For NameStore AttributeLoad NameLoad attr body If Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse AugAssignMult NameStore NameLoad Return TupleLoad NameLoad NameLoad BinOpDiv NameLoad Call NameLoad NameLoad decorator_list
N/A N/A Clebsch-Gordon Coefficients. __future__ print_function division sympy Add expand Eq Expr Mul Piecewise Pow sqrt Sum symbols sympify Wild sympy.core.compatibility range sympy.printing.pretty.stringpict prettyForm stringPict sympy.functions.special.tensor_functions KroneckerDelta sympy.physics.wigner clebsch_gordan wigner_3j wigner_6j wigner_9j N/A __all__ N/A CG Wigner3j Wigner6j Wigner9j cg_simp Wigner3j N/A Expr N/A N/A Class for the Wigner-3j symbols

    Wigner 3j-symbols are coefficients determined by the coupling of
    two angular momenta. When created, they are expressed as symbolic
    quantities that, for numerical parameters, can be evaluated using the
    ``.doit()`` method [1]_.

    Parameters
    ==========

    j1, m1, j2, m2, j3, m3 : Number, Symbol
        Terms determining the angular momentum of coupled angular momentum
        systems.

    Examples
    ========

    Declare a Wigner-3j coefficient and calcualte its value

        >>> from sympy.physics.quantum.cg import Wigner3j
        >>> w3j = Wigner3j(6,0,4,0,2,0)
        >>> w3j
        Wigner3j(6, 0, 4, 0, 2, 0)
        >>> w3j.doit()
        sqrt(715)/143

    See Also
    ========

    CG: Clebsch-Gordan coefficients

    References
    ==========

    .. [1] Varshalovich, D A, Quantum Theory of Angular Momentum. 1988.
     N/A is_commutative True __new__ N/A N/A cls j1 m1 j2 m2 j3 m3 N/A N/A N/A args N/A map sympify N/A j1 m1 j2 m2 j3 m3 N/A N/A N/A Expr __new__ cls args N/A j1 N/A N/A self N/A N/A N/A N/A N/A self args N/A 0 N/A property m1 N/A N/A self N/A N/A N/A N/A N/A self args N/A 1 N/A property j2 N/A N/A self N/A N/A N/A N/A N/A self args N/A 2 N/A property m2 N/A N/A self N/A N/A N/A N/A N/A self args N/A 3 N/A property j3 N/A N/A self N/A N/A N/A N/A N/A self args N/A 4 N/A property m3 N/A N/A self N/A N/A N/A N/A N/A self args N/A 5 N/A property is_symbolic N/A N/A self N/A N/A N/A N/A N/A all N/A N/A arg is_number N/A arg N/A self args N/A property _pretty N/A N/A self printer N/A args N/A N/A m N/A N/A N/A N/A printer _print N/A self j1 N/A N/A printer _print N/A self m1 N/A N/A N/A printer _print N/A self j2 N/A N/A printer _print N/A self m2 N/A N/A N/A printer _print N/A self j3 N/A N/A printer _print N/A self m3 N/A hsep 2 N/A vsep 1 N/A maxw N/A N/A -1 3 N/A j N/A range 3 N/A N/A N/A maxw N/A j N/A max N/A N/A N/A N/A N/A m N/A j N/A i width N/A i N/A range 2 N/A D None N/A i N/A range 2 N/A N/A D_row None N/A j N/A range 3 N/A N/A s N/A N/A m N/A j N/A i N/A wdelta N/A N/A maxw N/A j N/A N/A s width N/A wleft N/A wdelta 2 N/A wright N/A wdelta wleft N/A s N/A prettyForm N/A N/A s right N/A wright N/A s N/A prettyForm N/A N/A s left N/A wleft N/A N/A D_row None N/A N/A D_row s N/A N/A D_row N/A prettyForm N/A N/A D_row right N/A hsep N/A D_row N/A prettyForm N/A N/A D_row right s N/A N/A D None N/A N/A D D_row N/A N/A _ N/A range vsep N/A N/A D N/A prettyForm N/A N/A D below N/A D N/A prettyForm N/A N/A D below D_row N/A D N/A prettyForm N/A N/A D parens N/A D N/A _latex N/A N/A self printer N/A args N/A N/A label N/A map N/A printer _print N/A N/A self j1 N/A self j2 N/A self j3 N/A self m1 N/A self m2 N/A self m3 N/A N/A \left(\begin{array}{ccc} %s & %s & %s \\ %s & %s & %s \end{array}\right) N/A tuple label N/A doit N/A N/A self N/A hints N/A N/A N/A self is_symbolic N/A N/A N/A ValueError Coefficients must be numerical N/A N/A wigner_3j N/A self j1 N/A self j2 N/A self j3 N/A self m1 N/A self m2 N/A self m3 N/A N/A CG N/A Wigner3j N/A N/A Class for Clebsch-Gordan coefficient

    Clebsch-Gordan coefficients describe the angular momentum coupling between
    two systems. The coefficients give the expansion of a coupled total angular
    momentum state and an uncoupled tensor product state. The Clebsch-Gordan
    coefficients are defined as [1]_:

    .. math ::
        C^{j_1,m_1}_{j_2,m_2,j_3,m_3} = \langle j_1,m_1;j_2,m_2 | j_3,m_3\rangle

    Parameters
    ==========

    j1, m1, j2, m2, j3, m3 : Number, Symbol
        Terms determining the angular momentum of coupled angular momentum
        systems.

    Examples
    ========

    Define a Clebsch-Gordan coefficient and evaluate its value

        >>> from sympy.physics.quantum.cg import CG
        >>> from sympy import S
        >>> cg = CG(S(3)/2, S(3)/2, S(1)/2, -S(1)/2, 1, 1)
        >>> cg
        CG(3/2, 3/2, 1/2, -1/2, 1, 1)
        >>> cg.doit()
        sqrt(3)/2

    See Also
    ========

    Wigner3j: Wigner-3j symbols

    References
    ==========

    .. [1] Varshalovich, D A, Quantum Theory of Angular Momentum. 1988.
     doit N/A N/A self N/A hints N/A N/A N/A self is_symbolic N/A N/A N/A ValueError Coefficients must be numerical N/A N/A clebsch_gordan N/A self j1 N/A self j2 N/A self j3 N/A self m1 N/A self m2 N/A self m3 N/A _pretty N/A N/A self printer N/A args N/A N/A bot N/A N/A printer _print_seq N/A N/A self j1 N/A self m1 N/A self j2 N/A self m2 delimiter , N/A top N/A N/A printer _print_seq N/A N/A self j3 N/A self m3 delimiter , N/A pad N/A max N/A N/A top width N/A N/A bot width N/A bot N/A prettyForm N/A N/A bot left N/A top N/A prettyForm N/A N/A top left N/A N/A N/A pad N/A N/A bot width N/A N/A bot N/A prettyForm N/A N/A bot right N/A N/A pad N/A N/A bot width N/A N/A N/A pad N/A N/A top width N/A N/A top N/A prettyForm N/A N/A top right N/A N/A pad N/A N/A top width N/A s N/A stringPict N/A C N/A pad N/A s N/A prettyForm N/A N/A s below bot N/A s N/A prettyForm N/A N/A s above top N/A s N/A _latex N/A N/A self printer N/A args N/A N/A label N/A map N/A printer _print N/A N/A self j3 N/A self m3 N/A self j1 N/A self m1 N/A self j2 N/A self m2 N/A N/A C^{%s,%s}_{%s,%s,%s,%s} N/A tuple label N/A N/A Wigner6j N/A Expr N/A N/A Class for the Wigner-6j symbols

    See Also
    ========

    Wigner3j: Wigner-3j symbols

     __new__ N/A N/A cls j1 j2 j12 j3 j j23 N/A N/A N/A args N/A map sympify N/A j1 j2 j12 j3 j j23 N/A N/A N/A Expr __new__ cls args N/A j1 N/A N/A self N/A N/A N/A N/A N/A self args N/A 0 N/A property j2 N/A N/A self N/A N/A N/A N/A N/A self args N/A 1 N/A property j12 N/A N/A self N/A N/A N/A N/A N/A self args N/A 2 N/A property j3 N/A N/A self N/A N/A N/A N/A N/A self args N/A 3 N/A property j N/A N/A self N/A N/A N/A N/A N/A self args N/A 4 N/A property j23 N/A N/A self N/A N/A N/A N/A N/A self args N/A 5 N/A property is_symbolic N/A N/A self N/A N/A N/A N/A N/A all N/A N/A arg is_number N/A arg N/A self args N/A property _pretty N/A N/A self printer N/A args N/A N/A m N/A N/A N/A N/A printer _print N/A self j1 N/A N/A printer _print N/A self j3 N/A N/A N/A printer _print N/A self j2 N/A N/A printer _print N/A self j N/A N/A N/A printer _print N/A self j12 N/A N/A printer _print N/A self j23 N/A hsep 2 N/A vsep 1 N/A maxw N/A N/A -1 3 N/A j N/A range 3 N/A N/A N/A maxw N/A j N/A max N/A N/A N/A N/A N/A m N/A j N/A i width N/A i N/A range 2 N/A D None N/A i N/A range 2 N/A N/A D_row None N/A j N/A range 3 N/A N/A s N/A N/A m N/A j N/A i N/A wdelta N/A N/A maxw N/A j N/A N/A s width N/A wleft N/A wdelta 2 N/A wright N/A wdelta wleft N/A s N/A prettyForm N/A N/A s right N/A wright N/A s N/A prettyForm N/A N/A s left N/A wleft N/A N/A D_row None N/A N/A D_row s N/A N/A D_row N/A prettyForm N/A N/A D_row right N/A hsep N/A D_row N/A prettyForm N/A N/A D_row right s N/A N/A D None N/A N/A D D_row N/A N/A _ N/A range vsep N/A N/A D N/A prettyForm N/A N/A D below N/A D N/A prettyForm N/A N/A D below D_row N/A D N/A prettyForm N/A N/A D parens left { right } N/A D N/A _latex N/A N/A self printer N/A args N/A N/A label N/A map N/A printer _print N/A N/A self j1 N/A self j2 N/A self j12 N/A self j3 N/A self j N/A self j23 N/A N/A \left\{\begin{array}{ccc} %s & %s & %s \\ %s & %s & %s \end{array}\right\} N/A tuple label N/A doit N/A N/A self N/A hints N/A N/A N/A self is_symbolic N/A N/A N/A ValueError Coefficients must be numerical N/A N/A wigner_6j N/A self j1 N/A self j2 N/A self j12 N/A self j3 N/A self j N/A self j23 N/A N/A Wigner9j N/A Expr N/A N/A Class for the Wigner-9j symbols

    See Also
    ========

    Wigner3j: Wigner-3j symbols

     __new__ N/A N/A cls j1 j2 j12 j3 j4 j34 j13 j24 j N/A N/A N/A args N/A map sympify N/A j1 j2 j12 j3 j4 j34 j13 j24 j N/A N/A N/A Expr __new__ cls args N/A j1 N/A N/A self N/A N/A N/A N/A N/A self args N/A 0 N/A property j2 N/A N/A self N/A N/A N/A N/A N/A self args N/A 1 N/A property j12 N/A N/A self N/A N/A N/A N/A N/A self args N/A 2 N/A property j3 N/A N/A self N/A N/A N/A N/A N/A self args N/A 3 N/A property j4 N/A N/A self N/A N/A N/A N/A N/A self args N/A 4 N/A property j34 N/A N/A self N/A N/A N/A N/A N/A self args N/A 5 N/A property j13 N/A N/A self N/A N/A N/A N/A N/A self args N/A 6 N/A property j24 N/A N/A self N/A N/A N/A N/A N/A self args N/A 7 N/A property j N/A N/A self N/A N/A N/A N/A N/A self args N/A 8 N/A property is_symbolic N/A N/A self N/A N/A N/A N/A N/A all N/A N/A arg is_number N/A arg N/A self args N/A property _pretty N/A N/A self printer N/A args N/A N/A m N/A N/A N/A N/A printer _print N/A self j1 N/A N/A printer _print N/A self j3 N/A N/A printer _print N/A self j13 N/A N/A N/A printer _print N/A self j2 N/A N/A printer _print N/A self j4 N/A N/A printer _print N/A self j24 N/A N/A N/A printer _print N/A self j12 N/A N/A printer _print N/A self j34 N/A N/A printer _print N/A self j N/A hsep 2 N/A vsep 1 N/A maxw N/A N/A -1 3 N/A j N/A range 3 N/A N/A N/A maxw N/A j N/A max N/A N/A N/A N/A N/A m N/A j N/A i width N/A i N/A range 3 N/A D None N/A i N/A range 3 N/A N/A D_row None N/A j N/A range 3 N/A N/A s N/A N/A m N/A j N/A i N/A wdelta N/A N/A maxw N/A j N/A N/A s width N/A wleft N/A wdelta 2 N/A wright N/A wdelta wleft N/A s N/A prettyForm N/A N/A s right N/A wright N/A s N/A prettyForm N/A N/A s left N/A wleft N/A N/A D_row None N/A N/A D_row s N/A N/A D_row N/A prettyForm N/A N/A D_row right N/A hsep N/A D_row N/A prettyForm N/A N/A D_row right s N/A N/A D None N/A N/A D D_row N/A N/A _ N/A range vsep N/A N/A D N/A prettyForm N/A N/A D below N/A D N/A prettyForm N/A N/A D below D_row N/A D N/A prettyForm N/A N/A D parens left { right } N/A D N/A _latex N/A N/A self printer N/A args N/A N/A label N/A map N/A printer _print N/A N/A self j1 N/A self j2 N/A self j12 N/A self j3 N/A self j4 N/A self j34 N/A self j13 N/A self j24 N/A self j N/A N/A \left\{\begin{array}{ccc} %s & %s & %s \\ %s & %s & %s \\ %s & %s & %s \end{array}\right\} N/A tuple label N/A doit N/A N/A self N/A hints N/A N/A N/A self is_symbolic N/A N/A N/A ValueError Coefficients must be numerical N/A N/A wigner_9j N/A self j1 N/A self j2 N/A self j12 N/A self j3 N/A self j4 N/A self j34 N/A self j13 N/A self j24 N/A self j N/A N/A cg_simp N/A N/A e N/A N/A N/A Simplify and combine CG coefficients

    This function uses various symmetry and properties of sums and
    products of Clebsch-Gordan coefficients to simplify statements
    involving these terms [1]_.

    Examples
    ========

    Simplify the sum over CG(a,alpha,0,0,a,alpha) for all alpha to
    2*a+1

        >>> from sympy.physics.quantum.cg import CG, cg_simp
        >>> a = CG(1,1,0,0,1,1)
        >>> b = CG(1,0,0,0,1,0)
        >>> c = CG(1,-1,0,0,1,-1)
        >>> cg_simp(a+b+c)
        3

    See Also
    ========

    CG: Clebsh-Gordan coefficients

    References
    ==========

    .. [1] Varshalovich, D A, Quantum Theory of Angular Momentum. 1988.
     N/A N/A isinstance e Add N/A N/A N/A _cg_simp_add e N/A N/A N/A isinstance e Sum N/A N/A N/A _cg_simp_sum e N/A N/A N/A isinstance e Mul N/A N/A N/A Mul N/A N/A cg_simp arg N/A arg N/A e args N/A N/A N/A isinstance e Pow N/A N/A N/A Pow N/A cg_simp N/A e base N/A e exp N/A N/A e N/A _cg_simp_add N/A N/A e N/A N/A N/A Takes a sum of terms involving Clebsch-Gordan coefficients and
    simplifies the terms.

    First, we create two lists, cg_part, which is all the terms involving CG
    coefficients, and other_part, which is all other terms. The cg_part list
    is then passed to the simplification methods, which return the new cg_part
    and any additional terms that are added to other_part
     N/A cg_part N/A N/A other_part N/A N/A e N/A expand e N/A arg N/A e args N/A N/A N/A N/A arg has CG N/A N/A N/A isinstance arg Sum N/A N/A N/A N/A other_part append N/A _cg_simp_sum arg N/A N/A N/A isinstance arg Mul N/A N/A terms 1 N/A term N/A arg args N/A N/A N/A isinstance term Sum N/A N/A terms N/A _cg_simp_sum term N/A N/A terms term N/A N/A N/A terms has CG N/A N/A N/A N/A cg_part append terms N/A N/A N/A N/A other_part append terms N/A N/A N/A N/A cg_part append arg N/A N/A N/A N/A other_part append arg N/A N/A cg_part other N/A _check_varsh_871_1 cg_part N/A N/A N/A other_part append other N/A N/A cg_part other N/A _check_varsh_871_2 cg_part N/A N/A N/A other_part append other N/A N/A cg_part other N/A _check_varsh_872_9 cg_part N/A N/A N/A other_part append other N/A N/A N/A Add cg_part N/A Add other_part N/A _check_varsh_871_1 N/A N/A term_list N/A N/A N/A N/A a alpha b lt N/A map Wild N/A a alpha b lt N/A expr N/A lt N/A CG a alpha b 0 a alpha N/A simp N/A N/A N/A 2 a 1 N/A KroneckerDelta b 0 N/A sign N/A lt N/A abs lt N/A build_expr N/A N/A 2 a 1 N/A index_expr N/A a alpha N/A N/A _check_cg_simp expr simp sign lt term_list N/A a alpha b lt N/A a b build_expr index_expr N/A _check_varsh_871_2 N/A N/A term_list N/A N/A N/A N/A a alpha c lt N/A map Wild N/A a alpha c lt N/A expr N/A lt N/A CG a alpha a N/A alpha c 0 N/A simp N/A N/A sqrt N/A N/A 2 a 1 N/A KroneckerDelta c 0 N/A sign N/A N/A N/A -1 N/A a alpha lt N/A abs lt N/A build_expr N/A N/A 2 a 1 N/A index_expr N/A a alpha N/A N/A _check_cg_simp expr simp sign lt term_list N/A a alpha c lt N/A a c build_expr index_expr N/A _check_varsh_872_9 N/A N/A term_list N/A N/A N/A N/A a alpha alphap b beta betap c gamma lt N/A map Wild N/A a alpha alphap b beta betap c gamma lt N/A expr N/A lt N/A N/A CG a alpha b beta c gamma 2 N/A simp 1 N/A sign N/A lt N/A abs lt N/A x N/A abs N/A a b N/A y N/A abs N/A alpha beta N/A build_expr N/A N/A N/A a b 1 N/A Piecewise N/A x N/A x y N/A 0 N/A Eq x y N/A y N/A y x N/A index_expr N/A N/A a b c N/A N/A term_list other1 N/A _check_cg_simp expr simp sign lt term_list N/A a alpha b beta c gamma lt N/A a alpha b beta build_expr index_expr N/A x N/A abs N/A a b N/A y N/A a b N/A build_expr N/A N/A N/A y 1 x N/A N/A x y 1 N/A index_expr N/A N/A N/A N/A c x N/A x c c gamma N/A N/A term_list other2 N/A _check_cg_simp expr simp sign lt term_list N/A a alpha b beta c gamma lt N/A a alpha b beta build_expr index_expr N/A expr N/A N/A CG a alpha b beta c gamma N/A CG a alphap b betap c gamma N/A simp N/A N/A KroneckerDelta alpha alphap N/A KroneckerDelta beta betap N/A sign N/A sympify 1 N/A x N/A abs N/A a b N/A y N/A abs N/A alpha beta N/A build_expr N/A N/A N/A a b 1 N/A Piecewise N/A x N/A x y N/A 0 N/A Eq x y N/A y N/A y x N/A index_expr N/A N/A a b c N/A N/A term_list other3 N/A _check_cg_simp expr simp sign N/A sympify 1 term_list N/A a alpha alphap b beta betap c gamma N/A a alpha alphap b beta betap build_expr index_expr N/A x N/A abs N/A a b N/A y N/A a b N/A build_expr N/A N/A N/A y 1 x N/A N/A x y 1 N/A index_expr N/A N/A N/A N/A c x N/A x c c gamma N/A N/A term_list other4 N/A _check_cg_simp expr simp sign N/A sympify 1 term_list N/A a alpha alphap b beta betap c gamma N/A a alpha alphap b beta betap build_expr index_expr N/A N/A term_list N/A N/A other1 other2 other4 N/A _check_cg_simp N/A N/A expr simp sign lt term_list variables dep_variables build_index_expr index_expr N/A N/A N/A  Checks for simplifications that can be made, returning a tuple of the
    simplified list of terms and any terms generated by simplification.

    Parameters
    ==========

    expr: expression
        The expression with Wild terms that will be matched to the terms in
        the sum

    simp: expression
        The expression with Wild terms that is substituted in place of the CG
        terms in the case of simplification

    sign: expression
        The expression with Wild terms denoting the sign that is on expr that
        must match

    lt: expression
        The expression with Wild terms that gives the leading term of the
        matched expr

    term_list: list
        A list of all of the terms is the sum to be simplified

    variables: list
        A list of all the variables that appears in expr

    dep_variables: list
        A list of the variables that must match for all the terms in the sum,
        i.e. the dependant variables

    build_index_expr: expression
        Expression with Wild terms giving the number of elements in cg_index

    index_expr: expression
        Expression with Wild terms giving the index terms have when storing
        them to cg_index

     N/A other_part 0 N/A i 0 N/A N/A i N/A len term_list N/A N/A sub_1 N/A _check_cg N/A term_list N/A i expr N/A len variables N/A N/A sub_1 None N/A N/A i 1 N/A N/A N/A N/A N/A sympify N/A N/A build_index_expr subs sub_1 is_number N/A N/A i 1 N/A N/A sub_dep N/A N/A x N/A sub_1 N/A x N/A x dep_variables N/A cg_index N/A N/A None N/A N/A build_index_expr subs sub_1 N/A j N/A range i N/A len term_list N/A N/A sub_2 N/A _check_cg N/A term_list N/A j N/A N/A expr subs sub_dep N/A N/A len variables N/A len dep_variables sign N/A N/A N/A sign subs sub_1 N/A N/A sign subs sub_dep N/A N/A sub_2 None N/A N/A N/A N/A N/A N/A sympify N/A N/A N/A N/A index_expr subs sub_dep subs sub_2 is_number N/A N/A N/A N/A cg_index N/A N/A N/A N/A N/A index_expr subs sub_dep subs sub_2 N/A j N/A N/A N/A N/A N/A N/A expr subs lt 1 subs sub_dep subs sub_2 N/A N/A lt subs sub_2 N/A N/A N/A N/A sign subs sub_dep subs sub_2 N/A N/A all N/A N/A i None N/A i cg_index N/A N/A min_lt N/A min N/A N/A abs N/A term N/A 2 N/A term cg_index N/A indicies N/A N/A term N/A 0 N/A term cg_index N/A N/A N/A indicies sort N/A N/A N/A indicies reverse N/A N/A N/A N/A term_list pop i N/A i indicies N/A term cg_index N/A N/A N/A N/A abs N/A term N/A 2 min_lt N/A N/A N/A N/A term_list append N/A N/A N/A term N/A 2 N/A min_lt N/A term N/A 3 N/A term N/A 1 N/A other_part N/A min_lt N/A N/A N/A sign simp subs sub_1 N/A N/A i 1 N/A N/A term_list other_part N/A _check_cg N/A N/A cg_term expr length sign N/A None N/A N/A Checks whether a term matches the given expression N/A matches N/A N/A cg_term match expr N/A N/A matches None N/A N/A N/A N/A sign None N/A N/A N/A N/A isinstance sign tuple N/A N/A N/A TypeError sign must be a tuple N/A N/A N/A N/A sign N/A 0 N/A N/A N/A sign N/A 1 subs matches N/A N/A N/A N/A N/A len matches length N/A N/A matches N/A _cg_simp_sum N/A N/A e N/A N/A N/A e N/A _check_varsh_sum_871_1 e N/A e N/A _check_varsh_sum_871_2 e N/A e N/A _check_varsh_sum_872_4 e N/A e N/A _check_varsh_sum_871_1 N/A N/A e N/A N/A N/A a N/A Wild a N/A alpha N/A symbols alpha N/A b N/A Wild b N/A match N/A N/A e match N/A Sum N/A CG a alpha b 0 a alpha N/A alpha N/A a a N/A N/A N/A match None N/A N/A len match 2 N/A N/A N/A N/A N/A N/A N/A 2 a 1 N/A KroneckerDelta b 0 subs match N/A e N/A _check_varsh_sum_871_2 N/A N/A e N/A N/A N/A a N/A Wild a N/A alpha N/A symbols alpha N/A c N/A Wild c N/A match N/A N/A e match N/A Sum N/A N/A -1 N/A a alpha N/A CG a alpha a N/A alpha c 0 N/A alpha N/A a a N/A N/A N/A match None N/A N/A len match 2 N/A N/A N/A N/A N/A N/A sqrt N/A N/A 2 a 1 N/A KroneckerDelta c 0 subs match N/A e N/A _check_varsh_sum_872_4 N/A N/A e N/A N/A N/A a N/A Wild a N/A alpha N/A Wild alpha N/A b N/A Wild b N/A beta N/A Wild beta N/A c N/A Wild c N/A cp N/A Wild cp N/A gamma N/A Wild gamma N/A gammap N/A Wild gammap N/A match1 N/A N/A e match N/A Sum N/A N/A CG a alpha b beta c gamma N/A CG a alpha b beta cp gammap N/A alpha N/A a a N/A beta N/A b b N/A N/A N/A match1 None N/A N/A len match1 8 N/A N/A N/A N/A N/A N/A KroneckerDelta c cp N/A KroneckerDelta gamma gammap subs match1 N/A match2 N/A N/A e match N/A Sum N/A N/A CG a alpha b beta c gamma 2 N/A alpha N/A a a N/A beta N/A b b N/A N/A N/A match2 None N/A N/A len match2 6 N/A N/A 1 N/A e N/A _cg_list N/A N/A term N/A N/A N/A N/A isinstance term CG N/A N/A N/A N/A term 1 1 N/A cg N/A N/A coeff 1 N/A N/A N/A N/A isinstance term Mul N/A isinstance term Pow N/A N/A N/A NotImplementedError term must be CG, Add, Mul or Pow N/A N/A N/A isinstance term Pow N/A N/A sympify N/A term exp is_number N/A N/A N/A N/A sympify N/A term exp is_number N/A N/A N/A N/A N/A cg append N/A term base N/A _ N/A range N/A term exp N/A N/A N/A N/A term 1 1 N/A N/A isinstance term Mul N/A N/A arg N/A term args N/A N/A N/A isinstance arg CG N/A N/A N/A N/A cg append arg N/A N/A coeff arg N/A N/A cg coeff N/A coeff N/A abs coeff N/A