fCWT icon indicating copy to clipboard operation
fCWT copied to clipboard

Restructured entire code base to modern C++

Open bilaljo opened this issue 1 year ago • 0 comments

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++).

bilaljo avatar Mar 03 '24 19:03 bilaljo