
    `i/                         d dl mZ d Zd ZdZ ej        ddefddd	d
ddddddfded          Zedz   Z ej        ddefddd	d
ddddddfded          ZdS )    )_corec                       t          d          )Nz*gcd cannot be computed with boolean arrays	TypeError     g/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cupy/_math/rational.py_negative_gcd_errorr
          
@
A
AAr   c                       t          d          )Nz*lcm cannot be computed with boolean arraysr   r   r   r	   _negative_lcm_errorr      r   r   z
template <typename T> inline __device__ T gcd(T in0, T in1) {
  T r;
  while (in1 != 0) {
    r = in0 % in1;
    in0 = in1;
    in1 = r;
  }
  if (in0 < 0)
    return -in0;
  return in0;
}
cupy_gcdz??->?zbb->bzBB->Bzhh->hzHH->Hzii->izII->Izll->lzLL->Lzqq->qzQQ->Qzout0 = gcd(in0, in1)zXComputes gcd of ``x1`` and ``x2`` elementwise.

    .. seealso:: :data:`numpy.gcd`

    )preambledocz
template <typename T> inline __device__ T lcm(T in0, T in1) {
  T r = gcd(in0, in1);
  if (r == 0)
    return 0;
  r = in0 / r * in1;
  if (r < 0)
    return -r;
  return r;
}
cupy_lcmzout0 = lcm(in0, in1)zXComputes lcm of ``x1`` and ``x2`` elementwise.

    .. seealso:: :data:`numpy.lcm`

    N)	cupyr   r
   r   _gcd_preamblecreate_ufuncgcd_lcm_preamblelcmr   r   r	   <module>r      s         B B BB B B e"#gw'7gw  		 	 	  
! 
 e"#gw'7gw  		 	 	r   