in tfjs-backend-webgpu/src/binary_op_util.ts [171:215]
export function getBinaryOpString(
type: BinaryOpType, useVec4?: boolean): string {
switch (type) {
case BinaryOpType.MUL:
return MUL;
case BinaryOpType.ADD:
return ADD;
case BinaryOpType.SUB:
return SUB;
case BinaryOpType.DIV:
return DIV;
case BinaryOpType.EQUAL:
return useVec4 ? EQUAL_VEC4 : EQUAL;
case BinaryOpType.GREATER:
return useVec4 ? GREATER_VEC4 : GREATER;
case BinaryOpType.GREATER_EQUAL:
return useVec4 ? GREATER_EQUAL_VEC4 : GREATER_EQUAL;
case BinaryOpType.LESS:
return useVec4 ? LESS_VEC4 : LESS;
case BinaryOpType.LESS_EQUAL:
return useVec4 ? LESS_EQUAL_VEC4 : LESS_EQUAL;
case BinaryOpType.LOGICAL_AND:
return useVec4 ? LOGICAL_AND_VEC4 : LOGICAL_AND;
case BinaryOpType.NOT_EQUAL:
return useVec4 ? NOT_EQUAL_VEC4 : NOT_EQUAL;
case BinaryOpType.SQUARED_DIFFERENCE:
return SQUARED_DIFFERENCE;
case BinaryOpType.INT_DIV:
return useVec4 ? INT_DIV_VEC4 : INT_DIV;
case BinaryOpType.PRELU:
return useVec4 ? PRELU_VEC4 : PRELU;
case BinaryOpType.MAX:
return getMinMaxString('max', useVec4);
case BinaryOpType.MIN:
return getMinMaxString('min', useVec4);
case BinaryOpType.POW:
return useVec4 ? POW_VEC4 : POW;
case BinaryOpType.COMPLEX_MULTIPLY_REAL:
return COMPLEX_MULTIPLY_REAL;
case BinaryOpType.COMPLEX_MULTIPLY_IMAG:
return COMPLEX_MULTIPLY_IMAG;
default:
throw new Error(`BinaryType ${type} is not implemented!`);
}
}