Releases: cako/curvelets
Releases · cako/curvelets
v1.1
What's Changed
🎉 New Features
PyTorch UDCT API Refactor & MNIST Example
- Simplified UDCT Construction - The PyTorch
UDCTclass now uses simplified construction vianum_scalesandwedges_per_directionparameters, with optionalangular_wedges_config. Window overlap is now auto-computed, and parameter/window initialization has been refactored for better usability. - Tensor Migration Support - Added
UDCT.apply_to_tensorsandUDCTModule._applymethods, enabling proper tensor migration so.to(),.half(),.float(), and.double()methods now correctly propagate to internal windows and ratios. - New MNIST Classification Example - Added
examples/plot_10_udct_mnist.py, a complete MNIST classifier usingUDCTModuleas a feature extractor. The example includes:- Training and test loss/accuracy curves
- t-SNE visualization of curvelet features
- Misclassification analysis with worst-case examples
- Demonstrates how curvelet coefficients can replace traditional convolutional layers
- Modernized Autograd Bridge - Updated
_UDCTFunctionto usesetup_contextfor modern PyTorch compatibility and enabled functorchvmapcompatibility for efficient batch processing. - Enhanced Type System - Introduced
_from_sparsehelper to densify windows, updated typing to includeMUDCTCoefficients, and preserved monogenic placeholders (NotImplemented in torch).
📚 Documentation Improvements
Major Documentation Refresh
- README Enhancements - Revamped README with:
- Added example links for
direction_resolution,curvelet_vs_wavelet, andudct_module_gradcheck - Clarified FAQs wording
- Expanded "Related Projects" table with language/invertible columns
- Added
Curvelet.jlto related projects
- Added example links for
- Documentation Structure - Replaced docs entry with
docs/curvelet_faqs.rstindocs/index.rst, updated FAQs content and citations, switched todocs/table.mdand removed obsoletedocs/table.csv - Sphinx Documentation - Exposed
curvelets.torch.UDCTModulein Sphinx docs, added:no-index:directives, and addedtorchvisionandscikit-learnto documentation requirements - Licensing & Copyright - Clarified Curvelab licensing notes, updated reference access year to 2026, and updated copyright year to 2026 in
LICENSEandsrc/curvelets/__init__.py
Documentation Polish
- Standardization - Standardized "MATLAB" capitalization across
README.md,docs/index.rst, anddocs/table.md, including the related projects table - Formatting - Minor wording and formatting tweaks to Credits sections
🧪 Testing & Configuration
- New Test Coverage - Added numpy↔torch UDCT parity tests, struct/vect round-trip tests, and dtype-transfer tests for
UDCTModule - Configuration Updates - Updated
.gitignoreto ignoredata/directory, added mypy ignores fortorchvision.*andsklearn.*imports
🔧 Code Quality
- Streamlined Examples - Cleaned up unnecessary comments and results sections in example files to improve readability
- Type Safety - Enhanced type hints throughout the codebase for better IDE support and static analysis
Contributors
Full Changelog: v...v...
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v0.2.0b1
v0.1.0b4
v0.1.0b3
v0.1.0b2
v0.1.0b1
v0.1.0b1 - First Beta Release
This is the first beta release of curvelets, an open-source implementation of the Uniform Discrete Curvelet Transform (UDCT) in Python.
Changes
- N-dimensional UDCT: Full implementation for N-dimensional signals with exact invertibility
- Simple API: Clean interface similar to
FDCTfrom curvelops - Type Annotations: Comprehensive type hints throughout the codebase
- Python 3.9+ Support: Compatible with Python 3.9, 3.10, 3.11, 3.12, 3.13, 3.14[t]
- Documentation: Enhanced documentation with examples and API reference
- Testing: Improved test coverage and validation
- Code Quality: Enhanced error handling and type safety
Full Changelog: v0.0.6-alpha...v0.1.0b1