source: git/factory/gmpext.h @ 160f8f7

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