Contributing and Support
Community Guidelines
- Support: For usage questions or help troubleshooting, please open a GitHub issue including a minimal reproducible example and your Julia and OS versions.
- Report issues: Please open a GitHub issue and include expected vs. actual behavior, steps to reproduce, and a small input example.
- Contribute: For small changes, feel free to open a pull request directly on GitHub. For larger changes, please open an issue first to discuss the design, then submit a pull request.
Adding New Estimators
To add a new estimator:
- Create a new subtype of the
AbstractEstimatorinterface. - Register your new estimator using the
add_estimator!function. - Implement the
initialize_estimatormethod for your type, making use of any available grid, KDE, and device abstractions. This method initializes the state of your estimator. - Implement the
estimate!method for your type. This method should modify thedensityarray in the instance of theAbstractKDEthat it takes as argument, and optionally, also modify the estimator's state.
See the Estimators API for more details on the required methods and how to implement them.
Current Tools
The package already provides a number of reusable utilities for building new estimators, including:
- Framework for device and method management (CPU, CUDA)
- Grid generation and manipulation functions
- Density object construction and manipulation
- Initialization of approximated empirical distributions
- Kernel convolution routines in Fourier space