Unit multiarray

Description

A unit containing TMultiArray, multidimensional array data structure with single precision and arbitrary number of dimension.

Overview

Classes, Interfaces, Objects and Records

Name Description
Record TMultiArray  
Record TBroadcastResult  
Record TUniqueResult  

Functions and Procedures

function Add(A, B: TMultiArray): TMultiArray;
function AllocateMultiArray(Size: longint; AllocateData: boolean=true): TMultiArray;
function Any(X: TMultiArray; Axis: longint = -1): TMultiArray;
function ApplyBFunc(A, B: TMultiArray; BFunc: TBFunc; PrintDebug: Boolean = False; FuncName: string = ''): TMultiArray;
function ApplyUFunc(A: TMultiArray; UFunc: TUFunc; Params: array of single): TMultiArray;
function ArrayEqual(A, B: TMultiArray; Tol: single=0): boolean;
function ArraySort(A: TMultiArray; Axis: integer = -1): TMultiArray;
function AsStrided(A: TMultiArray; Shape, Strides: TLongVector): TMultiArray;
function BroadcastArrays(A, B: TMultiArray): TBroadcastResult;
function CopyVector(V: TLongVector): TLongVector;
function CopyVector(V: TSingleVector): TSingleVector;
function CreateEmptyFTensor(Contiguous: boolean = True): TMultiArray;
function CreateMultiArray(AData: single): TMultiArray;
function CreateMultiArray(AData: array of single): TMultiArray;
procedure DebugMultiArray(A: TMultiArray);
function DynArrayToVector(A: array of longint): TLongVector;
procedure EnsureNDims(A: TMultiArray; NDims: integer);
function GenerateMultiArray(Shape: array of longint; GenFunc: TGenFunc; Params: array of single): TMultiArray;
function GetVirtualData(A: TMultiArray): TSingleVector;
function IndexOf(x: Single; A: TMultiArray): longint;
function IndexToStridedOffset(Index: array of longint; Strides: TLongVector): longint;
function Matmul(A, B: TMultiArray): TMultiArray;
function MatToStringList(A: TMultiArray; delimiter: string=','): TStringList;
function Maximum(A, B: TMultiArray): TMultiArray;
function Minimum(A, B: TMultiArray): TMultiArray;
function Multiply(A, B: TMultiArray): TMultiArray;
function OffsetToIndex(A: TMultiArray; Offset: longint): TLongVector;
procedure Permute(var A: TMultiArray);
function Power(A, B: TMultiArray): TMultiArray; overload;
procedure PrintMultiArray(A: TMultiArray);
function Range(Start, Stop: longint): TLongVector; overload;
function Range(Start, Stop, step: longint): TLongVector; overload;
function Ravel(A: TMultiArray): TMultiArray;
function ReadCSV(FileName: string): TMultiArray;
function ShapeToStrides(AShape: TLongVector): TLongVector;
procedure ShuffleVector(var V: array of longint);
procedure ShuffleVector(var V: array of single);
procedure SqueezeMultiArray(var A: TMultiArray);
procedure SqueezeMultiArrayAt(var A: TMultiArray; axis: integer);
function Transpose(A: TMultiArray): TMultiArray;
function Unique(A: TMultiArray; Axis: integer = -1; ReturnCounts: boolean = False): TUniqueResult;
function VectorEqual(A, B: TLongVector): boolean;
function VectorEqual(A, B: TSingleVector): boolean;
function VStack(arr: array of TMultiArray): TMultiArray;
procedure WriteCSV(A: TMultiArray; filename: string);
function _ALL_: TLongVector;

Types

TLongVector = array of longint;
TLongVectorArr = array of TLongVector;
TSingleVector = array of single;
TGenFunc = function(Params: array of single): single;
TUFunc = function(a: single; params: array of single): single;
TBFunc = function(a, b: single): single;

Variables

GLOBAL_FUNC_DEBUG: boolean;

Description

Functions and Procedures

