@bokeh/bokehjs
Version:
Interactive, novel data visualization
197 lines • 7.26 kB
TypeScript
import type { NDDataType, Arrayable } from "../types";
import type { Equatable, Comparator } from "./eq";
import { equals } from "./eq";
import type { Cloner, Cloneable } from "./cloneable";
import { clone } from "./cloneable";
import type { Serializable, Serializer } from "../serialization";
import { serialize } from "../serialization";
declare const __ndarray__: unique symbol;
export interface NDArrayType<T, U = T> extends Arrayable<U>, Equatable, Cloneable, Serializable {
readonly [__ndarray__]: boolean;
readonly dtype: NDDataType;
readonly shape: number[];
readonly dimension: number;
get(i: number): T;
[i: number]: U;
}
type Init<T> = number | ArrayBufferLike | ArrayLike<T>;
export declare class BoolNDArray extends Uint8Array implements NDArrayType<boolean, number> {
readonly [__ndarray__] = true;
readonly dtype: "bool";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): boolean;
}
export declare class Uint8NDArray extends Uint8Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "uint8";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Int8NDArray extends Int8Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "int8";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Uint16NDArray extends Uint16Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "uint16";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Int16NDArray extends Int16Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "int16";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Uint32NDArray extends Uint32Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "uint32";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Int32NDArray extends Int32Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "int32";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Float32NDArray extends Float32Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "float32";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class Float64NDArray extends Float64Array implements NDArrayType<number> {
readonly [__ndarray__] = true;
readonly dtype: "float64";
readonly shape: number[];
readonly dimension: number;
constructor(init: Init<number>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): number;
}
export declare class ObjectNDArray<T = unknown> extends Array<T> implements NDArrayType<T> {
readonly [__ndarray__] = true;
readonly dtype: "object";
private _shape?;
get shape(): number[];
get dimension(): number;
constructor(init_: Init<T>, shape?: number[]);
[equals](that: this, cmp: Comparator): boolean;
[clone](cloner: Cloner): this;
[serialize](serializer: Serializer): unknown;
get(i: number): T;
}
export type NDArray = BoolNDArray | Uint8NDArray | Int8NDArray | Uint16NDArray | Int16NDArray | Uint32NDArray | Int32NDArray | Float32NDArray | Float64NDArray | ObjectNDArray;
export declare function is_NDArray(v: unknown): v is NDArray;
export type NDArrayTypes = {
bool: {
array: Uint8Array;
ndarray: BoolNDArray;
};
uint8: {
array: Uint8Array;
ndarray: Uint8NDArray;
};
int8: {
array: Int8Array;
ndarray: Int8NDArray;
};
uint16: {
array: Uint16Array;
ndarray: Uint16NDArray;
};
int16: {
array: Int16Array;
ndarray: Int16NDArray;
};
uint32: {
array: Uint32Array;
ndarray: Uint32NDArray;
};
int32: {
array: Int32Array;
ndarray: Int32NDArray;
};
float32: {
array: Float32Array;
ndarray: Float32NDArray;
};
float64: {
array: Float64Array;
ndarray: Float64NDArray;
};
object: {
array: unknown[];
ndarray: ObjectNDArray;
};
};
type ArrayNd<S extends number[]> = {
dimension: S["length"];
shape: S;
};
type Array1d = ArrayNd<[number]>;
type Array2d = ArrayNd<[number, number]>;
export type Uint32Array1d = Uint32NDArray & Array1d;
export type Uint8Array1d = Uint8NDArray & Array1d;
export type Uint8Array2d = Uint8NDArray & Array2d;
export type Float32Array2d = Float32NDArray & Array2d;
export type Float64Array2d = Float64NDArray & Array2d;
export type FloatArray2d = Float32Array2d | Float64Array2d;
export declare function ndarray<S extends number[]>(init: number | ArrayBufferLike | ArrayLike<unknown>, options?: {
shape?: S;
}): NDArrayTypes["object"]["ndarray"] & ArrayNd<S>;
export declare function ndarray<K extends NDDataType, S extends number[]>(init: number | ArrayBufferLike | ArrayLike<number>, options?: {
dtype: K;
shape?: S;
}): NDArrayTypes[K]["ndarray"] & ArrayNd<S>;
export declare function ndarray<S extends number[]>(init: ArrayLike<unknown>, options?: {
dtype: "object";
shape?: S;
}): NDArrayTypes["object"]["ndarray"] & ArrayNd<S>;
export {};
//# sourceMappingURL=ndarray.d.ts.map