VectorConstruction Type
A "mini-DSL" that describes construction of a vector. Vector can be constructed
from various range operations (relocate, drop, slicing, appending), by combination
of two vectors or by taking a vector from a list of variables.
Notably, vectors can only be constructed from other vectors of the same type
(the `Combine` operation requires this - even though that one could be made more general).
This is an intentional choice to make the representation simpler.
Logically, when we apply some index operation, we should get back a polymorphic vector
construction (`\forall T. VectorConstruction
Union cases
| Union case |
Description
|
Append two vectors after each other
|
|
Full Usage:
AsyncCustomCommand(VectorConstruction list, IVector list -> Async<IVector>)
Parameters:
VectorConstruction list
Item2 : IVector list -> Async<IVector>
|
Same as `CustomCommand` with the difference that the resulting vector is returned asynchronously (this is useful for lazy loading and it is used by `AsyncBuild`).
|
Full Usage:
Combine(Lazy<int64>, VectorConstruction list, VectorListTransform)
Parameters:
Lazy<int64>
Item2 : VectorConstruction list
Item3 : VectorListTransform
|
Combine N aligned vectors. The `IVectorValueListTransform` object specifies how to merge values (in case there is a value at a given address in more than one of the vectors).
|
Full Usage:
CustomCommand(VectorConstruction list, IVector list -> IVector)
Parameters:
VectorConstruction list
Item2 : IVector list -> IVector
|
Apply a custom command to a vector - this can be used by special indices (e.g. index for a lazy vector) to provide a custom operations to be used. The first parameter is a list of sub-vectors to be combined (if as in e.g. `Append`) and the second argument is a function that will be called with evaluated vectors and is supposed to create the new vector.
|
Drop the specified range of addresses from the vector and return a new vector that excludes the range
|
|
Full Usage:
Empty int64
Parameters:
int64
|
Creates an empty vector of the requested type and size The returned vector is filled with missing values.
|
Create a vector that has missing values filled using the specified direction (forward means that n-th value will contain (n-i)-th value where (n-i) is the first index that contains a value).
|
|
Get the specified range of addresses from the vector and return it as a new vector
|
|
Full Usage:
Relocate(VectorConstruction, int64, (Address * Address) seq)
Parameters:
VectorConstruction
Item2 : int64
Item3 : (Address * Address) seq
|
Reorders elements of the vector. Carries a new required vector length and a list of relocations (each pair of addresses specifies that an element at a new address should be filled with an element from an old address). The addresses may be out of range!
|
|
When constructing vectors, we get an array of vectors to be used as "variables" - this element represent getting one of the variables.
|
Instance members
| Instance member |
Description
|
Full Usage:
this.IsAppend
Returns: bool
|
|
Full Usage:
this.IsAsyncCustomCommand
Returns: bool
|
|
Full Usage:
this.IsCombine
Returns: bool
|
|
Full Usage:
this.IsCustomCommand
Returns: bool
|
|
Full Usage:
this.IsDropRange
Returns: bool
|
|
Full Usage:
this.IsEmpty
Returns: bool
|
|
Full Usage:
this.IsFillMissing
Returns: bool
|
|
Full Usage:
this.IsGetRange
Returns: bool
|
|
Full Usage:
this.IsRelocate
Returns: bool
|
|
Full Usage:
this.IsReturn
Returns: bool
|
|
Deedle