403Webshell
Server IP : 93.86.61.54  /  Your IP : 216.73.216.156
Web Server : Apache/2.4.62 (Ubuntu)
System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64
User : www-data ( 33)
PHP Version : 8.4.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3/dist-packages/sympy/physics/units/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/sympy/physics/units/__pycache__/util.cpython-310.pyc
o

�8Va=�@s�dZddlmZddlmZddlmZmZmZm	Z	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZdd
lmZdd�Zddd�Zdd�Zddd�ZdS)zA
Several methods to simplify expressions involving unit objects.
�)�reduce)�Iterable)�Add�Mul�Pow�Tuple�sympify)�ordered)�NonInvertibleMatrixError)�	Dimension)�Prefix)�Quantity)�siftc
s�ddlm}����t��|��}�j|dd���fdd�|D���fdd��D�}dd	��D�}|�t|��s:dSt���fd
d�|D�}|��fdd�|D��}|�fdd�|D��}z|�|�}	W|	St	yoYdSw)
Nr)�MatrixT��mark_dimensionlesscsg|]	}t��|���qS�)r�get_dimensional_expr)�.0�x)�unit_systemr�:/usr/lib/python3/dist-packages/sympy/physics/units/util.py�
<listcomp>sz3_get_conversion_matrix_for_expr.<locals>.<listcomp>cs$g|]}�j|dd�D]}|�qqS)Tr)�get_dimensional_dependencies)rr�i)�dimension_systemrrrs$cSsh|]}|�qSrr�rrrrr�	<setcomp>sz2_get_conversion_matrix_for_expr.<locals>.<setcomp>cs"g|]
}|�vs��|�s|�qSr)�addr)�seenrrr�"cs g|]���fdd��D��qS)cs"g|]
}�j|dd���d��qS)Trr)r�getr)r�jrrr!r z>_get_conversion_matrix_for_expr.<locals>.<listcomp>.<listcomp>r)r)r�target_dims)r"rr!s csg|]}��|d��qS�r)r!)r�k)�dim_dependenciesrrr"�)
�sympyr�get_dimension_systemrrr�issubset�set�solver
)
�expr�target_unitsrr�expr_dim�canon_dim_units�canon_expr_units�camat�exprmat�
res_exponentsr)r&rrr#rr�_get_conversion_matrix_for_exprs&��r5�SIcs�ddlm}|����t�ttf�s�g�t|t�r(t���fdd�|jD��St	|�}t|t
�sC|�t
�rC|�dd���fdd��}��fdd	��t
|���}|d
urV|S�|�}|t��fdd�t�|�D��S)a�
    Convert ``expr`` to the same expression with all of its units and quantities
    represented as factors of ``target_units``, whenever the dimension is compatible.

    ``target_units`` may be a single unit/quantity, or a collection of
    units/quantities.

    Examples
    ========

    >>> from sympy.physics.units import speed_of_light, meter, gram, second, day
    >>> from sympy.physics.units import mile, newton, kilogram, atomic_mass_constant
    >>> from sympy.physics.units import kilometer, centimeter
    >>> from sympy.physics.units import gravitational_constant, hbar
    >>> from sympy.physics.units import convert_to
    >>> convert_to(mile, kilometer)
    25146*kilometer/15625
    >>> convert_to(mile, kilometer).n()
    1.609344*kilometer
    >>> convert_to(speed_of_light, meter/second)
    299792458*meter/second
    >>> convert_to(day, second)
    86400*second
    >>> 3*newton
    3*newton
    >>> convert_to(3*newton, kilogram*meter/second**2)
    3*kilogram*meter/second**2
    >>> convert_to(atomic_mass_constant, gram)
    1.660539060e-24*gram

    Conversion to multiple units:

    >>> convert_to(speed_of_light, [meter, second])
    299792458*meter/second
    >>> convert_to(3*newton, [centimeter, gram, second])
    300000*centimeter*gram/second**2

    Conversion to Planck units:

    >>> convert_to(atomic_mass_constant, [gravitational_constant, speed_of_light, hbar]).n()
    7.62963087839509e-20*hbar**0.5*speed_of_light**0.5/gravitational_constant**0.5

    r��
