Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[13-1, 14] Change definition of scaling factor alpha , add center and approximations for Hermite functions, add Fourier transform utility functions #15

Merged
merged 65 commits into from
Jul 30, 2024

Commits on Jul 20, 2024

  1. BLD:

    - first test of a GitHub CI for testing
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    4e8f44d View commit details
    Browse the repository at this point in the history
  2. FIX:

    - fixed wrong pip install and python versions in CI ?
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    9f84d93 View commit details
    Browse the repository at this point in the history
  3. FIX:

    - fixed loading of test files that do not contain test but dependencies that cannot be loaded ?
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    5e201f0 View commit details
    Browse the repository at this point in the history
  4. BUG:

    - escaped imports of unaccessible dependencies for test-file generation in GitHub CI tests by making the `if __name__ == "__main__"` include these imports and function definitions
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    408d818 View commit details
    Browse the repository at this point in the history
  5. TST:

    - test whether Cython build can be removed from GitHub actions for testing ?
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    d8f158d View commit details
    Browse the repository at this point in the history
  6. TST:

    - reverted removal of Cython for testing
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    2132928 View commit details
    Browse the repository at this point in the history
  7. PKG:

    - moved the full package back into an `src`-folder
    
    BLD:
    - updated `pyproject.toml` and `setup.py` to account for the movement to the `src`-folder
    - removed dedicated Cython build from CI test pipeline
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    08849e4 View commit details
    Browse the repository at this point in the history
  8. BLD:

    - changed CI pipeline target branches
    MothNik committed Jul 20, 2024
    Configuration menu
    Copy the full SHA
    ff9d285 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    3f07f43 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2024

  1. BLD:

    - augmented CI checks with format, type, and lint checks
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    4ca0611 View commit details
    Browse the repository at this point in the history
  2. BUG:

    - fixed CI pipeline wrong folder include ?
    
    BLD:
    - added isort check
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    5da4991 View commit details
    Browse the repository at this point in the history
  3. BUG:

    - fixed broken `isort` usage in CI?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    e813f7c View commit details
    Browse the repository at this point in the history
  4. FIX:

    - fixed missing `isort` dependency in CI?
    - fixed wrong import sort order in Cython Hermite functions
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    af55627 View commit details
    Browse the repository at this point in the history
  5. FIX:

    - fixed missing `colorama` dependency for `isort` in CI ?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    8cb691c View commit details
    Browse the repository at this point in the history
  6. FIX:

    - type-ignored Cython import that was not properly resolved by `pyright` ?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    c1e1737 View commit details
    Browse the repository at this point in the history
  7. FIX:

    - fixed missing import of Cython module for `pyright`  in CI ?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    54cdf10 View commit details
    Browse the repository at this point in the history
  8. FIX:

    - again trying to resolve the wrong import error of Cython module by `pyright` in CI ?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    912259d View commit details
    Browse the repository at this point in the history
  9. FIX:

    - fixed wrong `pyright` Cython import error of Cython import in CI
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    973bde4 View commit details
    Browse the repository at this point in the history
  10. BLD:

    - removed pushes to `develop` from the GitHub CI actions
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    fd4fe7f View commit details
    Browse the repository at this point in the history
  11. BLD:

    - added missing comma to the name of the GitHub CI action
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    0b49758 View commit details
    Browse the repository at this point in the history
  12. [10 develop] Add coverage to CI pipeline (#11)

    * DOC:
    - added Python versions and `black` code style to `README`
    
    * DOC:
    - added `isort` badge to `README`
    
    * TST:
    - added `--no-jit`-flag to `pytest` to enable proper coverage of Numba functions
    
    * tmp:
    - first test of CI with coverage report ?
    
    * BUG:
    - fixed failure of `pytest-xdist` and `pytest-cov` in GitHub CI (works locally) ?
    
    * BUG:
    - fixed accidentally placed `\` for `./tests` in coverage CI action ?
    
    * BUG:
    - added codecov to CI pipeline ?
    
    * TST:
    - tried to readd `pytest-xdist` for coverage reports ?
    
    * wip:
    - reset example Jupyter notebook number 3
    
    * MAINT:
    - made `_get_num_workers` a function of the `_utils`-model
    
    TST:
    - increased coverage to 100% by testing `np.float32` x-values for the Hermite functions was well as super negative numbers of requested workers
    
    * DOC:
    - added setup, installation, and development instructions to `README`
    
    * DOC:
    - switched back from `README.rst` to `README.md`
    
    BLD:
    - made CI pipeline push actions apply to the main branch only
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    9383090 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    0dc5225 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    457479d View commit details
    Browse the repository at this point in the history
  15. BLD:

    - added `mypy` to CI pipeline
    
    BUG:
    - fixed type error that `mypy` uncovered for the `filename_parameters_mapping` for the Hermite function reference generation
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    5bd6eae View commit details
    Browse the repository at this point in the history
  16. wip:

    - test if CI can still pass ?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    5b91333 View commit details
    Browse the repository at this point in the history
  17. wip:

    - CI apparently still runs; removed check
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    35dafc5 View commit details
    Browse the repository at this point in the history
  18. BLD:

    - added `pycodestyle` as a part of the CI checks
    
    BUG:
    - fixed a line too long error revealed by `pycodestyle`
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    913fb68 View commit details
    Browse the repository at this point in the history
  19. DOC:

    - added CI test status to `README` ?
    MothNik committed Jul 21, 2024
    Configuration menu
    Copy the full SHA
    43940a2 View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2024

  1. ENH:

    - added functions that help for computing discrete/continuous Fourier transforms (`fourier_transform._fft_utils`)
    
    TST:
    - implemented a test suite for `fourier_transform._fft_utils`
    MothNik committed Jul 22, 2024
    Configuration menu
    Copy the full SHA
    9573890 View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2024

  1. Issue 14 #14

    DOC:
    - updated equations with new definitions of $\alpha$
    - updated `README` with new equations and added respective reference that these definitions are based on
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    285178a View commit details
    Browse the repository at this point in the history
  2. Issue 14 #14

    MAINT:
    - removed redundant Numba version of the legacy Hermite functions and `jit`-compiled the NumPy-version instead
    - fixed minor documentation issues
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    c02276a View commit details
    Browse the repository at this point in the history
  3. Issue 14 #14

    MAINT:
    - adapted interface to Hermite functions to the new definition of $\alpha$ in terms of both implementation and docs
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    91b675d View commit details
    Browse the repository at this point in the history
  4. Issue 14 #14

    DOC:
    - updated example scripts and resulting plots with new definition of $\alpha$
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    dba7fe9 View commit details
    Browse the repository at this point in the history
  5. Issue 14 #14

    TST:
    - generated new references files for testing the new definition of $\alpha$ for the Hermite functions
    - adapted Hermite function tests to properly run for the new definition of $\alpha$
    - configured Hermite function tests via global constants and kept comments in them more vague
    - made test for Cramér's inequality of the Hermite functions ensure that the boundary value is not only an upper bound but actually reached
    - changed `requirements` for GitHub CI because with a re-arrangement of the `if __name__ == "__main__"` in the Hermite function reference generation file, `sympy` and `tqdm` became CI requirements as well
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    f6f6957 View commit details
    Browse the repository at this point in the history
  6. BUG:

    - fixed failing `ruff` for too long line in docstring of new `_fft_utils`
    
    BLD:
    - temporarily enabled CI on push to current branch to check if it still passes after an adaption in `pyright`
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    5f1f410 View commit details
    Browse the repository at this point in the history
  7. Issue 14 #14

    BLD:
    - disabled GitHub CI on push to the current branch again after verifying that it still runs
    MothNik committed Jul 23, 2024
    Configuration menu
    Copy the full SHA
    e691e44 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Issue 13 #13 (3)

    ENH:
    - added `x_center` to the Hermite function basis for shifting the Hermite functions in x-direction
    - added input validation for `x_center`
    
    MAINT:
    - renamed `hermite_functions._interface` to `hermite_functions._func_interface` to prepare for the class interface
    - made type handling of Hermite function input validation smarter and safer by first converting to the target type and then testing only for this one
    - made argument types for `x` of the Hermite functions broader by also including lists and tuples
    
    TST:
    - made input validation tests for Hermite functions be executed before the Hermite function reference tests
    - made input validation tests for Hermite functions not only check failure but also success cases
    - added tests for the new `x_center` and ensured that it does not modify the original `x`-values for the Hermite functions (after this causes some problems)
    
    DOC:
    - updated all equations and the `README` to clarify the new `x_center` for the Hermite functions
    - updated installation commands (also mentioned venv activation) and test/check commands in `README`
    MothNik committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    f68ee32 View commit details
    Browse the repository at this point in the history
  2. DOC:

    - added y-axis to Hermite-function-scale-effect-plot
    - fixed first vertical x-axis for order `n=0` not showing in the plot at all
    MothNik committed Jul 24, 2024
    Configuration menu
    Copy the full SHA
    ca34d08 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2024

  1. Issue #13 (3)

    MAINT:
    - moved Hermite function input validation to dedicated file
    
    ENH:
    - pushed forgotten files that add `x_center` to Hermite functions
    
    TST:
    - pushed forgotten files that test the new `x_center` of the Hermite functions and improved the testing of the Hermite function input validation
    MothNik committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    4aff78f View commit details
    Browse the repository at this point in the history
  2. TST:

    - split up tests for Hermite functions into dedicated test files to be more flexible
    MothNik committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    3d30cbc View commit details
    Browse the repository at this point in the history
  3. Issue #13 (3)

    DOC:
    - added common matplotlib style to unify all plots
    - updated example scripts with new matplotlib style
    - added shifted center to Hermite function example 01
    MothNik committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    8386963 View commit details
    Browse the repository at this point in the history
  4. DOC:

    - made example plots 01 and 02 for Hermite functions more visually appealing/less overwhelming
    MothNik committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    9a3ed2c View commit details
    Browse the repository at this point in the history
  5. Issue #13 (6.1)

    ENH:
    - added auxiliary script that auto-generates a Python file with spline coefficients for almost exactly evaluating the largest zero (= outermost roots) of the Hermite functions up to order ~100_000
    MothNik committed Jul 26, 2024
    Configuration menu
    Copy the full SHA
    7833b04 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2024

  1. Issue #13 (6.1)

    MAINT:
    - refactored the reference creation for the largest roots of the Hermite functions to not minimize the relative but the absolute error
    - relaxed permitted absolute error in reference creation for the largest roots of the Hermite functions because the SciPy-reference is not that accurate
    
    DOC:
    - mentioned that the SciPy-reference for the largest roots of the Hermite functions is not perfectly accurate
    MothNik committed Jul 28, 2024
    Configuration menu
    Copy the full SHA
    4508b00 View commit details
    Browse the repository at this point in the history
  2. Issue #13 (6)

    ENH:
    - added script to create reference data for the largest extrema of the Hermite functions
    - added new `_approximations`-module for Hermite functions that offers approximations for their largest roots, largest extrema, and fadeout points
    
    TST:
    - added tests for the new `_approximations`-module
    
    DOC:
    - added legend to first plot in script that creates reference data for the largest roots of the Hermite functions
    MothNik committed Jul 28, 2024
    Configuration menu
    Copy the full SHA
    8d29b2d View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2024

  1. MAINT:

    - refactored the reference data generation for the largest roots and extrema of the Hermite functions to fit the splines based on relative errors
    - updated reference data and plots created by these scripts
    - made this reference data generation a developer-only script
    
    TST:
    - made test for largest root of Hermite functions more meaningful by adapting the tolerance for checking to the actual magnitude of the root position
    - made test for largest extremum of Hermite functions more meaningful by checking the y-values (and not the x-values) of the extremum against a numerical optimisation (also with magnitude-adaptive tolerances)
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    9f73b75 View commit details
    Browse the repository at this point in the history
  2. DOC:

    - made all plot saves in examples available for developers only
    - aligned plots in terms of visuals (especially titles and sizes)
    - updated `README` with new plots and developer-only environment variable
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    73197cf View commit details
    Browse the repository at this point in the history
  3. BLD:

    - added additional scripts checks to GitHub CI
    - made all tools cause actual failures rather than just printing test output ?
    - broke CI on purpose, by badly formatting `auxiliary_scripts\02_hermite_functions_largest_extremum.py` and `src\robust_hermite_ft\hermite_functions\_c_hermite.pyx`
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    4557b06 View commit details
    Browse the repository at this point in the history
  4. BLD:

    - CI tests fixed `black` formatting after confirming that it works
    - `isort` is the next to check
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    0013c14 View commit details
    Browse the repository at this point in the history
  5. BLD:

    - fixed `isort` CI failure after confirming that it works
    - `pyright` is the next to check
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    5d06d33 View commit details
    Browse the repository at this point in the history
  6. BLD:

    - temporarily broke `isort` CI check again to check its output
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    a4f13a6 View commit details
    Browse the repository at this point in the history
  7. BLD:

    - fixed `isort` problem again
    - checking for reasons why `pyright`-check fails by running it separately without output ?
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    4a7896d View commit details
    Browse the repository at this point in the history
  8. BLD:

    - fixed `pyright` error handling in CI
    - `mypy` is the next one to check, but for now it's checked whether it just runs through even though there is an error
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    5401719 View commit details
    Browse the repository at this point in the history
  9. BLD:

    - pushing updated CI workflow file for properly testing that `mypy` just runs through
    - added `matplotlib` to CI requirements to avoid `pyright` from throwing an error ?
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    e6ae861 View commit details
    Browse the repository at this point in the history
  10. BLD:

    - going back to the start for tests after `mypy` also stopped CI correctly
    - starting with `black` test
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    7d48768 View commit details
    Browse the repository at this point in the history
  11. BLD:

    - `black` successfully stopped the CI without customised handling
    - `isort` is the next to check without customised handling
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    ffffcd1 View commit details
    Browse the repository at this point in the history
  12. BLD:

    - also `isort` stops the CI on failure
    - next to check is `pyright`
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    e60a349 View commit details
    Browse the repository at this point in the history
  13. BLD:

    - reverted GitHub CI to its original working state
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    f0ac7b5 View commit details
    Browse the repository at this point in the history
  14. DOC:

    - updated `README` with new CI commands
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    58f1f4b View commit details
    Browse the repository at this point in the history
  15. ENH:

    - Hermite functions now support all kinds of real numeric scalars/Arrays as `x`-values, integer scalars as `n`-values, and real numeric scalars for `alpha` and `x_center` after making the input validation way more relaxed and smarter
    
    TST:
    - test for Hermite function input validation now covers Python and Numpy scalars individually and on top of that also includes Pandas series and Python Arrays
    - test for data link to original `x` in Hermite functions now evaluates dynamically whether memory is shared by checking if changes in the copy/view are reflected in the original
    - added a completely new test set whether the Hermite functions yield the same results for all different kinds of `x`-values, `n`-values, `alpha`- and `x-center` values
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    5829925 View commit details
    Browse the repository at this point in the history
  16. BUG:

    - fixed missing `pandas` dependency for GitHub CI
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    0ac95fa View commit details
    Browse the repository at this point in the history
  17. BUG:

    - fixed type incompatibility that caused `mypy` to crash the GitHub CI
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    34e48ce View commit details
    Browse the repository at this point in the history
  18. TST:

    - fixed missing coverage for default and error handling of FFT utility functions
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    df6ac6b View commit details
    Browse the repository at this point in the history
  19. DOC:

    - arranged legend of plot for special points of Hermite functions in a better position
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    7c6f2b8 View commit details
    Browse the repository at this point in the history
  20. TST:

    - removed unnecessary list parametrization for orthonormality test of Hermite functions
    MothNik committed Jul 30, 2024
    Configuration menu
    Copy the full SHA
    cf318e3 View commit details
    Browse the repository at this point in the history