UNPKG

@hoff97/tensor-js

Version:

PyTorch like deep learning inferrence library

45 lines (44 loc) 1.45 kB
import { UnaryOperation } from './unaryOperation'; export class PowerScalarOperation extends UnaryOperation { constructor(tensorConstructor, dtype, allocator) { super(tensorConstructor, dtype, allocator); } operation(input) { throw new Error('Method not implemented.'); } getFragmentShader(info) { return ` void main() { initVars(); if (power < 0.0) { gl_FragColor = vec4(factor,factor,factor,factor) / pow(texture2D(X, uv), vec4(-power,-power,-power,-power)); } else { gl_FragColor = pow(texture2D(X, uv), vec4(power,power,power,power)) * factor; } } `; } calc(input) { return this.compute(input.input.shape, { X: input.input }, { factor: input.factor, power: input.power }); } getCompilationInfo(input) { const info = super.getCompilationInfo(input); return Object.assign(Object.assign({}, info), { factor: input.factor, power: input.power }); } getInputInfoString(input) { return `${super.getInputInfoString(input)}-${input.factor}-${input.power}`; } getVariables() { return ` ${this.getVarModifier('factor')} float factor; ${this.getVarModifier('power')} float power; `; } getUniformAttrs() { return [ { name: 'factor', type: 'float' }, { name: 'power', type: 'float' }, ]; } } //# sourceMappingURL=powerScalar.js.map