import { DTypeGpu, GPUTensorConstructor, GPUTensorI } from '../../../tensor/gpu/interface'; import { GPUMemoryAllocator } from '../../../tensor/gpu/memory'; import { GPUTensor } from '../../../tensor/gpu/tensor'; import { SparseTensor } from '../../../tensor/sparse/tensor'; import { Dispatcher } from '../../gpu/dispatcher'; import { Input, Operation } from '../../gpu/operation'; export interface ReshapeIndicesInfo { shapeA?: readonly number[]; widthA?: number; heightA?: number; shapeOutput?: readonly number[]; widthOutput?: number; heightOutput?: number; nnzFraction?: number; sparseDims?: number; oldSparseStrides?: number[]; newSparseStrides?: number[]; } export interface ReshapeIndicesInput { A: GPUTensorI; sparseShape: readonly number[]; shape: readonly number[]; nnz: number; } export declare class ReshapeIndicesOperation extends Operation { constructor(tensorConstructor: GPUTensorConstructor, dtype: DTypeGpu, allocator?: GPUMemoryAllocator); getVariables(): string; getUniformAttrs(): Input[]; getFragmentShader(info: ReshapeIndicesInfo): string; getTextureNames(): string[]; calc(input: ReshapeIndicesInput): GPUTensor; getOutputShape(input: ReshapeIndicesInput): readonly number[]; compile(info: ReshapeIndicesInfo): void; getCompilationInfo(input: ReshapeIndicesInput): ReshapeIndicesInfo; getInputInfoString(input: ReshapeIndicesInput): string; } export declare const defaultReshapeIndicesD: Dispatcher>>; export declare function reshapeGPU(tensor: SparseTensor, values: GPUTensor, indices: GPUTensor<'uint32'>, shape: readonly number[], copy: boolean): SparseTensor;