UnitSystemc3s�|]	}t|���VqdS�N��
convert_tor�r.rrr�	<genexpr>_s�zconvert_to.<locals>.<genexpr>cSs
t|t�Sr9)�
isinstancer
�rrrr�<lambda>ds
zconvert_to.<locals>.<lambda>cs|����Sr9r:r?r<rrr@dscsZt|t�rtdd��fdd�|jD��St|t�r!�|j�|jSt|t�r+��|�S|S)NcSs||Sr9r)r�yrrrr@hsz<convert_to.<locals>.get_total_scale_factor.<locals>.<lambda>csg|]}�|��qSrrr��get_total_scale_factorrrrh�z>convert_to.<locals>.get_total_scale_factor.<locals>.<listcomp>)	r>rr�argsr�base�expr
�get_quantity_scale_factor)r-)rCrrrrCfs



z*convert_to.<locals>.get_total_scale_factorNc3s(�|]\}}d�|�||VqdS)�Nr)r�u�prBrrr=ts�&)�sympy.physics.unitsr8�get_unit_systemr>rrr�fromiterrErr
�has�replacer5r�zip)r-r.rr8�depmat�expr_scale_factorr)rCr.rrr;,s,

	"r;cs�|js	|�tt�s|S|�t�}|�dd�|D��}t|�t�dd��}|D],}t||�dkr1q&tt	||��}|d|dj
�|��fdd�|dd�D��}q&|S)	a�Return an equivalent expression in which prefixes are replaced
    with numerical values and all units of a given dimension are the
    unified in a canonical manner.

    Examples
    ========

    >>> from sympy.physics.units.util import quantity_simplify
    >>> from sympy.physics.units.prefixes import kilo
    >>> from sympy.physics.units import foot, inch
    >>> quantity_simplify(kilo*foot*inch)
    250*foot**2/3
    >>> quantity_simplify(foot - 6*inch)
    foot/2
    cSsi|]}||j�qSr��scale_factor)rrKrrr�
<dictcomp>�rDz%quantity_simplify.<locals>.<dictcomp>cSs|jSr9)�	dimension)rrrrr@�sz#quantity_simplify.<locals>.<lambda>rIrcsi|]}|�|j�qSrrT)r�vi��refrrrV�r'N)�is_AtomrOrr
�atoms�xreplacer�len�listr	rU)r-rK�dr%�vrrYr�quantity_simplifyws
"rbcCsFddlm}|�|�}dd�}|�t�}|��j}|D]a}t�}|jD]X}|j	r.|�
d�q#g}	d}
i}t�|�D]"}|�
t�rGt|�|��}|�
t�rT||||��}q9|jr[d}
nq9|	�|���|
s{|�
tt|	���t|�dkr{td	�|���q#qi}
|�t�D]}td
d�|jD��r�|jdd
�|jD��|
|<q�|�|
�S)z[Return expr if units in addends have the same
    base dimensions, else raise a ValueError.rr7cSsPi|�|�}|��D]\}}||vr||vr|||||<q
dd�|��D�S)z]Merge dictionaries by adding values of common keys and
        removing keys with value of 0.cSsi|]\}}|dkr||�qSr$r)r�key�valrrrrV�sz5check_dimensions.<locals>.addDict.<locals>.<dictcomp>)�items)�dict1�dict2�dict3rc�valuerrr�addDict�s�z!check_dimensions.<locals>.addDictrFTrIz(addends have incompatible dimensions: {}css�|]}t|t�VqdSr9)r>rrrrrr=�s�z#check_dimensions.<locals>.<genexpr>cSsg|]}|js|�qSr)�	is_numberrrrrr�s
��z$check_dimensions.<locals>.<listcomp>)rLr8rMr\rr)rr+rErkrr�	make_argsrOr
rr�free_symbols�extendre�tuple�sortedr^�
ValueError�format�any�funcr])r-rr8rj�adds�DIM_OF�a�deset�ai�dims�skip�dimdictr�reps�mrrr�check_dimensions�sP


	




����
��
rN)r6)�__doc__�	functoolsr�collections.abcrr(rrrrr�sympy.core.compatibilityr	�sympy.matrices.commonr
�sympy.physics.units.dimensionsr�sympy.physics.units.prefixesr�sympy.physics.units.quantitiesr
�sympy.utilities.iterablesrr5r;rbrrrrr�<module>s
K%

Youez - 2016 - github.com/yon3zu
LinuXploit