@hoff97/tensor-js
Version:
PyTorch like deep learning inferrence library
45 lines (44 loc) • 1.45 kB
JavaScript
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