
    IR-eM                        d dl mZ d dlZd dlZd dlmZmZmZ d dl	m
Z d dlmZ d dlmZmZmZ d dlmZ d dlmZmZ ej        ej        ej        ej        gZd	 Zd
 Zd Zd Zd Z d Z!d Z"d Z#ej$        %                    dd          d             Z&d Z'd Z(d Z)ej$        *                    e d          d             Z+d Z,d Z-d Z.d Z/d Z0d Z1d  Z2d! Z3d" Z4ej$        *                    e d          ej$        %                    d#e          d$                         Z5d% Z6ej$        %                    d&ej7        ej8        f          d'             Z9ej$        %                    d&ej7        ej8        f          d(             Z:d) Z;ej$        *                    e d          ej$        %                    d#e          d*                         Z<ej$        *                    e d          ej$        %                    d+d,          d-                         Z=ej$        *                    e d          ej$        %                    d.d/          ej$        >                    d0          d1                                     Z?ej$        >                    d0          d2             Z@ej$        *                    e d          ej$        %                    d#e          d3                         ZAej$        %                    d4 ejB                     ejC                    g          d5             ZDej$        %                    d4 ejB                     ejC                    g          d6             ZEd7 ZFej$        %                    d8ejG        d9d:gfejH        d9d:gfejI        d d;gfejJ        d d;gfejK        d9d:gfejL        d9d:gfg          d<             ZMej$        *                    e d          d=             ZNdS )>    )nullcontextN)assert_allcloseassert_array_equalassert_array_less)units)Angle)InputParameterErrorfittingmodels)	HAS_SCIPY)AstropyDeprecationWarningAstropyUserWarningc                  .    ddl m}  ddlm} || k    sJ dS )z
    Test that the GAUSSIAN_SIGMA_TO_FWHM constant matches the
    gaussian_sigma_to_fwhm constant in astropy.stats. We define
    it manually in astropy.modeling to avoid importing from
    astropy.stats.
    r   )GAUSSIAN_SIGMA_TO_FWHM)gaussian_sigma_to_fwhmN)"astropy.modeling.functional_modelsr   astropy.stats.funcsr   )r   r   s     Mlib/python3.11/site-packages/astropy/modeling/tests/test_functional_models.pytest_sigma_constantr      sA     JIIIII::::::!%;;;;;;;    c                      t          j        dddd          } t          j        ddd          } | |          }g d	}t	          ||dd
           dS )zBRegression test for https://github.com/astropy/astropy/issues/1721@       @      ?   )	amplitudex_0widthsloper         )        fz?Nf8uP	@r   r   r$   r#   r"   ư>rtolatolN)r   Trapezoid1Dnplinspacer   )modelxxyyyy_refs       r   test_Trapezoid1Dr0   %   se     #SJJJE	Q1		B	rBQQQFBQT222222r   c                      t          j        ddd          } t          j        dd         } | |          }g d}t	          ||dd	           t	          | j        d
           d S )Nr   333333?ffffff@)stddevr      )gy@g4/z@g5a]@gMRC@gyY@r%   r&   F(@)r   
Gaussian1Dr*   mgridr   fwhm)r,   xgg_refs       r   test_Gaussian1Dr=   /   sp    c3s333E
1AaAHHHEAu140000EJ 233333r   c            	      &   t          j        dddddt          j        dz            } t          j        dd	dd	f         \  }} | ||          }g d
g dg dg dg dg}t          ||dd           t          | j        | j        gddg           dS )zd
    Test rotated elliptical Gaussian2D model.
    https://github.com/astropy/astropy/pull/2038
    r   r2   g@r3   ffffff
