Loading [MathJax]/extensions/tex2jax.js
1.7.3
Geostatistics & Machine Learning toolbox | https://gstlearn.org
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
FFT.cpp File Reference
#include "Basic/VectorNumT.hpp"
#include "Basic/FFT.hpp"
#include "Arrays/Array.hpp"
#include "Core/fftn.hpp"
#include <math.h>

Functions

int FFTn (int ndim, const VectorInt &dims, VectorDouble &Re, VectorDouble &Im, int iSign, double scaling)
 
Array evalCovFFTTimeSlice (const VectorDouble &hmax, double time, int N, const std::function< std::complex< double >(VectorDouble, double)> &funcSpectrum)
 
Array evalCovFFTSpatial (const VectorDouble &hmax, int N, const std::function< double(const VectorDouble &)> &funcSpectrum)
 
static VectorInt _computeStrides (int ndim, const VectorInt &dims)
 
static VectorInt _computeHalf (int ndim, const VectorInt &dims)
 
static int _getIndex (int ndim, const VectorInt &strides, const VectorInt &indices)
 
void fftshift (const VectorInt &dims, VectorDouble &data)
 

Function Documentation

◆ _computeHalf()

static VectorInt _computeHalf ( int  ndim,
const VectorInt dims 
)
static

◆ _computeStrides()

static VectorInt _computeStrides ( int  ndim,
const VectorInt dims 
)
static

◆ _getIndex()

static int _getIndex ( int  ndim,
const VectorInt strides,
const VectorInt indices 
)
static

◆ evalCovFFTSpatial()

Array evalCovFFTSpatial ( const VectorDouble hmax,
int  N,
const std::function< double(const VectorDouble &)> &  funcSpectrum 
)

◆ evalCovFFTTimeSlice()

Array evalCovFFTTimeSlice ( const VectorDouble hmax,
double  time,
int  N,
const std::function< std::complex< double >(VectorDouble, double)> &  funcSpectrum 
)

perform the FFT transform for a First-Order Space Time evolution equation

Parameters
hmaxMaximum spatial distances (Dimension: spatial ndim)
timeTime of the covariance slice
NDiscretization number (in each spatial dimension)
funcSpectrumExternal adequate spectrum evaluation function
Returns
Array of spatio-temporal covariance

◆ FFTn()

int FFTn ( int  ndim,
const VectorInt dims,
VectorDouble Re,
VectorDouble Im,
int  iSign,
double  scaling 
)

Calculate the FFT in a space of dimension N

Returns
Error return code

◆ fftshift()

void fftshift ( const VectorInt dims,
VectorDouble data 
)