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.
I noticed there's a total variance distance objective function class which is almost finished. The only missing functions for the code to run without formally raising an error were
RawTVDFunction.dterms
andRawTVDFunction.chi2k_distributed_qty
. The former function has a very simple "canonical" implementation, but it's numerically problematic since the 1-norm isn't differentiable at any vector with a zero component. I don't know what a mathematically correct version of the second function looks like (or if there is such an implementation) so I just have it return -1 to indicate "this doesn't mean what you think it means."I'm mostly opening this PR to facilitate QPL-internal discussion on the topic.
You can run GST where the final iteration is TVD-based instead of log-likelihood using something like the following.