function Add(A, B: TMultiArray): TMultiArray;
 
function AllocateMultiArray(Size: longint; AllocateData: boolean=true): TMultiArray;
 
function Any(X: TMultiArray; Axis: longint = -1): TMultiArray;
 
function ApplyBFunc(A, B: TMultiArray; BFunc: TBFunc; PrintDebug: Boolean = False; FuncName: string = ''): TMultiArray;
 
function ApplyUFunc(A: TMultiArray; UFunc: TUFunc; Params: array of single): TMultiArray;
 
function ArrayEqual(A, B: TMultiArray; Tol: single=0): boolean;
 
function ArraySort(A: TMultiArray; Axis: integer = -1): TMultiArray;
 
function AsStrided(A: TMultiArray; Shape, Strides: TLongVector): TMultiArray;
 
function BroadcastArrays(A, B: TMultiArray): TBroadcastResult;
 
function CopyVector(V: TLongVector): TLongVector;
 
function CopyVector(V: TSingleVector): TSingleVector;
 
function CreateEmptyFTensor(Contiguous: boolean = True): TMultiArray;
 
function CreateMultiArray(AData: single): TMultiArray;
 
function CreateMultiArray(AData: array of single): TMultiArray;
 
procedure DebugMultiArray(A: TMultiArray);
 
function DynArrayToVector(A: array of longint): TLongVector;
 
procedure EnsureNDims(A: TMultiArray; NDims: integer);
 
function GenerateMultiArray(Shape: array of longint; GenFunc: TGenFunc; Params: array of single): TMultiArray;
 
function GetVirtualData(A: TMultiArray): TSingleVector;
 
function IndexOf(x: Single; A: TMultiArray): longint;

Get linear index of x in A. Returns -1 if not found.

function IndexToStridedOffset(Index: array of longint; Strides: TLongVector): longint;
 
function Matmul(A, B: TMultiArray): TMultiArray;
 
function MatToStringList(A: TMultiArray; delimiter: string=','): TStringList;
 
function Maximum(A, B: TMultiArray): TMultiArray;
 
function Minimum(A, B: TMultiArray): TMultiArray;
 
function Multiply(A, B: TMultiArray): TMultiArray;
 
function OffsetToIndex(A: TMultiArray; Offset: longint): TLongVector;
 
procedure Permute(var A: TMultiArray);

Shuffle an array based on the first index

function Power(A, B: TMultiArray): TMultiArray; overload;
 
procedure PrintMultiArray(A: TMultiArray);
 
function Range(Start, Stop: longint): TLongVector; overload;
 
function Range(Start, Stop, step: longint): TLongVector; overload;
 
function Ravel(A: TMultiArray): TMultiArray;
 
function ReadCSV(FileName: string): TMultiArray;
 
function ShapeToStrides(AShape: TLongVector): TLongVector;
 
procedure ShuffleVector(var V: array of longint);
 
procedure ShuffleVector(var V: array of single);
 
procedure SqueezeMultiArray(var A: TMultiArray);
 
procedure SqueezeMultiArrayAt(var A: TMultiArray; axis: integer);
 
function Transpose(A: TMultiArray): TMultiArray;
 
function Unique(A: TMultiArray; Axis: integer = -1; ReturnCounts: boolean = False): TUniqueResult;
 
function VectorEqual(A, B: TLongVector): boolean;
 
function VectorEqual(A, B: TSingleVector): boolean;
 
function VStack(arr: array of TMultiArray): TMultiArray;
 
procedure WriteCSV(A: TMultiArray; filename: string);
 
function _ALL_: TLongVector;
 

Types

TLongVector = array of longint;
 
TLongVectorArr = array of TLongVector;
 
TSingleVector = array of single;
 
TGenFunc = function(Params: array of single): single;
 
TUFunc = function(a: single; params: array of single): single;
 
TBFunc = function(a, b: single): single;
 

Variables

GLOBAL_FUNC_DEBUG: boolean;
 

Generated by PasDoc 0.15.0.