Record TMultiArray

Unit

Declaration

type TMultiArray = record

Description

Multidimensional array data structure.

Overview

Fields

Public DataOffset: longint;
Public Data: array of single;
Public Indices: TLongVectorArr;
Public Shape: TLongVector;
Public Strides: TLongVector;

Methods

Public function Contiguous: TMultiArray;
Public function Copy(Deep: boolean = True): TMultiArray;
Public function Get(i: longint): single; overload;
Public function GetVirtualData: TSingleVector;
Public function Item: Single;
Public function Matmul(Other: TMultiArray): TMultiArray;
Public function Reshape(NewShape: TLongVector): TMultiArray;
Public function Slice(idx: array of TLongVector): TMultiArray;
Public function SliceBool(BoolIdx: array of TLongVector): TMultiArray;
Public function Squeeze: TMultiArray;
Public function T: TMultiArray;
Public procedure Put(i: array of integer; x: single);

Properties

Public property IsContiguous: boolean read FIsContiguous write FIsContiguous;
Public property NDims: integer read GetNDims;
Public property Size: longint read GetSize;
Public property Items[idx:arrayofTLongVector]: TMultiArray read Slice;

Description

Fields

Public DataOffset: longint;
 
Public Data: array of single;
 
Public Indices: TLongVectorArr;
 
Public Shape: TLongVector;
 
Public Strides: TLongVector;
 

Methods

Public function Contiguous: TMultiArray;

Returns contiguous copy of this array

Public function Copy(Deep: boolean = True): TMultiArray;

Perform copying of this array. By default, the actual data is referenced rather than copied. If Deep is true, then the actual data is copied.

Public function Get(i: longint): single; overload;

Get i-th item of the flattened array

Public function GetVirtualData: TSingleVector;

Returns a TSingleVector containing "strided" data, instead of the actual data.

Public function Item: Single;

Convert Self to a single-typed scalar if NDims=0

Public function Matmul(Other: TMultiArray): TMultiArray;

Multiply self with other 2-dimensional TMultiArray

Public function Reshape(NewShape: TLongVector): TMultiArray;

Reshape a TMultiArray into a specified shape

Public function Slice(idx: array of TLongVector): TMultiArray;

Perform multidimensional slicing. For now Slice will return contiguous.

Public function SliceBool(BoolIdx: array of TLongVector): TMultiArray;
 
Public function Squeeze: TMultiArray;
 
Public function T: TMultiArray;

Perform transpose. If NDims > 2, the reverse the axis

Public procedure Put(i: array of integer; x: single);
 

Properties

Public property IsContiguous: boolean read FIsContiguous write FIsContiguous;
 
Public property NDims: integer read GetNDims;
 
Public property Size: longint read GetSize;
 
Public property Items[idx:arrayofTLongVector]: TMultiArray read Slice;
 

Generated by PasDoc 0.15.0.