+
    Y°³jƒ  ã                   óZ   € ^ RI t ^ RIt^ RIHt ^ RIHtHt ^ RIHt  ! R R]4      t	R t
R# )é    N)Úcached_property)Úarray_namespaceÚ	np_compat)ÚNestedFixedRulec                   óN   a € ] tR t^t o RtRR lt]R 4       t]R 4       tRt	V t
R# )ÚGenzMalikCubatureaé  
Genz-Malik cubature.

Genz-Malik is only defined for integrals of dimension >= 2.

Parameters
----------
ndim : int
    The spatial dimension of the integrand.

xp : array_namespace, optional
    The namespace for the node and weight arrays. Default is None, where NumPy is
    used.

Attributes
----------
higher : Cubature
    Higher-order rule.

lower : Cubature
    Lower-order rule.

References
----------
.. [1] A.C. Genz, A.A. Malik, Remarks on algorithm 006: An adaptive algorithm for
    numerical integration over an N-dimensional rectangular region, Journal of
    Computational and Applied Mathematics, Volume 6, Issue 4, 1980, Pages 295-302,
    ISSN 0377-0427, :doi:`10.1016/0771-050X(80)90039-X`.

Examples
--------
Evaluate a 3D integral:

>>> import numpy as np
>>> from scipy.integrate import cubature
>>> from scipy.integrate._rules import GenzMalikCubature
>>> def f(x):
...     # f(x) = cos(x_1) + cos(x_2) + cos(x_3)
...     return np.sum(np.cos(x), axis=-1)
>>> rule = GenzMalikCubature(3) # Use 3D Genz-Malik
>>> a, b = np.array([0, 0, 0]), np.array([1, 1, 1])
>>> rule.estimate(f, a, b) # True value 3*sin(1), approximately 2.5244
 np.float64(2.5244129547230862)
>>> rule.estimate_error(f, a, b)
 np.float64(1.378269656626685e-06)
Nc                óÒ   € V^8  d   \        R4      hV^8w  g   V^8w  d   \        R4      hWn        W n        W0n        Vf   \
        p\        VP                  ^ 4      4      V n        R# )é   z1Genz-Malik cubature is only defined for ndim >= 2zKGenz-Malik cubature is currently only supportedfor degree=7, lower_degree=5N)	Ú
ValueErrorÚNotImplementedErrorÚndimÚdegreeÚlower_degreer   r   ÚemptyÚxp)Úselfr   r   r   r   s   &&&&&Úc/home/luca/screen-checking/.venv/lib/python3.14/site-packages/scipy/integrate/_rules/_genz_malik.pyÚ__init__ÚGenzMalikCubature.__init__;   sh   € Ø�!Œ8ÜÐPÓQÐQà�QŒ;˜,¨!Ô+Ü%ð 'Eó Fð Fð Œ	ØŒØ(ÔàŠ:ÜˆBä! "§(¡(¨1£+Ó.ˆŽó    c                óÜ	  € \         P                  ! R
4      p\         P                  ! R4      p\         P                  ! R4      p\         P                  ! R4      p\        P                  ! RV P                  ,          .\        V3RV P                  ^,
          ,          ,           4      \        V) 3RV P                  ^,
          ,          ,           4      \        V3RV P                  ^,
          ,          ,           4      \        V) 3RV P                  ^,
          ,          ,           4      \        W33RV P                  ^,
          ,          ,           4      \        W3) 3RV P                  ^,
          ,          ,           4      \        V) V) 3RV P                  ^,
          ,          ,           4      \        P                  ! WD) 3V P                  R7      4	      p^^V P                  ^,           ,          V P                  ,          ,           ^V P                  ,          ,           pV P                  P                  \        \        V!  4      V P                  P                  R7      pV P                  P                  WpP                  V34      pVP                  p^V P                  ,          RRV P                  ,          ,
          RV P                  ^,          ,          ,           ,          R,          p^V P                  ,          R,          R,          p	^V P                  ,          R	RV P                  ,          ,
          ,          R,          p
