1.5.0
CCC
 
fft.cpp File Reference
#include "Core/fftn.hpp"
#include "Basic/AStringable.hpp"
#include <string.h>
#include <stdlib.h>
#include <math.h>

Functions

static void fft_free (void)
 
static int factorize (int nPass, int *kt)
 
static int fftradix (double Re[], double Im[], size_t nTotal, size_t nPass, size_t nSpan, int iSign, int maxFactors, int maxPerm)
 
int fftn (int ndim, const int dims[], double Re[], double Im[], int iSign, double scaling)
 

Variables

static size_t SpaceAlloced = 0
 
static size_t MaxPermAlloced = 0
 
static void * Tmp0 = NULL
 
static void * Tmp1 = NULL
 
static void * Tmp2 = NULL
 
static void * Tmp3 = NULL
 
static int * Perm = NULL
 
static int factor [NFACTOR]
 

Function Documentation

◆ factorize()

static int factorize ( int  nPass,
int *  kt 
)
static

◆ fft_free()

static void fft_free ( void  )
static

Free the arrays allocated for FFT

◆ fftn()

int fftn ( int  ndim,
const int  dims[],
double  Re[],
double  Im[],
int  iSign,
double  scaling 
)

Calculate the FFT in a space of dimension N

Returns
Error return code

◆ fftradix()

static int fftradix ( double  Re[],
double  Im[],
size_t  nTotal,
size_t  nPass,
size_t  nSpan,
int  iSign,
int  maxFactors,
int  maxPerm 
)
static

Variable Documentation

◆ factor

int factor[NFACTOR]
static

◆ MaxPermAlloced

size_t MaxPermAlloced = 0
static

◆ Perm

int* Perm = NULL
static

◆ SpaceAlloced

size_t SpaceAlloced = 0
static

Multivariate complex Fourier transform, computed in place using mixed-radix Fast Fourier Transform algorithm.

Fortran code by: RC Singleton, Stanford Research Institute, Sept. 1968 NIST Guide to Available Math Software. Source for module FFT from package GO. Retrieved from NETLIB on Wed Jul 5 11:50:07 1995. translated by f2c (version 19950721) and with lots of cleanup to make it resemble C by: MJ Olesen, Queen's University at Kingston, 1995-97

Copyright(c)1995,97 Mark Olesen olese.nosp@m.n@me.nosp@m..Quee.nosp@m.nsU..nosp@m.CA Queen's Univ at Kingston (Canada)

Permission to use, copy, modify, and distribute this software for any purpose without fee is hereby granted, provided that this entire notice is included in all copies of any software which is or includes a copy or modification of this software and in all copies of the supporting documentation for such software.

THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR QUEEN'S UNIVERSITY AT KINGSTON MAKES ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.

All of which is to say that you can do what you like with this source code provided you don't try to sell it as your own and you include an unaltered copy of this message (including the copyright).

It is also implicitly understood that bug fixes and improvements should make their way back to the general Internet community so that everyone benefits.

◆ Tmp0

void* Tmp0 = NULL
static

◆ Tmp1

void* Tmp1 = NULL
static

◆ Tmp2

void* Tmp2 = NULL
static

◆ Tmp3

void* Tmp3 = NULL
static