ValueShapes.jl

Duality of view between named variables and flat vectors in Julia

OTHER License

Stars
12
Committers
5

ValueShapes.jl

Documentation

ValueShapes provides Julia types to describe the shape of values, like scalars, arrays and structures.

Shapes provide a generic way to construct uninitialized values (e.g. multidimensional arrays) without using templates.

Shapes also act as a bridge between structured and flat data representations: Mathematical and statistical algorithms (e.g. optimizers, fitters, solvers, etc.) often represent variables/parameters as flat vectors of nameless real values. But user code will usually be more concise and readable if variables/parameters can have names (e.g. via NamedTuples) and non-scalar shapes. ValueShapes provides a duality of view between the two different data representations.

See the documentation for details:

ValueShapes is designed to compose well with ElasticArrays, ArraysOfArrays and TypedTables (and similar table packages). ValueShapes package has some overlap in functionality with TransformVariables, but provides a duality of view instead of transformations (and therefore uses data views instead of data copies, where possible).