�
��g�P � �� � d Z ddlmZ ddlmZmZmZmZmZm Z m
Z
mZmZ ddl
mZ ddlmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZ ddlmZ dd l m!Z!m"Z"m#Z# dd
l$m%Z%m&Z& ddl'm(Z(m)Z) ddlm*Z* dd
l+m,Z, ddl-m.Z/m0Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZN ddlOmPZP ddlQmRZRmSZSmTZTmUZU ddlVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZc ddldmeZe ddlfmgZg ddlhmiZimjZj ddlkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZt ddlumvZvmwZw ddlxmyZymzZzm{Z{ ddl|m}Z} ddl~mZm�Z� ddl�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m�Z�m0Z0m.Z. dd l�m�Z� dd!l�m�Z�m�Z�m�Z� dd"l�m�Z�m�Z�m�Z� dd#l2m�Z� dd$l�m�Z�m�Z�m�Z�m�Z�m�Z� dd%l�m�Z� dd&l�m�Z� dd'l�m�Z�m�Z�m�Z�m�Z� dd(l�m�Z�m�Z�m�Z� dd)l�m�Z� G d*� d+e�� � Z�d,� Z�ej� fd-�Z�e�Z�d.� Z�d/� Z�d0a�d0a�d1� Z�d2� Z�d3� Z�d4� Z�d5� Z�d6� Z�ej� fd7�Z�d8� Z�d9� Z� G d:� d;e�� � Z�d<� Z�d=� Z�d>� Z�ej� fd?�Z�d@� Z�dA� Z�dB� Z�d`dD�Z�dE� Z�dF� Z�dG� Z�dH� Z�dI� Z�dJ� Z�dK� Z�dL� Z�dM� Z�dN� Z�d0ej� fdO�Z�dP� Z�dQ� Z�dR� Z�dS� Z�dCdT�dU�Z�dV� Z�dW� Z�dX� Z�i gg g d0fdY�Z�dZ� Z�d[� Z�d\� Z�d]� Z�d^� Z�d_� Z�d0S )aa�
This module contains functions to:
- solve a single equation for a single variable, in any domain either real or complex.
- solve a single transcendental equation for a single variable in any domain either real or complex.
(currently supports solving in real domain only)
- solve a system of linear equations with N variables and M equations.
- solve a system of Non Linear Equations with N variables and M equations
� ��sympify) �S�Pow�Dummy�pi�Expr�Wild�Mul�Add�Basic)�Tuple)�Lambda�expand_complex�AppliedUndef�
expand_log�_mexpand�expand_trig�nfloat)�Mod)�I�Number�Rational�oo)�integer_log)�Eq�Ne�
Relational)�default_sort_key�ordered)�Symbol�_uniquely_named_symbol)�_sympify)�preorder_traversal)�gcd�lcm)�_linear_eq_to_dict)�UnsolvableFactorError)�simplify�fraction�trigsimp� nsimplify)� powdenest�
logcombine)�log�tan�cot�sin�cos�sec�csc�exp�acos�asin�atan�acot�acsc�asec�piecewise_fold� Piecewise)�totient)�Abs�arg�re�im)
�HyperbolicFunction�sinh�cosh�tanh�coth�sech�csch�asinh�acosh�atanh�acoth�asech�acsch)� real_root)�TrigonometricFunction)�And�BooleanTrue) � FiniteSet�imageset�Interval�Intersection�Union�ConditionSet�ImageSet�
Complement�Contains)�Set�
ProductSet)�zeros�Matrix�
MatrixBase)�divisors)�discrete_log�nthroot_mod) �roots�Poly�degree�together�PolynomialError�RootOf�factorr&