^V P                  ,          R,          pRpV P                  P                  V P                  P                  V.^,          V P                  P                  R7      V P                  P                  V	.^V P                  ,          ,          V P                  P                  R7      V P                  P                  V
.^V P                  ,          ,          V P                  P                  R7      V P                  P                  V.^V P                  ^,
          ,          V P                  ,          ,          V P                  P                  R7      V P                  P                  V.^V P                  ,          ,          V P                  P                  R7      .4      pW}3# )é	   )Úrepeat©Údtypei2  i #  i�  iãL  iÔ  i¡  i  çPuPuÀ?çÍÌÌÌÌÌì?gå5”×PÞ?©r   gûSÍgQÏ„?g�ºöbMÖ?)ÚmathÚsqrtÚ	itertoolsÚchainr   Ú_distinct_permutationsÚproductr   ÚasarrayÚlistÚzipÚfloat64ÚreshapeÚTÚconcat)r   Úl_2Úl_3Úl_4Úl_5ÚitsÚ
nodes_sizeÚnodesÚw_1Úw_2Úw_3Úw_4Úw_5Úweightss   &             r   Únodes_and_weightsÚ#GenzMalikCubature.nodes_and_weightsL   sV  € ô �iŠi˜‹oˆÜ�iŠi˜‹oˆÜ�iŠi˜‹oˆÜ�iŠi˜‹oˆä�oŠoØ�D—I‘IÕÐÜ" C 6¨D°D·I±IÀµMÕ,BÕ#BÓCÜ" S D 7¨T°T·Y±YÀµ]Õ-CÕ#CÓDÜ" C 6¨D°D·I±IÀµMÕ,BÕ#BÓCÜ" S D 7¨T°T·Y±YÀµ]Õ-CÕ#CÓDÜ" C :°¸¿	¹	ÀA½Õ0FÕ#FÓGÜ" C¨ ;°¸¿¹ÀQ½Õ1GÕ#GÓHÜ" S D¨3¨$ <°$¸$¿)¹)Àa½-Õ2HÕ#HÓIÜ×Ò˜s D˜k°$·)±)Ô<ó

ˆð ˜!˜tŸy™y¨1�}Õ-°·	±	Õ9Õ:¸QÀÇ	Á	½\ÕIˆ
à—‘—‘Ü”�c‘‹OØ—'‘'—/‘/ð  ó 
ˆð
 —‘—‘ ¯	©	°:Ð'>Ó?ˆð
 —‘ˆð �—	‘	�\˜e d¨4¯9©9¥nÕ4¸¸d¿i¹iÈ½lÕ8JÕKÕLÈuÕTð 	ð �$—)‘)�|˜sÕ" 4Õ'ˆØ�$—)‘)�|  s¨T¯Y©Y¥Õ 6Õ7¸%Õ?ˆØ�$—)‘)�| Õ,ˆØˆà—'‘'—.‘.Ø�G‰G�O‰O˜S˜E A�I¨T¯W©W¯_©_ˆOÓ=Ø�G‰G�O‰O˜S˜E Q¨¯©¥]Õ3¸4¿7¹7¿?¹?ˆOÓKØ�G‰G�O‰O˜S˜E Q¨¯©¥]Õ3¸4¿7¹7¿?¹?ˆOÓKØ�G‰G�O‰OØ�˜˜dŸi™i¨!�mÕ,¨t¯y©yÕ8Õ9Ø—g‘g—o‘oð ó ð �G‰G�O‰O˜S˜E Q¨¯	©	¥\Õ2¸$¿'¹'¿/¹/ˆOÓJð	"
