blitzpp / blitz

Blitz++ Multi-Dimensional Array Library for C++
https://github.com/blitzpp/blitz/wiki
Other
405 stars 84 forks source link

patch: Functions: FFT, IFFT, IWT, IWT2 #87

Closed slayoo closed 5 years ago

slayoo commented 6 years ago

Migrated from SF: https://sourceforge.net/p/blitz/patches/2/ Reported back in 2002 by Suresh kumar (@mdsuresh here?):

functions.zip

Original comment:

1-d vectorized FFT/IFFT (tested) Shuffle, BitReverse, FFT, IFFT

1-d vectorized FWT/IFWT (wavelet) (tested) Uphi, DownHi, UpLo, DownLo, FWT_PO, IWT_PO

2-d FWT/IFWT (wavelet) (tested, but not completely) FWT2_PO, IWT2_PO

1-d vectorized FWT( walsh transform) (tested) FWT, IFWT

vectorized matrix inverse (tested) Inv matrix svd (tested) SVD , conditional SVD matrix pesudo inverse (tested) PInv

matrix LU decomposition (tested) LU, LUBSB, LUInverse

matrix Cholesky decompostion (untested) LL, LLBSB

HighPrecision Arthimetic( uncompiled)

and have applied a TEMPORARY patch to Range just to get the range to be divisible by the stride. [Not Included]

And added a dummy Array::ascending(int) const to get tensor multiplication to compile for version 0.6. [Not Included]

thanks, hopefully u will like it. -suresh

citibeth commented 5 years ago

How does this compare to FFTW? I'd rather not maintain FFTs that, ultimately, are inferior to something else already out there.