source: git/factory/gmpext.h @ 6c5d86

spielwiese
Last change on this file since 6c5d86 was 493c477, checked in by Jens Schmidt <schmidt@…>, 27 years ago
o header fixed git-svn-id: file:///usr/local/Singular/svn/trunk@404 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 968 bytes
Line 
1/* emacs edit mode for this file is -*- C++ -*- */
2/* $Id: gmpext.h,v 1.2 1997-06-19 12:22:56 schmidt Exp $ */
3
4#ifndef INCL_GMPEXT_H
5#define INCL_GMPEXT_H
6
7#include <config.h>
8
9#include "cf_gmp.h"
10
11#include "cf_defs.h"
12#include "imm.h"
13
14
15inline bool
16mpz_is_imm( const MP_INT * mpi )
17{
18    return ( mpz_cmp_si( mpi, MINIMMEDIATE ) >= 0 ) &&
19        ( mpz_cmp_si( mpi, MAXIMMEDIATE ) <= 0 );
20}
21
22inline void
23mpz_mypow_ui( MP_INT * result, int p, int n )
24{
25    if ( p == 0 )
26        mpz_set_ui( result, 0 );
27    else  if ( n == 0 )
28        mpz_set_ui( result, 1 );
29    else {
30        mpz_set_ui( result, p );
31        n--;
32        while ( n > 0 ) {
33            mpz_mul_ui( result, result, p );
34            n--;
35        }
36    }
37}
38
39inline void
40mpz_mypow( MP_INT * result, MP_INT * p, int n )
41{
42    // p == 0 && n == 0 should not happen since this function is only used
43    // in the factorizing algorithm
44    mpz_set( result, p );
45    n--;
46    while ( n > 0 ) {
47        mpz_mul( result, result, p );
48        n--;
49    }
50}
51
52#endif /* ! INCL_GMPEXT_H */
Note: See TracBrowser for help on using the repository browser.