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

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

  The Laplace probability distribution function is given by

  .. math::

     f(x) = \frac{1}{2} e^{-|x|}

  Args:
    x: arraylike, value at which to evaluate the PDF
    loc: arraylike, distribution offset parameter
    scale: arraylike, distribution scale parameter

  Returns:
    array of logpdf values.

  See Also:
    - :func:`jax.scipy.stats.laplace.cdf`
    - :func:`jax.scipy.stats.laplace.pdf`
  zlaplace.logpdf   )
r   
_lax_constr   divabssubnegaddlogmul)r   r	   r
   twolinear_terms        W/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/_src/scipy/stats/laplace.pylogpdfr      sx    . ''7CG-!S%1a#30%8+	cggcggc5.A&BC	DD    c                 B    t        j                  t        | ||            S )a  Laplace probability distribution function.

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

  The Laplace probability distribution function is given by

  .. math::

     f(x) = \frac{1}{2} e^{-|x|}

  Args:
    x: arraylike, value at which to evaluate the PDF
    loc: arraylike, distribution offset parameter
    scale: arraylike, distribution scale parameter

  Returns:
    array of pdf values.

  See Also:
    - :func:`jax.scipy.stats.laplace.cdf`
    - :func:`jax.scipy.stats.laplace.logpdf`
  )r   expr   )r   r	   r
   s      r   pdfr   2   s    . 
3&	''r   c                    t        d| ||      \  } }}t        | d      }t        | d      }t        | d      }t        j                  t        j                  | |      |      }t        j
                  t        j                  ||      t        j                  |t        j                  |            t        j                  |t        j                  |t        j                  t        j                  |                              S )a`  Laplace cumulative distribution function.

  JAX implementation of :obj:`scipy.stats.laplace` ``cdf``.

  The cdf is defined as

  .. math::

     f_{cdf}(x, k) = \int_{-\infty}^x f_{pdf}(y, k)\mathrm{d}y

  where :math:`f_{pdf}` is the probability density function,
  :func:`jax.scipy.stats.laplace.pdf`.

  Args:
    x: arraylike, value at which to evaluate the CDF
    loc: arraylike, distribution offset parameter
    scale: arraylike, distribution scale parameter

  Returns:
    array of cdf values.

  See Also:
    - :func:`jax.scipy.stats.laplace.pdf`
    - :func:`jax.scipy.stats.laplace.logpdf`
  zlaplace.cdfg      ?   r   )
r   r   r   r   r   selectler   r   r   )r   r	   r
   halfonezerodiffs          r   cdfr&   L   s    4 '}aeD-!S%	As	$1a#	Aq	$	C%	($	CFF4&GGD#''$-0GGCswwswwt}/E!FG
I Ir   N)r   r   )jax._srcr   jax._src.lax.laxr   r   jax._src.numpy.utilr   jax._src.typingr   r   r   r   r&    r   r   <module>r,      s     1 4 ,Ei Ei EI Ee E:(9 (9 ( (5 (4!I9 !I9 !I !I5 !Ir   