source:
git/factory/gmpext.h
@
6c5d86
Last change on this file since 6c5d86 was 493c477, checked in by , 27 years ago | |
---|---|
|
|
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 | |
15 | inline bool |
16 | mpz_is_imm( const MP_INT * mpi ) |
17 | { |
18 | return ( mpz_cmp_si( mpi, MINIMMEDIATE ) >= 0 ) && |
19 | ( mpz_cmp_si( mpi, MAXIMMEDIATE ) <= 0 ); |
20 | } |
21 | |
22 | inline void |
23 | mpz_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 | |
39 | inline void |
40 | mpz_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.