Logo Deedle

VirtualVectorSource Module

Module that implements various helper operations over `IVirtualVectorSource` type

Types

Type Description

ContiguousLinearAddressOperations

Linear `0 .. length-1` address ops with structural equality (needed by Combine uniqueBy).

IBoxedVectorSource<'T>

Marks IVirtualVectorSource that has been created by boxing another source

ICombinedVectorSource<'T>

Marks IVirtualVectorSource that has been created by combining another sources

ILinearAddressedSource<'T>

Marks a source reindexed onto contiguous linear addresses `0 .. Length-1`. Used by virtual `Shift`/`Diff` so absolute-address backends (partitioned Ranges) align the same way as remapping ordinal/CSV sources.

IMappedVectorSource<'T, 'R>

Marks IVirtualVectorSource that has been created by mapping from source

Functions and values

Function or value Description

boxSource source

Full Usage: boxSource source

Parameters:
Returns: IVirtualVectorSource<obj>
Type parameters: 'T

Creates a new vector source that boxes all values The result also implements IBoxedVectorSource

source : IVirtualVectorSource<'T>
Returns: IVirtualVectorSource<obj>

combine f sources

Full Usage: combine f sources

Parameters:
Returns: IVirtualVectorSource<'R>
Type parameters: 'T, 'R

Creates a new vector that combines (zips) vectors using a given function The result also implements ICombinedVectorSource

f : OptionalValue<'T> list -> OptionalValue<'R>
sources : IVirtualVectorSource<'T> list
Returns: IVirtualVectorSource<'R>

createRowReader vectorCtor builder irt vectors sources

Full Usage: createRowReader vectorCtor builder irt vectors sources

Parameters:
Returns: IVirtualVectorSource<IVector<obj>>
Type parameters: 'T

Creates a "row reader vector" - that is a vector that provides source for the series returned by frame.Rows. This is combined from a number of sources, but we do not fully materialize anything to create the vector. The first parameter is a ctor for `VirtualVector` which is defined below in the file.

vectorCtor : IVirtualVectorSource<'T> -> IVector
builder : IVectorBuilder
irt : IRowReaderTransform
vectors : IVector<IVector>
sources : IVirtualVectorSource<'T> list
Returns: IVirtualVectorSource<IVector<obj>>

fillMissing mode source

Full Usage: fillMissing mode source

Parameters:
Returns: IVirtualVectorSource<'T>
Type parameters: 'T

Virtual FillMissing: constant fill is a map; directional fill walks neighbouring offsets on demand. Both preserve the virtual addressing scheme.

mode : VectorFillMissing
source : IVirtualVectorSource<'T>
Returns: IVirtualVectorSource<'T>

lookupValueOrScan addrOps valueAt v lookup check

Full Usage: lookupValueOrScan addrOps valueAt v lookup check

Parameters:
Returns: ('V * Address) opt
Type parameters: 'V

Exact lookup by scanning addresses. Non-exact lookups throw `NotSupportedException`.

addrOps : IAddressOperations
valueAt : IVectorLocation -> OptionalValue<'V>
v : 'V
lookup : Lookup
check : Func<Address, bool>
Returns: ('V * Address) opt

map rev f source

Full Usage: map rev f source

Parameters:
Returns: IVirtualVectorSource<'TNew>
Type parameters: 'TNew, 'V

Creates a new vector that transforms source values using a given function The result also implements IMappedVectorSource

rev : ('TNew -> 'V) option
f : IVectorLocation -> OptionalValue<'V> -> OptionalValue<'TNew>
source : IVirtualVectorSource<'V>
Returns: IVirtualVectorSource<'TNew>

scanLookupRange addrOps valueAt search

Full Usage: scanLookupRange addrOps valueAt search

Parameters:
Returns: RangeRestriction<Address>
Type parameters: 'V

Scan every address and keep those whose `ValueAt` equals `search`. Used when a wrapper cannot reverse-map a LookupRange query to the inner source.

addrOps : IAddressOperations
valueAt : IVectorLocation -> OptionalValue<'V>
search : 'V
Returns: RangeRestriction<Address>

scanLookupRangeOf source search

Full Usage: scanLookupRangeOf source search

Parameters:
Returns: RangeRestriction<Address>
Type parameters: 'V

Scan-based LookupRange using the source's own `ValueAt` / addressing.

source : IVirtualVectorSource<'V>
search : 'V
Returns: RangeRestriction<Address>

withLinearAddressing source

Full Usage: withLinearAddressing source

Parameters:
Returns: IVirtualVectorSource<'T>
Type parameters: 'T

Reindex a virtual source onto linear addresses `0L .. Length-1L`. Used after ordered `GetSubVector` / `GetRange` so absolute-address backends (partitioned Ranges) share the same address space as remapping ordinal sources. No-op when the source is already linearly addressed from 0.

source : IVirtualVectorSource<'T>
Returns: IVirtualVectorSource<'T>

Type something to start searching.