fCWT
fCWT copied to clipboard
Restructured entire code base to modern C++
I have restructured the whole library in the following aspects:
- Full use of C++ and STL; no more C-style. There were many C-style parts, like raw pointers, manual dynamic allocation, etc.
- Separate each class into a separate file
- Put everything in the fcwt namespace
- Wavelet is now a pure virtual class
- A lot of performance improvements by making the code const-correct and marking noexcept.
- Replaced the "fcwt" class with the API class; usage: fcwt::API
- And many more
We will probably need to regenerate the auto-generated Python bindings.
At the moment, I have not touched the API class much, as it is closely related to the underlying C-API. The next step will be to refactor this to modern C++, especially making use of unique_ptr, which allows us to define a deallocator for it. This will make it possible to automate the deallocation of FFT memory (and respect the RAII principle, which is the basis of modern C++).