1 /* gmpstat.h */
2 
3 /*
4 Copyright 1999 Free Software Foundation, Inc.
5 
6 This file is part of the GNU MP Library.
7 
8 The GNU MP Library is free software; you can redistribute it and/or modify
9 it under the terms of the GNU Lesser General Public License as published by
10 the Free Software Foundation; either version 2.1 of the License, or (at your
11 option) any later version.
12 
13 The GNU MP Library is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
16 License for more details.
17 
18 You should have received a copy of the GNU Lesser General Public License
19 along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21 MA 02110-1301, USA.
22 */
23 
24 /* This file requires the following header files: mpir.h */
25 
26 #ifndef	__GMPSTAT_H__
27 #define	__GMPSTAT_H__
28 
29 /* Global debug flag.  FIXME: Remove. */
30 extern int g_debug;
31 #define DEBUG_1 0
32 #define DEBUG_2 1
33 
34 /* Max number of dimensions in spectral test.  FIXME: Makw dynamic. */
35 #define GMP_SPECT_MAXT 10
36 
37 void
38 mpf_freqt (mpf_t Kp,
39 	   mpf_t Km,
40 	   mpf_t X[],
41 	   const unsigned long int n);
42 unsigned long int
43 mpz_freqt (mpf_t V,
44 	   mpz_t X[],
45 	   unsigned int imax,
46 	   const unsigned long int n);
47 
48 /* Low level functions. */
49 void
50 ks (mpf_t Kp,
51     mpf_t Km,
52     mpf_t X[],
53     void (P) (mpf_t, mpf_t),
54     const unsigned long int n);
55 
56 void
57 ks_table (mpf_t p, mpf_t val, const unsigned int n);
58 
59 void
60 x2_table (double t[],
61 	  unsigned int v);
62 
63 void
64 spectral_test (mpf_t rop[], unsigned int T, mpz_t a, mpz_t m);
65 void
66 vz_dot (mpz_t rop, mpz_t V1[], mpz_t V2[], unsigned int n);
67 void
68 f_floor (mpf_t rop, mpf_t op);
69 
70 void
71 merit (mpf_t rop, unsigned int t, mpf_t v, mpz_t m);
72 double
73 merit_u (unsigned int t, mpf_t v, mpz_t m);
74 
75 /* From separate source files: */
76 void zdiv_round (mpz_t rop, mpz_t n, mpz_t d);
77 
78 #endif /* !__GMPSTAT_H__ */
79