/ValueShapes.jl

Duality of view between named variables and flat vectors in Julia

Primary LanguageJuliaOtherNOASSERTION

ValueShapes.jl

Documentation for stable version Documentation for development version License Build Status Codecov

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).