@g      @x_stddevy_stddevthetar   r5   )gm'@g7*@g%Кp@gUů|@g;^
@)gD)z@g)j@gG9@g?=xe	@g<%R`"
@)g<Ns@g)'^@gq@g],4@gSRZ
@)g.I@gǛ@gTŧ!@g`7@g!@)g`'@gCv}@gV@gm;*@g@r%   r&   r6   g; kh@N)r   
Gaussian2Dr*   pir8   r   x_fwhmy_fwhm)r,   yr:   r;   r<   s        r   test_Gaussian2DrI   8   s     S#c  E 8AaC1HDAqaACCCBBBCCCDDDCCCE Au140000	u|$'9;M&N    r   c                     ddgddgg} t          j        ddd|           }t          j        dd	dd	f         \  }} |||          }g d
g dg dg dg dg}t	          ||dd           g dg dg dg} d}t          j        t          |          5  t          j        ddd|            ddd           dS # 1 swxY w Y   dS )z}
    Test rotated elliptical Gaussian2D model when cov_matrix is input.
    https://github.com/astropy/astropy/pull/2199
         H@      0      "@g      1@r         @
cov_matrixr   r5   )g&o@g[]@g-1H4@g "@gfl$@)r!r!@O%@狵K]*=)@!e,@>㨮-@)ku/^+@.^b.@ąEr0@ȀG0@.V E0@)rZ   rY   rX   rW   rV   )rU   rT   rS   rR   rQ   r%   r&   )rK   Q	@rL   )r[   rL   rM   )i   r[   zCovariance matrix must be 2x2matchN)r   rD   r*   r8   r   pytestraises
ValueError)rP   r,   rH   r:   r;   r<   MESSAGEs          r   test_Gaussian2DCovariancerc   P   sr    -%.JdCDDDE8AaC1HDAqaACCCHHHIIIIIIHHHE Au140000 &%%'9'9'9???KJ.G	z	1	1	1 A A$SZ@@@@A A A A A A A A A A A A A A A A A As   B::B>B>c                  N   d} d\  }}d\  }}t          dd          }t          | ||||          }t          j        |j                  }|d|z  z   |d|z  z   f} || }	t          j        dd	d
i|}
t          j        dd	|j        i|} |
| } ||	 }t          ||           d S )N*   )r   r   )   r   
   deg)r   x_meany_meanrA   rB   anglerf   rC   r    )r   dictr   
Rotation2DdegreerD   radianr   )r   ri   rj   rA   rB   rC   parsrotationpoint1point2g1g2value1value2s                 r   test_Gaussian2DRotationrz   j   s    INFFHh"eE  D  u|444Hq8|#Va(l%:;FXvF			+	+	+d	+	+B			6	6	6	6	6BR[FR[FFF#####r   c                     d} d}d}ddgddgg}t          j                     t          j        | ||           t          j        d ||           t          j        | d |           t          j        | |d            t          j        |           d	}t          j        t          |
          5  t          j        d|           d d d            n# 1 swxY w Y   t          j        t          |
          5  t          j        d|           d d d            n# 1 swxY w Y   t          j        t          |
          5  t          j        d|           d d d            d S # 1 swxY w Y   d S )Nr3   r?   rg   rK   rL   rM   r@   rO   z3Cannot specify both cov_matrix and x/y_stddev/thetar]   r   )rA   rP   )rB   rP   )rC   rP   )r   rD   r_   r`   r	   )rA   rB   rC   rP   rb   s        r   test_Gaussian2D_invalid_inputsr|      s?   HHE-%.J 
