#ifndef SYN2FAST_H_SEEN
#define SYN2FAST_H_SEEN

#include <complex>
#include <vector>

void a2lm2map(const int nsmax,const int nlmax,const int nmmax,
	     const vector< vector< complex<double> > >&alme,
	     const vector< vector< complex<double> > >&almb,
	     vector<float>& mapq,
	     vector<float>& mapu,
	     vector< complex<long double> > b_northp,
	     vector< complex<long double> > b_southp,
	     vector< complex<long double> > bwp,
	     vector< complex<long double> > b_northm,
	     vector< complex<long double> > b_southm,
	     vector< complex<long double> > bwm);

void syn2_phas(const int nsmax,const int nlmax,const int nmmax,
	      const vector< complex<long double> >& datain,
	      int nph,vector< complex<float> >& dataout, const int start,
	      int kphi0,
	      vector< complex<long double> >& bw);

void create_a2lm(const int nsmax,const int nlmax,const int nmmax,
		 vector< vector< complex<double> > >& a2lme,
		 vector< vector< complex<double> > >& a2lmb,
		 vector<float>& cls_e,
		 vector<float>& cls_b,
		 int& iseed,const float fwhm,
		 vector<float> lread);
#endif
