license import { env , KernelConfig , KernelFunc , Reverse , ReverseAttrs , ReverseInputs , TensorInfo , util } from '@tensorflow/tfjs-core' ; import { MathBackendWebGL } from '../backend_webgl' ; import { ReverseProgram } from '../reverse_gpu' ; import { ReversePackedProgram } from '../reverse_packed_gpu' ; import { identity } from './Identity' ; export function reverse ( args ) { const { inputs , backend , attrs } = args ; const { x } = inputs ; const { dims } = attrs ; const xRank = x . shape . length ; const $dims = util . parseAxisParam ( dims , x . shape ) ; if ( xRank === 0 ) { return identity ( { inputs : { x } , backend } ) ; } const program = env ( ) . getBool ( 'WEBGL_PACK_ARRAY_OPERATIONS' ) ? new ReversePackedProgram ( x . shape , $dims ) : new ReverseProgram ( x . shape , $dims ) ; return backend . runWebGLProgram ( program , [ x ] , x . dtype ) ; } export const reverseConfig = { kernelName : Reverse , backendName : 'webgl' , kernelFunc : reverse as { } as KernelFunc } ;