x(%HHHH
theDDDD
x$eDDDD
x($GGGG
,,,,DG	*'	:	:	: = =1<<<<= = = = = = = = = = = = = = =	*'	:	:	: = =1<<<<= = = = = = = = = = = = = = =	*'	:	:	: : :j9999: : : : : : : : : : : : : : : : : :s6   0CCC9DD #D E&&E*-E*c                  p   t          dd          } t          j        ddddd|           }t          j        dz  }t          j        ddddd|          }|j        j                            d	          j        |j        j        k    sJ |j	        |j	        k    sJ  |d
d           |d
d          k    sJ d S NZ   rh            r5   rC   r   rq   (\[@MbP?@)
r   r   rD   r*   rE   rC   quantitytovaluebounding_boxrC   model1theta2model2s       r   test_Gaussian2D_thetar      s    "eEq"b"au===FUS[Fq"b"av>>>F< ##H--3v|7IIIII&"555556&&!!VVFF%;%;;;;;;;r   gamma)rg   ic                     d}| dd}t          j        di |}t          j        di |}t          |j        |j        g|           t          d|j        |j        g           d S )Ng/7RA@      ?)r   alphar   rm   )r   Moffat1DMoffat2Dr   r9   r   )r   anskwargsm1m2s        r   test_moffat_fwhmr      sv    
Cs++F		"	"6	"	"B		"	"6	"	"BRWbg&,,,a"'27+,,,,,r   c                  
   t          j        d          }  | d          dk    sJ t           | ddg          ddg           t          |                      | ddg                    ddg           t          j        g dd	          } t           | d          d           t           | ddgd
          ddgddgddgg           t          |                      | ddgd
                    ddgddgddgg           dS )zLike ``test_ScaleModel()``.g?r   r   rf   gffffff?gffffff@)      r   r   r   )n_modelsF)model_set_axisr         ?N)r   RedshiftScaleFactorr   r   inversems    r   test_RedshiftScaleFactorr      s2    	"3''A1Q4419999qq!Qyy3*---AIIaaAii((1a&111 	">>>A>>>AqqttQqq!Q666#qAq6CQR88TUUU			!!QF511122aVaVaV4L    r   c                      t          j        d          } t          |                      | d                    d           d S Ngn?g-'@)r   r   r   r   r   s    r    test_RedshiftScaleFactor_inverser      s<    "6**AAIIaahh''/////r   c                      t          j        d          } d| _        | j        dk    sJ | j        }|j        dk    sJ t	           | | dd          d          d           d S )Nrf   r   r5   )r   r   r    Twith_bounding_box)r   r   r   r   r   r,   inverse_models     r   -test_RedshiftScaleFactor_inverse_bounding_boxr      s    &q))EE''''MM%0000eeA666$OOOQR    r   zrequires scipy)reasonc                      t          j                    } t          j        d          }d|z  }t	          j                    } || ||          }t          |j        dg           dS )z<Test fitting RedshiftScaleFactor model with LevMarLSQFitter.rg   g46<@g
h"lxz?N)r   r   r*   aranger
   LevMarLSQFitterr   
parameters)
init_modelr:   rH   fitterfitted_models        r   )test_RedshiftScaleFactor_model_levmar_fitr      sd     +--J
	"A
A$&&F6*a++LL+fX66666r   c                  ^   d} d\  }}t          dd          }t          j        | ||dd|j                  }t          j        ddddf         \  }} |||          }t	          j        ||dk             | k              sJ |||f         | k    sJ t          j        |j        	          }d
dg}	 ||	 }
t	          j	        |	          ||gz   }	t	          j	        |
          ||gz   }
t          j        | ||ddd          }t          j        | ||dd|j                  } ||	  ||
 k    sJ dS )zTest Ellipse2D model.      @)r   r   -   rh      r   r      rk   rf   r"   r   N)
