[BACK]Return to dft.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / fft

Annotation of OpenXM_contrib2/asir2000/fft/dft.h, Revision 1.1

1.1     ! noro        1: /* $OpenXM: OpenXM/src/asir99/fft/dft.h,v 1.1.1.1 1999/11/10 08:12:27 noro Exp $ */
        !             2: #if LONG_IS_32BIT
        !             3: #if defined(VISUAL)
        !             4: typedef unsigned _int64 UL;
        !             5: #else
        !             6: typedef unsigned long long UL;
        !             7: #endif
        !             8: #else
        !             9: typedef unsigned long UL;
        !            10: #endif
        !            11:
        !            12: struct PrimesS {
        !            13:        int     prime, primroot;
        !            14:        int  bitwid, d;
        !            15: };
        !            16:
        !            17: #if USE_FLOAT
        !            18: #define NPrimes 536
        !            19: #else
        !            20: #define NPrimes 13681
        !            21: #endif
        !            22:
        !            23: #if USE_FLOAT
        !            24: typedef float ModNum;
        !            25:
        !            26: #define AxBplusCmodP(ans,anstype,a,b,c,p,pinv) \
        !            27:   { double _w_ = ((double)(a))*((double)(b))+((double)(c)), \
        !            28:       _dp_ = (double)(p); \
        !            29:       if ( _w_ >= _dp_ ) _w_ -= (_dp_*(double)((int)(_w_*(pinv)))); \
        !            30:       ans = (anstype) (_w_>=_dp_?_w_-_dp_: _w_); }
        !            31:
        !            32: #define AxBmodP(ans,anstype,a,b,p,pinv) \
        !            33:   { double _w_ = ((double)(a))*((double)(b)), _dp_ = (double)(p); \
        !            34:       _dp_ = (double)(p); \
        !            35:       if ( _w_ >= _dp_ ) _w_ -= (_dp_*(double)((int)(_w_*(pinv)))); \
        !            36:       ans = (anstype) (_w_>=_dp_?_w_-_dp_: _w_); }
        !            37:
        !            38: #define AxBmodPnostrchk(ans,anstype,a,b,p,pinv) \
        !            39:   { double _w_ = ((double)(a))*((double)(b)), _dp_ = (double)(p); \
        !            40:       if ( _w_ >= _dp_ ) _w_ -= (_dp_*(double)((int)(_w_*(pinv)))); \
        !            41:       ans = (anstype) _w_; }
        !            42:
        !            43: #define AxBplusCmodPnostrchk(ans,anstype,a,b,c,p,pinv) \
        !            44:   { double _w_ = ((double)(a))*((double)(b))+((double)(c)), \
        !            45:       _dp_ = (double)(p); \
        !            46:       if ( _w_ >= _dp_ ) _w_ -= (_dp_*(double)((int)(_w_*(pinv)))); \
        !            47:       ans = (anstype) _w_; }
        !            48: #else
        !            49:
        !            50: #include "inline.h"
        !            51:
        !            52: typedef unsigned int ModNum;
        !            53:
        !            54: #define AxBplusCmodP(ans,anstype,a,b,c,p,pinv) \
        !            55:   { DMAR(a,b,c,p,ans) }
        !            56:
        !            57: #define AxBmodP(ans,anstype,a,b,p,pinv) \
        !            58:   { DMAR(a,b,0,p,ans) }
        !            59:
        !            60: #define AxBmodPnostrchk(ans,anstype,a,b,p,pinv) \
        !            61:   { DMAR(a,b,0,p,ans) }
        !            62:
        !            63: #define AxBplusCmodPnostrchk(ans,anstype,a,b,c,p,pinv) \
        !            64:   { DMAR(a,b,c,p,ans) }
        !            65: #endif
        !            66:
        !            67: #define AstrictmodP(a,p) ((a)>=(p)?((a)-(p)):(a))
        !            68:
        !            69: #define AplusBmodP(a,b,p) (((p)-(b))>(a)?((a)+(b)): ((a)-((p)-(b))))
        !            70: #define A_BmodP(a,b,p) ((a)>=(b)?((a)-(b)): (((p)-(b))+(a)))
        !            71:
        !            72: void C_DFT_FORE(ModNum *,int,int,int,ModNum *,
        !            73: #ifdef POWA_STRIDE
        !            74:        int
        !            75: #else
        !            76:        ModNum *,int,ModNum,double,ModNum *
        !            77: #endif
        !            78: );
        !            79:
        !            80: void C_DFT_BACK(ModNum *,int,int,int,ModNum *,
        !            81: #ifdef POWA_STRIDE
        !            82:                 int
        !            83: #else
        !            84:                 ModNum *,int,int,int,ModNum,ModNum,double,ModNum *
        !            85: #endif
        !            86: );
        !            87:
        !            88: void C_PREP_ALPHA(ModNum,int,int,int,ModNum *,ModNum,double);

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>