BUG(shells): fix and improve partition() with NNLS #145
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.
Most importantly, fixes a bug in
partition_nnls()
which rendered that function useless.Secondly, optimises
partition_nnls()
by using a QR factorisation of the problem before callingnnls()
on an equivalent but much smaller problem.Finally, adds a new integral constraint for both
nnls
andlstsq
which ensures that the sum of the partition recovers the integral of the input function.Fixes: #144
Fixed: A bug in
partition()
with the default method.Changed: Both
partition(method="nnls")
andpartition(method="lstsq")
now have an additional integral constraint so that the sum of the partition recovers the integral of the input function.