Compact monotone component #423
Draft
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.
Similar to how Sven's work parameterizes the map, and using my favorite compile-time tooling, this is a ludicrous addition to
$$T(\mathbf{x},y) = \frac{\int\limits_0^y g(\partial_2 f(\mathbf{x},t))\ dt}{\int\limits_0^1 g(\partial_2 f(\mathbf{x},t))\ dt},$$ $g$ is a rectifier, $f$ is a MultivariateExpansionWorker. Points of note:
MonotoneComponentthat changes the parameterization towhere
MonotoneComponent, I just added it as a compile-time feature there. I will (somewhat baselessly?) assert that there's no runtime overhead for "traditional"MonotoneComponentobjects (at least, compiled withRELEASEflags).LogDeterminantCoeffGrad, which will becomenote that this now has integrals, where it previously did not.
CreateComponentat this point isShiftedLegendre(which corresponds toBasisTypes::Legendre), which is orthogonal onSineBasisfor the time being, which representsREGISTER_MONO_COMPto work better for future perhaps heterogeneous map typesmainbranch, I'm going to make separate PRs for that kind of stuff. I'm also open to merging this into a completely separate branch.