1#ifndef CONVOLVEWITHCONST_H_
2#define CONVOLVEWITHCONST_H_
6#include "TVirtualFFT.h"
27 TVirtualFFT * m_fft, * m_ifft;
32 mutable std::vector<double> A_fft, B_fft, AB_fft,B_tmp;
33 std::vector<double> zeros;
41 static std::map<convParams,fft2> m_map;
42 std::map<convParams,fft2>::iterator m_ref;
52 void convolve(
double *
output ,
const double * B,
const int leftIndex,
const int sizeofOut,
double factor=1)
const;
60 void FFT(
Complex* outHalfPlus1,
const double * inNormalLength,
int LengthOutAsDouble,
int LengthIn)
const;
61 void IFFT(
double* outNormalLength,
const Complex * inHalfPlus1,
int lengthOut,
int lengthInAsDouble)
const;
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per saves r n generator level $ !Flag for chat level in output
basically, convolve with fft. convolves 1-d. if size of 2 inputs are fixed, it may yield optimal spee...
void MultiplyAndAdd(Complex *outHalfPlus1, const Complex *inHalfPlus1, double factor=1) const
multiply with ffted saved results and add them to output with factor; out += in* SavedConst*factor/L
std::complex< double > Complex
void FFT(Complex *outHalfPlus1, const double *inNormalLength, int LengthOutAsDouble, int LengthIn) const
Do fft with respect of getLength();.
void init(const double *ConstArray, const int ConstArrayLength, const int Blength, TransformOptimOpt opt=opt_EX, TransformLengthOpt optL=opt_AsShortAsPsb)
void convolve(double *output, const double *B, const int leftIndex, const int sizeofOut, double factor=1) const
do a convolve of stored const A and B, and put results to output.
void IFFT(double *outNormalLength, const Complex *inHalfPlus1, int lengthOut, int lengthInAsDouble) const
Do ifft with respect of getLength();.