Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The algorithms for continuous and discrete time are now closer to the cited papers, more readable, and also works for complex-coefficient systems. Many tests have been added.
It could be considered if it is worth to merge the algorithms for discrete and continuous time into one. One option to simplify this would be to consider actual frequencies and not normalized frequencies in the discrete-time formulation and define something like
sigmamax(sys, w)
. But perhaps better to wait until there is dispatch on continuous and discrete time.Another thing which could be discussed is the naming. I think L-infinity and H-infinity norms should be distinguished, in particular as the current function computes the L-infinity norm and most people are probably expecting that it is the H-infinity norm. So perhaps renaming the current function to
linfnorm
and defining something likehinfnorm(sys) = isstable(sys) ? linfnorm(sys) : Inf
Switching the naming of norminf to (h/l)infnorm is consistent with opnorm etc. and seems easier to say and remember.