bridge/class-master/depend/pari/src/basemath/trans2.c
/* Compute Qp_gamma using the definition. This is a O(x*M(log(pe))) algorithm.
 * This should be used if x is very small. */
Compute Qp_gamma using the definition.
Compute Qp_gamma using the definition .
static GEN
Qp_gamma_Morita(long n, GEN p, long e)
{
  pari_sp ltop=avma;
  GEN p2 = gaddsg((n&1)?-1:1, zeropadic(p, e));
  long i;
  long pp=is_bigint(p)? 0: itos(p);
  for (i = 2; i < n; i++)
    if (!pp || i%pp)
    {
      p2 = gmulgs(p2, i);
      if ((i&0xFL) == 0xFL)
        p2 = gerepileupto(ltop, p2);
    }
  return gerepileupto(ltop, p2);
}
static GEN Qp_gamma_Morita ( long n , GEN p , long e ) { pari_sp ltop = avma ; GEN p2 = gaddsg ( ( n & 1 ) ? -1 : 1 , zeropadic ( p , e ) ) ; long i ; long pp = is_bigint ( p ) ? 0 : itos ( p ) ; for ( i = 2 ; i < n ; i ++ ) if ( ! pp || i % pp ) { p2 = gmulgs ( p2 , i ) ; if ( ( i & 0xFL ) == 0xFL ) p2 = gerepileupto ( ltop , p2 ) ; } return gerepileupto ( ltop , p2 ) ; }
Compute Qp_gamma using the definition.
Compute Qp_gamma using the definition .