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