CliMA / CliMA/CalibrateEmulateSample.jl
Unify the internals of different Affine transformers
- Dominant language
- Julia
- Stars
- 90
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
## Issue
Currently we have different internals and `get` methods for the `elementwise_scalar` (`es)` and the `decorrelator` (`dd`)etc. These encoders have two modes of application. To data they apply `encode_data(x) = Ax + b`, and to structure matrices they apply `encode_structure_mat(C) = ACA'`.
To acheive these two modes In `es` this is done by having two different `LinearMap` objects, while in `dd` we have one `LinearMap` object and a shift by `b` stored.
## Possible solution
It makes sense to unify the methodology (and the resulting API of these objects) so that we can just have one `encode_data`, and one `encode_structure_matrix` function that can be used for all the different Affine scaling approaches. This leans toward the Struture more similar to the elementwise scalar, however we should ensure that these affine objects are correctly stored as a linear map, as they _are_ affines) and so their application may need to be applied to `[x 1]` for example
It may also aid in retrieval of the affine maps `A` and `b`
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the elementwise_scalar and decorrelator internals, including their LinearMap objects and get methods. Trace encode_data and encode_structure_mat for both application modes. Done means the affine transformers expose unified functions and consistently preserve or retrieve A and b.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100