
    uki	                     t    d dl Zd dlmZ d dlm Z d dlmZ d dlm	Z	 d dl
mZmZ deded	efd
Zdeded	efdZy)    N)lax)numpy)_const)promote_args_inexact)Array	ArrayLikexkappareturnc           
      X   t        d| |      \  } }t        |d      }t        j                  t	        j
                  ||      |t        j                  |       dz
  z  t        j                  dt        j                  z  t	        j                  |      z        z
  t        j                        S )a  von Mises log probability distribution function.

  JAX implementation of :obj:`scipy.stats.vonmises` ``logpdf``.

  The von Mises probability distribution function is given by

  .. math::

     f(x, \kappa) = \frac{1}{2\pi I_0(\kappa)}e^{\kappa\cos x}

  Where :math:`I_0` is the modified Bessel function :func:`~jax.scipy.special.i0`
  and :math:`\kappa\ge 0`, and the distribution is normalized in the interval
  :math:`-\pi \le x \le \pi`.

  Args:
    x: arraylike, value at which to evaluate the PDF
    kappa: arraylike, distribution shape parameter

  Returns:
    array of logpdf values.

  See Also:
    :func:`jax.scipy.stats.vonmises.pdf`
  zvonmises.logpdfr         )r   
_lax_constjnpwherer   gtcoslognppi
bessel_i0enan)r	   r
   zeros      X/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/_src/scipy/stats/vonmises.pylogpdfr      s    2 ""3Q>(!U	E1	$	366%&a(@3771ruu9WZWeWefkWlKlCm(moqouou	vv    c                 @    t        j                  t        | |            S )a  von Mises probability distribution function.

  JAX implementation of :obj:`scipy.stats.vonmises` ``pdf``.

  The von Mises probability distribution function is given by

  .. math::

     f(x, \kappa) = \frac{1}{2\pi I_0(\kappa)}e^{\kappa\cos x}

  Where :math:`I_0` is the modified Bessel function :func:`~jax.scipy.special.i0`
  and :math:`\kappa\ge 0`, and the distribution is normalized in the interval
  :math:`-\pi \le x \le \pi`.

  Args:
    x: arraylike, value at which to evaluate the PDF
    kappa: arraylike, distribution shape parameter

  Returns:
    array of pdf values.

  See Also:
    :func:`jax.scipy.stats.vonmises.logpdf`
  )r   expr   )r	   r
   s     r   pdfr   6   s    2 
5!	""r   )r   r   jax._srcr   r   jax._src.lax.laxr   r   jax._src.numpy.utilr   jax._src.typingr   r   r   r    r   r   <module>r%      sQ      ! 1 4 ,wi w	 we w<#9 #Y #5 #r   