|
1 | | -# otfft |
| 1 | +# OTFFT |
2 | 2 | []() |
3 | 3 |
|
4 | 4 | OTFFT is a high-speed FFT library using the Stockham's algorithm and AVX. |
5 | | -In addition, C++ template metaprogramming technique is used in OTFFT. And OTFFT is a mixed-radix FFT. |
| 5 | +In addition, C++ template metaprogramming technique is used in OTFFT. |
| 6 | +And OTFFT is a mixed-radix FFT. |
6 | 7 |
|
7 | 8 | # Build Status |
| 9 | +It should be able to compile/use the sources using Visual Studio on Windows and GCC on Linux. |
8 | 10 | | CI Server | Status | |
9 | 11 | | ---------:| ------ | |
10 | 12 | | Travis CI Ubuntu 14.04 | [](https://travis-ci.org/DEWETRON/otfft) | |
11 | | -| Shippable Ubuntu 16.04 | [](https://app.shippable.com/github/DEWETRON/otfft) | |
12 | 13 | | GitHub Ubuntu 20.04 | [](https://github.com/DEWETRON/otfft/actions/workflows/cmake.yml) | |
13 | 14 | | Appveyor VS2013 | [](https://ci.appveyor.com/project/DEWETRON/otfft) | |
14 | 15 |
|
15 | 16 | # Reasons for the fork |
16 | | -OTFFT is developed by OK Ojisan (Takuya OKAHISA). It's original |
17 | | -homepage is http://wwwa.pikara.ne.jp/okojisan/otfft-en/. |
| 17 | +OTFFT is developed by OK Ojisan (Takuya OKAHISA). |
| 18 | +It's original homepage is http://wwwa.pikara.ne.jp/okojisan/otfft-en/. |
18 | 19 |
|
19 | 20 | The DEWETRON fork uses the original source code with improvements: |
20 | | -* multi cpu ISS builds (AVX, SSE2,...) |
| 21 | +* multi CPU ISS builds (AVX2, AVX, SSE2,...) |
21 | 22 | * unit test coverage |
| 23 | +* Use of standard OpenMP |
| 24 | + |
| 25 | +## Status |
| 26 | +There is a continuous effort to keep the FFT computations in sync with the upstream OTFFT version. |
| 27 | +Relevant changed from version 11.5 have been merged into this repository. |
22 | 28 |
|
23 | | -At the time of this writing, there is no existing up-to-date fork. |
24 | 29 |
|
25 | 30 | # How to use |
26 | | -Just run cmake to get an appropriate build environment |
27 | | -depending on your used build system and operating system. |
| 31 | +Just run cmake to get an appropriate build environment depending on your used build system and operating system. |
28 | 32 |
|
29 | 33 |
|
30 | 34 | # Complex-to-Complex FFT |
@@ -53,8 +57,8 @@ complex_t is defined as follows. |
53 | 57 | double Re, Im; |
54 | 58 |
|
55 | 59 | complex_t() : Re(0), Im(0) {} |
56 | | - complex_t(const double& x) : Re(x), Im(0) {} |
57 | | - complex_t(const double& x, const double& y) : Re(x), Im(y) {} |
| 60 | + complex_t(double x) : Re(x), Im(0) {} |
| 61 | + complex_t(double x, double y) : Re(x), Im(y) {} |
58 | 62 | complex_t(const std::complex<double>& z) : Re(z.real()), Im(z.imag()) {} |
59 | 63 | operator std::complex<double>(){ return std::complex(Re, Im); } |
60 | 64 |
|
|
0 commit comments