Skip to content

Conversation

@bilaljo
Copy link

@bilaljo bilaljo commented Mar 3, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant