� ��g���n�ddlmZmZmZmZddlmZddlmZddl m Z m Z ddl m Z ddlmZmZd�Zd�Zd S) �)�Function�Pow�sympify�Expr)� Relational)�S)�Poly� decompose)� func_name)�Min�Maxc����t|��}t|t��rt|t��rt dt |��z����|jvr|gSt|ttf��rb|j r|j tj kr|j }n |jd}|�kr|gS|�|���gt!|���zSt|t"t$f��r�t'|j��}d}t)|��D]o\}}|����s�t!|���}t-|��dkr�g|z}|� |dd�}n|dd�|kr�g}n |d||<�p|d�kr|gS|j|�g|zSt1|��}t't3�fd�|j����} t-| ��dkrD| d�kr8|�| d���} | d} | gt!| ���zS t7|��S#t8$r|gcYSwxYw)a9 Computes General functional decomposition of ``f``. Given an expression ``f``, returns a list ``[f_1, f_2, ..., f_n]``, where:: f = f_1 o f_2 o ... f_n = f_1(f_2(... f_n)) Note: This is a General decomposition function. It also decomposes Polynomials. For only Polynomial decomposition see ``decompose`` in polys. Examples ======== >>> from sympy.abc import x >>> from sympy import decompogen, sqrt, sin, cos >>> decompogen(sin(cos(x)), x) [sin(x), cos(x)] >>> decompogen(sin(x)**2 + sin(x) + 1, x) [x**2 + x + 1, sin(x)] >>> decompogen(sqrt(6*x**2 - 5), x) [sqrt(x), 6*x**2 - 5] >>> decompogen(sin(sqrt(cos(x**2 + 1))), x) [sin(x), sqrt(x), cos(x), x**2 + 1] >>> decompogen(x**4 + 2*x**3 - x - 1, x) [x**2 - x - 1, x**2 + x] zexpecting Expr but got: `%s`rN�c����|jvS)N)� free_symbols)�x�symbols ��h/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sympy/solvers/decompogen.py�<lambda>zdecompogen.<locals>.<lambda>Ms����1�>�!9��)r� isinstancerr� TypeErrorr rrr�is_Pow�baser�Exp1�exp�args�subs� decompogenr r �list� enumerate�has_free�len�funcr �filter�gensr � ValueError) �fr�argr�d0�i�a�d�fpr&�f1�f2s ` rrr s����6 �� � �A� �a�� � �G�*�Q� �";�";�G��6��1���E�F�F�F� �Q�^�#�#��s� ��!�h��_�%�%�?� �8� ���!�&�(�(��%�C�C��&��)�C� �&�=�=��3�J����s�F�#�#�$�z�#�v�'>�'>�>�>��!�c�3�Z� � �$��A�F�|�|�� ���d�O�O� � �D�A�q��:�:�f�%�%� ���1�f�%�%�A��1�v�v��{�{��H�q�L���z��q�r�r�U����1�2�2��"����H������d�D��G�G� �Q�4�6�>�>��3�J����� ���#�#� �a���B� ��9�9�9�9�2�7�C�C� D� D�D� �4�y�y�A�~�~�$�q�'�V�+�+� �V�V�D��G�V� $� $�� �!�W���t�j��V�,�,�,�,����|�|��� �����s� � � ����s�>I � I�Ic���t|��dkr|dS|d�||d��}t|��dkr|St|g|dd�z|��S)a0 Returns the composition of functions. Given a list of functions ``g_s``, returns their composition ``f``, where: f = g_1 o g_2 o .. o g_n Note: This is a General composition function. It also composes Polynomials. For only Polynomial composition see ``compose`` in polys. Examples ======== >>> from sympy.solvers.decompogen import compogen >>> from sympy.abc import x >>> from sympy import sqrt, sin, cos >>> compogen([sin(x), cos(x)], x) sin(cos(x)) >>> compogen([x**2 + x + 1, sin(x)], x) sin(x)**2 + sin(x) + 1 >>> compogen([sqrt(x), 6*x**2 - 5], x) sqrt(6*x**2 - 5) >>> compogen([sin(x), sqrt(x), cos(x), x**2 + 1], x) sin(sqrt(cos(x**2 + 1))) >>> compogen([x**2 - x - 1, x**2 + x], x) -x**2 - x + (x**2 + x)**2 - 1 rr�N)r#r�compogen)�g_sr�foos rr3r3[si��6 �3�x�x�1�}�}��1�v� � �a�&�+�+�f�c�!�f� %� %�C� �3�x�x�1�}�}�� � �S�E�C����G�O�V� ,� ,�,rN)� sympy.corerrrr�sympy.core.relationalr�sympy.core.singletonr� sympy.polysr r �sympy.utilities.miscr �(sympy.functions.elementary.miscellaneousr r rr3�rr�<module>r=s���5�5�5�5�5�5�5�5�5�5�5�5�,�,�,�,�,�,�"�"�"�"�"�"�'�'�'�'�'�'�'�'�*�*�*�*�*�*�=�=�=�=�=�=�=�=�O�O�O�d#-�#-�#-�#-�#-r
Memory