ó 	ˆð ˆ~Ðr   c                ó–  € \         P                  ! R4      p\         P                  ! R4      p\         P                  ! R4      p\        P                  ! RV P                  ,          .\        V3RV P                  ^,
          ,          ,           4      \        V) 3RV P                  ^,
          ,          ,           4      \        V3RV P                  ^,
          ,          ,           4      \        V) 3RV P                  ^,
          ,          ,           4      \        W33RV P                  ^,
          ,          ,           4      \        W3) 3RV P                  ^,
          ,          ,           4      \        V) V) 3RV P                  ^,
          ,          ,           4      4      p^^V P                  ^,           ,          V P                  ,          ,           pV P                  P                  \        \        V!  4      V P                  P                  R7      pV P                  P                  W`P                  V34      pVP                  p^V P                  ,          RRV P                  ,          ,
          ^2V P                  ^,          ,          ,           ,          R,          p^V P                  ,          R	,          p^V P                  ,          R^dV P                  ,          ,
          ,          R,          p	^V P                  ,          R
,          p
V P                  P                  V P                  P                  V.^,          V P                  P                  R7      V P                  P                  V.^V P                  ,          ,          V P                  P                  R7      V P                  P                  V	.^V P                  ,          ,          V P                  P                  R7      V P                  P                  V
.^V P                  ^,
          ,          V P                  ,          ,          V P                  P                  R7      .4      pWk3# )r   r   iÙ  i¶  i	  i²  r   r   r   g�QA¶!à?gÜ>•¯ìŽ¡?)r   r    r!   r"   r   r#   r   r%   r&   r'   r(   r)   r*   r+   )r   r,   r-   r.   r0   r1   r2   r3   r4   r5   r6   r8   s   &           r   Úlower_nodes_and_weightsÚ)GenzMalikCubature.lower_nodes_and_weights„   sÜ  € ô �iŠi˜‹oˆÜ�iŠi˜‹oˆÜ�iŠi˜‹oˆä�oŠoØ�D—I‘IÕÐÜ" C 6¨D°D·I±IÀµMÕ,BÕ#BÓCÜ" S D 7¨T°T·Y±YÀµ]Õ-CÕ#CÓDÜ" C 6¨D°D·I±IÀµMÕ,BÕ#BÓCÜ" S D 7¨T°T·Y±YÀµ]Õ-CÕ#CÓDÜ" C :°¸¿	¹	ÀA½Õ0FÕ#FÓGÜ" C¨ ;°¸¿¹ÀQ½Õ1GÕ#GÓHÜ" S D¨3¨$ <°$¸$¿)¹)Àa½-Õ2HÕ#HÓIó	
ˆð ˜!˜tŸy™y¨1�}Õ-°·	±	Õ9Õ:ˆ
à—‘—‘¤¤S¨#¡Y£°t·w±w·±�ÓGˆØ—‘—‘ ¯	©	°:Ð'>Ó?ˆØ—‘ˆð �$—)‘)�|  c¨$¯)©)¥mÕ 3°b¸¿¹ÀA½µoÕ EÕFÈÕLˆØ�$—)‘)�| 	Õ*ˆØ�$—)‘)�|  c¨$¯)©)¥mÕ 3Õ4°tÕ;ˆØ�$—)‘)�| Õ)ˆà—'‘'—.‘.Ø�G‰G�O‰O˜S˜E A�I¨T¯W©W¯_©_ˆOÓ=Ø�G‰G�O‰O˜S˜E Q¨¯©¥]Õ3¸4¿7¹7¿?¹?ˆOÓKØ�G‰G�O‰O˜S˜E Q¨¯©¥]Õ3¸4¿7¹7¿?¹?ˆOÓKØ�G‰G�O‰OØ�˜˜dŸi™i¨!�mÕ,¨t¯y©yÕ8Õ9Ø—g‘g—o‘oð ó ð	"
ó ˆð ˆ~Ðr   )r   r   r   r   )é   é   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r9   r<   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s9   ø‡ € ñ-ô^/ð" ñ5ó ð5ðn ñ+ó ö+r   r   c              #  óŠ  "  € \        V 4      p\        V4      p \        V4      x € \        V^,
          RR4       F  pW,          W^,           ,          8  g   K   M	  R# \        V^,
          VR4       F  pW,          W,          8  g   K   M	  VX,          W,          uW&   W&   VRW2,
          R1,          W^,           R% Kª  5i)zE
Find the number of distinct permutations of elements of `iterable`.
Néÿÿÿÿ)ÚsortedÚlenÚtupleÚrange)ÚiterableÚitemsÚsizeÚiÚjs   &    r   r#   r#   ³   s²   é € ô �8Ó€EÜˆu‹:€Dà
ä�E‹lÒô �t˜a•x  RÖ(ˆAØ�x˜% A¥�,Ö&Ùñ )ñ ô �t˜a•x  BÖ'ˆAØ�x˜%�(Ö"Ùñ (ð # 1�X u¥xÐˆ‰�%‘(Ø˜J˜Q�V B˜JÕ'ˆ��cˆdŠùs   ‚ACÁ-CÂ7C)r   r!   Ú	functoolsr   Úscipy._lib._array_apir   r   Úscipy.integrate._rulesr   r   r#   © r   r   Ú<module>rW      s(   ðÛ Û å %ç <å 2ôe˜ô eôP(r   