/*********************************************************************12(c) Copyright 2006-2010 Salman Baig and Chris Hall34This file is part of ELLFF56ELLFF is free software: you can redistribute it and/or modify7it under the terms of the GNU General Public License as published by8the Free Software Foundation, either version 3 of the License, or9(at your option) any later version.1011ELLFF is distributed in the hope that it will be useful,12but WITHOUT ANY WARRANTY; without even the implied warranty of13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the14GNU General Public License for more details.1516You should have received a copy of the GNU General Public License17along with this program. If not, see <http://www.gnu.org/licenses/>.1819*********************************************************************/2021#ifndef EULER_H22#define EULER_H2324#include <NTL/lzz_p.h>25#include <NTL/lzz_pE.h>26#include <NTL/lzz_pX.h>27#include <NTL/lzz_pEX.h>28#include <NTL/ZZX.h>2930#include "ell_surface.h"31#include "lzz_pEratX.h"3233NTL_CLIENT3435long trace_tau(zz_pE& tau, ell_surfaceInfoT::affine_model& model);3637void euler_table(long *table, long min_tau, long max_tau, int euler_deg=-1);38void euler_table(long *table, long min_tau, long max_tau, int euler_deg);3940void twist_table(const zz_pEX& f, long *untwisted_table, long *twisted_table,41long min_tau, long max_tau);4243void pullback_table(const zz_pEX& finite_disc, const zz_pEX& infinite_disc,44const zz_pEratX& f, long *base_table, long *pullback_table,45long min_tau, long max_tau);4647void sum_table(ZZ& sum, long *table, long min, long max);4849void compute_c_n(ZZ **b, ZZ **c, int n);50void compute_b_n(ZZ& b_n);5152#endif // EULER_H535455