// -*- C++ -*- // automatically generated by autodoc // ========== HEADER FILE src/correlation/correlation.h: ========== // Real correlation // ----- SRCFILE=src/correlation/fhtcorr.cc: ----- void fht_correlation(double * restrict f, double * restrict g, ulong ldn); // compute the (real, cyclic) correlation of f[], g[] // result is in g[] // ldn := base-2 logarithm of the array length // version for zero padded data: // f[k], g[k] == 0 for k=n/2 ... n-1 // n = 2**ldn must be >=2 void fht_auto_correlation(double *f, ulong ldn); // compute the (real, cyclic) self-correlation of f[] // ldn := base-2 logarithm of the array length // version for zero padded data: // f[k] == 0 for k=n/2 ... n-1 // n = 2**ldn must be >=2 void fht_correlation0(double * restrict f, double * restrict g, ulong ldn); // compute the (real, linear) correlation of f[], g[] // result is in g[] // ldn := base-2 logarithm of the array length // version for zero padded data: // f[k], g[k] == 0 for k=n/2 ... n-1 // n = 2**ldn must be >=2 void fht_auto_correlation0(double *f, ulong ldn); // compute the (real, linear) self-correlation of f[] // ldn := base-2 logarithm of the array length // version for zero padded data: // f[k] == 0 for k=n/2 ... n-1 // n = 2**ldn must be >=2 void fht_auto_correlation_core(double *f, ulong ldn, double v/*=0.0*/); // auxiliary routine for the computation of self-correlations // via Fast Hartley Transforms // ldn := base-2 logarithm of the array length // v!=0.0 chooses alternative normalization // ----- SRCFILE=src/correlation/fftcorr.cc: ----- void fft_correlation(double *f, double *g, ulong ldn); // Cyclic correlation of f[], g[], both real-valued sequences. // Result is written to g[]. // ldn := base-2 logarithm of the array length // n = 2**ldn must be >=2 void fft_auto_correlation(double *f, ulong ldn); // Cyclic self-correlation of f[], a real-valued sequence. // ldn := base-2 logarithm of the array length // n = 2**ldn must be >=2 void fft_correlation0(double *f, double *g, ulong ldn); // Linear correlation of f[], g[], two real-valued sequences. // Result is written to g[]. // Version for zero padded data: // f[k], g[k] == 0 for k=n/2 ... n-1 // ldn := base-2 logarithm of the array length // n = 2**ldn must be >=2 void fft_auto_correlation0(double *f, ulong ldn); // Linear self-correlation of f[], a real-valued sequence. // Version for zero padded data: // f[k] == 0 for k=n/2 ... n-1 // ldn := base-2 logarithm of the array length // n = 2**ldn must be >=2 // Complex correlation // ----- SRCFILE=src/correlation/fftcocorr.cc: ----- void fft_complex_auto_correlation(double * restrict fr, double * restrict fi, ulong ldn); // Complex (cyclic) self-correlation // (use zero padded data for linear correlation) // ldn := base-2 logarithm of the array length void fft_complex_correlation(double * restrict fr, double * restrict fi, double * restrict gr, double * restrict gi, ulong ldn); // Complex (cyclic) correlation of fr, fi with gr, gi // (use zero padded data for linear convolution) // ldn := base-2 logarithm of the array length // Result in gr, gi // ----- SRCFILE=src/correlation/slowcocorr.cc: ----- void slow_complex_correlation(const double *fr, const double *fi, const double *gr, const double *gi, double *hr, double *hi, ulong n); // (cyclic, complex) correlation: (hr, hi)[] := (fr,fi)[] (c) (gr,gi)[] // (use zero padded data for linear correlation) void slow_complex_correlation(const double *fr, const double *fi, double *gr, double *gi, ulong n); // (cyclic, complex) correlation: (gr, gi)[] := (fr,fi)[] (c) (gr,gi)[] // (use zero padded data for linear correlation) void slow_complex_auto_correlation(double *fr, double *fi, ulong n); // (cyclic, complex) self-correlation: (gr, gi)[] := (fr,fi)[] (c) (fr,fi)[] // (use zero padded data for linear correlation) // ========== HEADER FILE src/correlation/slowcorr.h: ========== void slow_correlation(const Type *f, const Type *g, Type * restrict h, ulong n); // Cyclic correlation of f[], g[], both real-valued sequences. // n := array length // slow_correlation(f, g, h, n) =^= // { reverse_0(g, n); slow_convolution(f, g, h, n); reverse_0(g, n); } void slow_correlation0(const Type *f, const Type *g, Type * restrict h, ulong n); // Linear correlation of f[], g[], both real-valued sequences. // n := array length // Version for zero padded data: // f[k],g[k] == 0 for k=n/2 ... n-1 // n must be >=2 void slow_auto_correlation(const Type *f, Type * restrict g, ulong n); // Cyclic self-correlation of f[], a real-valued sequence. // Result is written to g[]. // n := array length void slow_auto_correlation0(const Type *f, Type * restrict g, ulong n); // Linear self-correlation of f[], a real-valued sequence. // n := array length // Result is written to g[]. // Input data must be zero padded: // f[n/2] .. f[n-1] == 0 and g[n/2] .. g[n-1] == 0 // n must be >=2 void slow_correlation(const Type *f, Type * g, ulong n); // Cyclic correlation of f[], g[], two real-valued sequences. // n := array length void slow_correlation0(const Type *f, Type * g, ulong n); // Linear correlation of f[], g[], two real-valued sequences. // Result is written to g[]. // n := array length // Input data must be zero padded: // f[n/2] .. f[n-1] == 0 and g[n/2] .. g[n-1] == 0 // n must be >=2 void slow_auto_correlation(Type *f, ulong n); // Cyclic self-correlation of f[], a real-valued sequence. // n := array length void slow_auto_correlation0(Type *f, ulong n); // Linear self-correlation of f[], a real-valued sequence. // n := array length // Input data must be zero padded: // f[n/2] .. f[n-1] == 0 // n must be >=2