You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
note for a very very cool feature I wont add till after my alpha release!
roughly two(ish) parts, first have a generic wrapper for rectilinear formats like the following
(which may be lacking a bunch of typeable annotations, and may not be correct or fully specified )
then on top of that, build an generic native world Mutable and Pure Rectilinear formats.
that is, something like
dataCatenableMArrayorientstelem=CatMArrVector ((RangeInt), GMarrRectilinearorientstelem)
--will have both rectilinear array and sparse array instancesdataCatenableAddress=CatenAddy-- something like (outerDimShift,GAddress)
which requires that the ranges correspond with disjoint montonic increasing intervals of the outer dimension of the CatenableMArray, and the shapes of each chunk wrt Inner Dimensions all agree.
Idea being we can treat this as being a Sparse Rectilinear Array structure, and thus have "zero copy" concatenation wrt the outer Dimension of the array while still being able to read and write to the composition thereof. Plus When building a new buildable array in a format of the same orientation as a given Catenable array, the set of (index,value) value pairs will be nearly in order already, wrt the outer dimension total ordering, so any sorting (and there may be none! :) ) will be within a given GMarrRectilinear chunk
This will make it a bit cheap to "build" larger arrays in various ways that are nearly zero copy and still be able to all the standard reads/writes and good locality traversal operations.
for the alpha I'll be doing something a lot dumber that only allows directly concatting a single pair of compatible orientation arrays and building a result array directly (so not zero copy for the purposes of being able to read/write on the composite result with sharing into the constituent original parts)
This is a really neat example of a feature only possible by dint of the explicit vocab for different layouts and their properties!
The text was updated successfully, but these errors were encountered:
note for a very very cool feature I wont add till after my alpha release!
roughly two(ish) parts, first have a generic wrapper for rectilinear formats like the following
(which may be lacking a bunch of typeable annotations, and may not be correct or fully specified )
then on top of that, build an generic native world Mutable and Pure Rectilinear formats.
that is, something like
which requires that the ranges correspond with disjoint montonic increasing intervals of the outer dimension of the CatenableMArray, and the shapes of each chunk wrt Inner Dimensions all agree.
Idea being we can treat this as being a Sparse Rectilinear Array structure, and thus have "zero copy" concatenation wrt the outer Dimension of the array while still being able to read and write to the composition thereof. Plus When building a new
buildable
array in a format of the same orientation as a given Catenable array, the set of (index,value) value pairs will be nearly in order already, wrt the outer dimension total ordering, so any sorting (and there may be none! :) ) will be within a givenGMarrRectilinear
chunkThis will make it a bit cheap to "build" larger arrays in various ways that are nearly zero copy and still be able to all the standard reads/writes and good locality traversal operations.
for the alpha I'll be doing something a lot dumber that only allows directly concatting a single pair of compatible orientation arrays and building a result array directly (so not zero copy for the purposes of being able to read/write on the composite result with sharing into the constituent original parts)
This is a really neat example of a feature only possible by dint of the explicit vocab for different layouts and their properties!
The text was updated successfully, but these errors were encountered: