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
Issue
Currently we have different internals and
getmethods for theelementwise_scalar(es)and thedecorrelator(dd)etc. These encoders have two modes of application. To data they applyencode_data(x) = Ax + b, and to structure matrices they applyencode_structure_mat(C) = ACA'.To acheive these two modes In
esthis is done by having two differentLinearMapobjects, while inddwe have oneLinearMapobject and a shift bybstored.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 oneencode_structure_matrixfunction 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 exampleIt may also aid in retrieval of the affine maps
Aandb