You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Breaking Changes:
Rename domainType to domain_type and codomainType to codomain_type.
Separate operators with dependencies to new packages inside the repo (DSPOperators, FFTWOperators) and add new operators in separate packages (NFFTOperators, WaveletOperators).
Some basic definitions are moved to a new package, OperatorCore, that contains the general functions previously defined on properties.jl (e.g., is_linear, is_diagonal). Only those functions are moved to this package that can be defined for matrices.
Additional Changes:
Introduce opt-out multi-threading to DiagOp and BroadCast.
Add option to control where scaling occurs in DFT operator: never (default), forward, backward (this basically is ifft), both (scale by square root of scaling factor in both directions). This follows the convention of numpy's FFT.
Define LinearAlgebra.opnorm for AbstractOperators. Add efficient implementation where possible (e.g., DiagOp, Eye, DFT), and use power iterations otherwise.
Additionally, estimate_opnorm is introduced, which enables control over the maximum number of power iterations and convergence threshold, and uses fewer iterations by default than opnorm. The main use case is to estimate the Lipsitz constant in the fast forward-backward algorithm.
Optimize Compose and Scaling by fusing operators when possible (e.g., scaled DiagOp becomes a DiagOp with scaled weights, or two adjacent DiagOps get fused when composed).