r   r   	Ellipse2Drq   r*   r8   allro   rp   array)r   x0y0rC   emrH   r:   ers   rt   ru   e1e2s                r   test_Ellipse2Dr      s[   IFB"eE		)RQ5<	@	@B8AbD!B$JDAq
1aA6!AE(i'(((((RV9	!!!! u|444HVFXvFXfR(FXfR(F		)RQ	=	=	=B		)RQ	F	F	FB2v;""f+%%%%%%r   c            	         d} d}|dz  dz   }t           j        d|d|f         \  }} t          j        | ||||d          ||          } t          j        | |||          ||          }t          j        ||k              sJ dS )z7Test that circular Ellipse2D agrees with Disk2D [3736].r   rg   rf   r   r   r   N)r*   r8   r   r   Disk2Dr   )r   radiussizerH   r:   ellipsedisks          r   test_Ellipse2D_circularr      s    IFQJ!D8AdFAdFN#DAqRfy&&&&PQRRRSTVWXXG;6=FFF;;AqAAD6'T/"""""""r   c                  p   t          dd          } t          j        ddddd|           }t          j        dz  }t          j        ddddd|          }|j        j                            d	          j        |j        j        k    sJ |j	        |j	        k    sJ  |d
d           |d
d          k    sJ d S r~   )
r   r   r   r*   rE   rC   r   r   r   r   r   s       r   test_Ellipse2D_thetar     s    "eEaRQe<<<FUS[FaRQf===F< ##H--3v|7IIIII&"555556&&!!VVFF%;%;;;;;;;r   c                      t          j        d          } t          |                      | d                    d           d S r   )r   Scaler   r   r   s    r   test_Scale_inverser     ;    VAAIIaahh''/////r   c                      t          j        d          } d| _        | j        dk    sJ | j        }|j        dk    sJ  | | dd          d          dk    sJ d S Nrf   r   )rf   rg   r    Tr         @)r   r   r   r   r   s     r   test_Scale_inverse_bounding_boxr     s|    LOOEE''''MM%0000eeA666$OOOSVVVVVVVr   c                      t          j        d          } t          |                      | d                    d           d S r   )r   Multiplyr   r   r   s    r   test_Multiply_inverser      s;    AAIIaahh''/////r   c                      t          j        d          } d| _        | j        dk    sJ | j        }|j        dk    sJ  | | dd          d          dk    sJ d S r   )r   r   r   r   r   s     r   "test_Multiply_inverse_bounding_boxr   %  s~    OAEE''''MM%0000eeA666$OOOSVVVVVVVr   c                      t          j        d          } t          |                      | d                    d           d S r   )r   Shiftr   r   r   s    r   test_Shift_inverser   1  r   r   c                      t          j        d          } d| _        | j        dk    sJ | j        }|j        dk    sJ  | | dd          d          dk    sJ d S )Nrg   r   )   r   r    Tr   r   )r   r   r   r   r   s     r   test_Shift_inverse_bounding_boxr   6  s~    LEE''''MM%1111eeA666$OOOSVVVVVVVr   r   c                 "    |             } t          j                    }t          j        d          }|dz   }t	          j        t          d          5   | |||          }ddd           n# 1 swxY w Y   t          |j        dgd           dS )z<Test fitting Shift model with LevMarLSQFitter (issue #6103).rg   皙?zModel is linear in parametersr]   NV瞯<r(   )	r   r   r*   r   r_   warnsr   r   r   )r   r   r:   rH   r   s        r   test_Shift_model_levmar_fitr   B  s     VXXFJ
	"A	CA	(0O	P	P	P 0 0vj!Q//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 L+cU??????s   A,,A03A0c                     t          j        ddgd          } t          j        d          }t          j        |dz   |dz
  g          }t          j                    } || ||          }t          |j        ddgd	           d
S )z1Test linear fitting of Shift model (issue #6103).r   rf   )offsetr   rg   r   g?gɿr   r   N)	r   r   r*   r   r   r
   LinearLSQFitterr   r   )r   r:   r.   r   r   s        r   test_Shift_model_set_linear_fitr   S  s     aVa888J
	"A	1s7AG$	%	%B$&&F6*a,,LL+c4[uEEEEEEr   Modelc                      | ddgd          }t          j        dd          }t          j        d|z  d|z  g          }t          j                    } ||||          }t          |j        ddgd	           d
S )z+Test linear fitting of Scale model (#6103).r   rf   )factorr   r   gffffff?gQ?r   r   N)r*   r   r   r
   r   r   r   )r   r   r:   r.   r   r   s         r   test_Scale_model_set_linear_fitr   a  s     q!fq111J
	"aA	4!8TAX&	'	'B$&&F6*a,,LL+dD\FFFFFFr   c                      | dt           j        z            }dt           j        z  dt           j        z  d} |j        d	i |}t          j        ddd          }t           ||          d|z             d S )
