HElib  1.0
Implementing Homomorphic Encryption
 All Classes Files Functions Variables Friends Pages
bluestein.h
Go to the documentation of this file.
1 /* Copyright (C) 2012,2013 IBM Corp.
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 2 of the License, or
5  * (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License along
13  * with this program; if not, write to the Free Software Foundation, Inc.,
14  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15  */
16 #ifndef _Bluestein
17 #define _Bluestein
18 
57 #include <NTL/ZZX.h>
58 #include <NTL/ZZ_pX.h>
59 #include <NTL/lzz_pX.h>
60 
61 NTL_CLIENT
62 
63 
64 typedef Vec< Vec<mulmod_precon_t> > fftrep_aux;
65 
67 void BluesteinFFT(ZZ_pX& x, long n,
68  const ZZ_p& root, ZZ_pX& powers, Vec<mulmod_precon_t>& powers_aux,
69  FFTRep& Rb, fftrep_aux& Rb_aux, FFTRep& Ra);
70 
72 void BluesteinFFT(zz_pX& x, long n,
73  const zz_p& root, zz_pX& powers, Vec<mulmod_precon_t>& powers_aux,
74  fftRep& Rb, fftrep_aux& Rb_aux, fftRep& Ra);
75 
76 #endif