// file: $PDSP/class/fourier_transform/v3.0/fourier_transform_constants.h
//

// make sure definitions are only made once
//
#ifndef __FOURIER_TRANSFORM_CONSTANTS
#define __FOURIER_TRANSFORM_CONSTANTS

// isip include files
//
#ifndef __INTEGRAL_CONSTANTS
#include <integral_constants.h>
#endif

// define the class name
//
#define FT_CLASS_NAME (char_1*)"Fourier_transform"

// direction flags
//
#define FT_FORWARD (int_4)0
#define FT_REVERSE (int_4)1
 
// type of data flags
//
#define FT_REAL (int_4)0
#define FT_COMPLEX (int_4)1
 
// define the values corresponding to each algorithm
//
#define FT_DF (int_4)0
#define FT_RAD2 (int_4)1
#define FT_RAD4 (int_4)2
#define FT_SR (int_4)3
#define FT_FH (int_4)4
#define FT_QF (int_4)5
#define FT_DITF (int_4)6
#define FT_PFA (int_4)7
 
// define the strings corresponding to each algorithm
//
#define FT_DF_NAME (char_1*)"df"
#define FT_RAD2_NAME (char_1*)"radix_2"
#define FT_RAD4_NAME (char_1*)"radix_4"
#define FT_SR_NAME (char_1*)"split_radix"
#define FT_FH_NAME (char_1*)"fh"
#define FT_QF_NAME (char_1*)"qf"
#define FT_DITF_NAME (char_1*)"ditf"
#define FT_PFA_NAME (char_1*)"pfa"
 
// define default algorithm names for real and complex input
//
#define FT_DEFAULT_ALGO FT_RAD2
 
// define default values for the parameters
//
#define FT_DEFAULT_ORDER (int_4)1024
#define FT_DEFAULT_DATA_TYPE (int_4)FT_COMPLEX
#define FT_DEFAULT_DBG_LEVEL (int_4)0
#define FT_DEFAULT_ALGO_NAME (int_4)FT_SR
#define FT_DEFAULT_INPUT_SIZE (int_4)8192
 
// define some parameters related to choosing an algorithm automatically
//
#define FT_THRESH_SIZE (int_4)16

// define format string constants
//
#define FT_OPER_FORMAT (char_1*)"the number of %s:\t%ld\n"
#define FT_MEM_FORMAT (char_1*)"the amount of memory (bytes):\t%ld\n"

// this should be in integral_constants.h
//
#define ISIP_INV_SQRT2 (float_8)0.707106781188

// end of file
// 
#endif