Nr    )r   r   r   )r:   rH   r   d   rm   )ur   without_units_for_datar*   r+   r   )r   r   r   mnur:   s        r   'test_Scale_model_evaluate_without_unitsr   p  s    QWAqs7QS))F
"!
"
,
,V
,
,C
B3ACCFFAE"""""r   c            	      	   t          j        ddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ t          j        dddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ t          j        dddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ d}t          j	        t          |	          5  t          j        dddd
           d d d            n# 1 swxY w Y   t          j        dddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ t          j        ddddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ t          j	        t          |	          5  t          j        ddddd           d d d            n# 1 swxY w Y   t          j        ddddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ t          j        ddddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ t          j	        t          |	          5  t          j        ddddd           d d d            n# 1 swxY w Y   t          j        dddddd          } | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ | j        j        dk    sJ d}t          j	        t          |	          5  t          j        dddddd           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   y_0r    )r   r   r   r_inr   )r   r   r   r_out   z%r_in=.* and width=.* must both be >=0r]   r   r   )r   r   r   r   rf   r5   )r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r      )r   r   r   r   r   r!   )r   r   r   r   r   r   zWidth must be r_out - r_in)r   Ring2Dr   r   r   r   r   r   r_   r`   r	   )r   rb   s     r   test_Ring2D_routr   {  s   qa000A;!!!!5;!5;!6<17=A 	qaa888A;!!!!5;!5;!6<17=A 	qaq999A;!!!!5;!5;!6<17=A6G	*'	:	:	: < <qas;;;;< < < < < < < < < < < < < < < 	qar:::A;!!!!5;!5;!6<17=B 	qaaqAAAA;!!!!5;!5;!6<17=A	*'	:	:	: B BqaqqAAAAB B B B B B B B B B B B B B B 	qaaqAAAA;!!!!5;!5;!6<17=A 	qarCCCA;!!!!5;!5;!6<17=A	*'	:	:	: C CqaqBBBBC C C C C C C C C C C C C C C 	qaarKKKA;!!!!5;!5;!6<17=A+G	*'	:	:	: L LqaarKKKKL L L L L L L L L L L L L L L L L LsH   3FFF#K		KKO;;O?O?R??SSc                     |             } t          j        dddd          }t          j        ddd          } ||          }t          j        dddd          } | |||          }t	          |j        |j                   d	}t          j        t          |
          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr   r         @)amplitude_Lr   fwhm_Lfwhm_Gg      (   )numg      z6Not a valid method for Voigt1D Faddeeva function: testr]   testmethod)	r   Voigt1Dr*   r+   r   
param_setsr_   r`   ra   )r   voixarryarrvoi_initvoi_fitrb   s          r   test_Voigt1Dr    s    VXXF
.Ts3s
K
K
KC;tSb)))D3t99D~$CCPPPHfXtT**GG&777 HG	z	1	1	1 & &f%%%%& & & & & & & & & & & & & & & & & &s   !CCC	algorithm)	humlicek2wofzc                 p   ddl m} | dk    rt          j        t          d          }d}nt                      }d}d }|5  t          j        d	t          j	        z  d
dd|           }ddd           n# 1 swxY w Y   t           ||t          j         t          j                  d         d	|           dS )z*Test integral of normalized Voigt profile.r   )quadr  z&humlicek2 has been deprecated since .*r]   g:0yE>g+=c                 N    t          j        dt          j        z  ddd|           S )Nr   r"   r   r   r  r   r  r  r	  )r   r
  r*   rE   )r  s    r   voigtz test_Voigt1D_norm.<locals>.voigt  s,    ~beSY
 
 
 	
r   r   r"   r   r   r  Nr   )scipy.integrater  r_   r   r   r   r   r
  r*   rE   r   inf)r  r  ctxr(   r  r  s         r   test_Voigt1D_normr    s    %$$$$$Kl%-V
 
 
 mm
 
 

 
 
 
nbeSY
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 DDrvgrv..q13TBBBBBBs    'A33A7:A7doppler)gMbP?{Gz?r   r   r   rN   r  rg   z-ignore:humlicek2 has been deprecated since .*c           
          t          j        ddd          }t          j        dt           j        z  d| d          } ||          }|                    |ddt           j        z  d| 	          }t          j        dt           j        z  d| d
          } ||          }|                    |ddt           j        z  d| 	          }t          ||dddt          j        |           z  z   z             t          ||dddd| z  z   z             dS )z\
    Verify accuracy of Voigt profile in Humlicek approximation to Faddeeva.cc (SciPy).
    i   i r   r   r  )r  r  r  r	  r   )r   r  r  r  r  gHz>rf   r   )r'   g&.>r   r&   N)r*   r+   r   r
  rE   	fit_derivr   sqrt)r  r:   voi_wvf_wdvda_wvoi_hvf_hdvda_hs           r   test_Voigt1D_hum2r*    s.    	CV$$AN"%KGF  E 588D__	qcBEk#g   F N"%KGK  E 588D__	qcBEk#g   F D$TQRWW5E5E1E-E%FGGGGFFDAW<L4MNNNNNNr   c                  >   t          j        d          } | j        dk    sJ t          j                    } t          rS| j        dk    sJ t          j        d          } | j        dk    sJ t          j        d          } | j        dk    sJ dS | j        dk    sJ dS )zTest Voigt1D default methodr  r  _hum2zpf16cr  scipyN)r   r
  r	  r   )r  s    r   test_Voigt1D_methodr.    s     .
,
,
,C:&&&&
.

C 	+zV####nF+++zV####nG,,,zV######z]******r   c                 0    |             } t          j        ddd          }t          j        ddd          } ||          }t          j        ddd          } | |||          }t	          |j        |j                   t	          |j        d           d S )Nr   rf   )r   r_corer_tider   rg   gzPD?)r   KingProjectedAnalytic1Dr*   r+   r   r  concentration)r   kmr  r  km_initkm_fits         r    test_KingProjectedAnalytic1D_fitr7  *  s     VXXF		'!Aa	H	H	HB;sAr""D2d88D,q1MMMGVGT4((FF%r}555F(*=>>>>>r   r,   c                     t          j        ddd          }t          ||                      | |                               d S )Nr   g      $@   )r*   r+   r   r   )r,   r  s     r   $test_ExponentialAndLogarithmic1D_fitr:  8  s?    ;sD#&&DD%--d4455555r   c                     d}t          j        t          |          5  d| _        d d d            d S # 1 swxY w Y   d S )Nz!0 is not an allowed value for taur]   r   )r_   r`   ra   tau)r,   rb   s     r   &test_ExponentialAndLogarithmic_set_taur=  >  s    2G	z	1	1	1  	                 s   377c                  t    t          j        dd          } | j        }|j        dk    sJ |j        dk    sJ d S )Nr    i)r   	intercept      ?r   )r   Linear1Dr   r   r?  )r,   r   s     r   test_Linear1D_inverserB  F  sJ    O!s333EmG=E!!!!!!!!!!r   trigg      пr@  r   c                      | d                     }| d         \  }}t          j        ||d          }t          |                     ||                    |d           t           ||                    |                    |d           d S )Nr   r   r  g|=r   )r*   r   r   r   )rC  mdllowerupperr:   s        r   test_trig_inverserH  N  s     $q'))C7LE5
	%%%ACKKA''7777CCA''777777r   c            	      P   t          dd          } t          j        dddddd|           }t          j        d	z  }t          j        dddddd|          }|j        j                            d
          j        |j        j        k    sJ  |dd           |dd          k    sJ d S )Nr   rh   r   r5   r    r   r   r   r   rq   r   r   )	r   r   Sersic2Dr*   rE   rC   r   r   r   r   s       r   test_Sersic2D_thetarK  b  s    "eE_Q1b"c???FUS[F_Q1b"c@@@F< ##H--3v|7IIIII6&&!!VVFF%;%;;;;;;;r   )O
contextlibr   numpyr*   r_   numpy.testingr   r   r   astropyr   r   astropy.coordinatesr   astropy.modelingr	   r
   r   "astropy.utils.compat.optional_depsr   astropy.utils.exceptionsr   r   r   TRFLSQFitterLMLSQFitterDogBoxLSQFitterfittersr   r0   r=   rI   rc   rz   r|   r   markparametrizer   r   r   r   skipifr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  filterwarningsr*  r.  r7  Exponential1DLogarithmic1Dr:  r=  rB  Sine1D	ArcSine1DCosine1DArcCosine1D	Tangent1DArcTangent1DrH  rK  rm   r   r   <module>rd     sf   # " " " " "      P P P P P P P P P P       % % % % % % A A A A A A A A A A 8 8 8 8 8 8 R R R R R R R R 	
< 
< 
<3 3 34 4 4  0A A A4$ $ $,: : :.
< 
< 
< ),,- - -,-  (0 0 0
	 	 	 	M*:;;7 7 <;7& & &*# # #
< 
< 
<0 0 0
	 	 	0 0 0
	 	 	0 0 0
	 	 	 	M*:;;7++@ @ ,+ <;@F F F 6<"ABBG G CBG 6<"ABB# # CB#ML ML ML` 	M*:;;7++& & ,+ <;&  	M*:;;&;<<C C =< <;C4 	M*:;;$QRRLMMO O NM SR <;O4 LMM+ + NM+& 	M*:;;7++	? 	? ,+ <;	? #76#7#9#9;O6;O;Q;Q"RSS6 6 TS6
 #76#7#9#9;O6;O;Q;Q"RSS  TS" " " 
	&		E4=)	1c(#		aX&		E4=)		udm,
 
8 8
 
8 	M*:;;	< 	< <;	< 	< 	<r   