Hacked By AnonymousFox
�
�܋f^� � � � d Z ddlZddlmZ ddlmZ ddlm Z
ddlmZ g d�Z
e
j Zd� Zd � Z ej d
dg� � Z ej dg� � Z ej dg� � Z ej ddg� � Zd� Zd� Zd
� Zd� Zd� Zd� Zd� Zd'd�Zd(d�Zdg dddfd�Z d)d�Z!d� Z"d� Z#d� Z$d� Z%d� Z&d� Z'd� Z(d*d �Z)d!� Z*d"� Z+d#� Z,d$� Z- G d%� d&e� � Z.dS )+a�
==================================================
Legendre Series (:mod:`numpy.polynomial.legendre`)
==================================================
This module provides a number of objects (mostly functions) useful for
dealing with Legendre series, including a `Legendre` class that
encapsulates the usual arithmetic operations. (General information
on how this module represents and works with such polynomials is in the
docstring for its "parent" sub-package, `numpy.polynomial`).
Classes
-------
.. autosummary::
:toctree: generated/
Legendre
Constants
---------
.. autosummary::
:toctree: generated/
legdomain
legzero
legone
legx
Arithmetic
----------
.. autosummary::
:toctree: generated/
legadd
legsub
legmulx
legmul
legdiv
legpow
legval
legval2d
legval3d
leggrid2d
leggrid3d
Calculus
--------
.. autosummary::
:toctree: generated/
legder
legint
Misc Functions
--------------
.. autosummary::
:toctree: generated/
legfromroots
legroots
legvander
legvander2d
legvander3d
leggauss
legweight
legcompanion
legfit
legtrim
legline
leg2poly
poly2leg
See also
--------
numpy.polynomial
� N)�normalize_axis_index� )� polyutils)�ABCPolyBase)�legzero�legone�legx� legdomain�legline�legadd�legsub�legmulx�legmul�legdiv�legpow�legval�legder�legint�leg2poly�poly2leg�legfromroots� legvander�legfit�legtrim�legroots�Legendre�legval2d�legval3d� leggrid2d� leggrid3d�legvander2d�legvander3d�legcompanion�leggauss� legweightc �� � t j | g� � \ } t | � � dz
}d}t |dd� � D ]%}t t |� � | | � � }�&|S )a.
Convert a polynomial to a Legendre series.
Convert an array representing the coefficients of a polynomial (relative
to the "standard" basis) ordered from lowest degree to highest, to an
array of the coefficients of the equivalent Legendre series, ordered
from lowest to highest degree.
Parameters
----------
pol : array_like
1-D array containing the polynomial coefficients
Returns
-------
c : ndarray
1-D array containing the coefficients of the equivalent Legendre
series.
See Also
--------
leg2poly
Notes
-----
The easy way to do conversions between polynomial basis sets
is to use the convert method of a class instance.
Examples
--------
>>> from numpy import polynomial as P
>>> p = P.Polynomial(np.arange(4))
>>> p
Polynomial([0., 1., 2., 3.], domain=[-1, 1], window=[-1, 1])
>>> c = P.Legendre(P.legendre.poly2leg(p.coef))
>>> c
Legendre([ 1. , 3.25, 1. , 0.75], domain=[-1, 1], window=[-1, 1]) # may vary
r r ���)�pu� as_series�len�ranger r )�pol�deg�res�is �P/opt/cloudlinux/venv/lib64/python3.11/site-packages/numpy/polynomial/legendre.pyr r d sg � �P
�L�#����E�S�
�c�(�(�Q�,�C�
�C�
�3��B�
�
� +� +���W�S�\�\�3�q�6�*�*����J� c �l � ddl m}m}m} t j | g� � \ } t
| � � }|dk r| S | d }| d }t |dz
dd� � D ]C}|} || |dz
||dz
z |z � � } || ||� � d|z dz
z |z � � }�D || ||� � � � S )a�
Convert a Legendre series to a polynomial.
Convert an array representing the coefficients of a Legendre series,
ordered from lowest degree to highest, to an array of the coefficients
of the equivalent polynomial (relative to the "standard" basis) ordered
from lowest to highest degree.
Parameters
----------
c : array_like
1-D array containing the Legendre series coefficients, ordered
from lowest order term to highest.
Returns
-------
pol : ndarray
1-D array containing the coefficients of the equivalent polynomial
(relative to the "standard" basis) ordered from lowest order term
to highest.
See Also
--------
poly2leg
Notes
-----
The easy way to do conversions between polynomial basis sets
is to use the convert method of a class instance.
Examples
--------
>>> from numpy import polynomial as P
>>> c = P.Legendre(range(4))
>>> c
Legendre([0., 1., 2., 3.], domain=[-1, 1], window=[-1, 1])
>>> p = c.convert(kind=P.Polynomial)
>>> p
Polynomial([-1. , -3.5, 3. , 7.5], domain=[-1., 1.], window=[-1., 1.])
>>> P.legendre.leg2poly(range(4))
array([-1. , -3.5, 3. , 7.5])
r )�polyadd�polysub�polymulx� ���r'