Model::DmlDispatchableDesc::BindPoints GetBindPoints()

in DxDispatch/src/model/JsonParsersGenerated.cpp [4505:4667]


Model::DmlDispatchableDesc::BindPoints GetBindPoints(const DML_OPERATOR_DESC& desc)
{
    switch (desc.Type)
    {
    case DML_OPERATOR_ELEMENT_WISE_IDENTITY: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ABS: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ABS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ACOS: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ACOS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ADD: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ADD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ASIN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ASIN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ATAN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ATAN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_CEIL: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_CEIL_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_CLIP: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_CLIP_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_CLIP1: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_CLIP1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_CLIP_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD1: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_CLIP_GRAD1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_COS: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_COS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_DIVIDE: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_EXP: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_EXP_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_FLOOR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOG: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOG_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_MAX: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_MAX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_MEAN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_MEAN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_MIN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_MIN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_MULTIPLY: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_POW: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_POW_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_RECIP: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_RECIP_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_SIN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_SIN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_SQRT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_SQRT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_DIFFERENCE_SQUARE: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_DIFFERENCE_SQUARE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ATAN_YX: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ATAN_YX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_SUBTRACT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_TAN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_TAN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_THRESHOLD: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_CONVOLUTION: return GetBindPoints(*reinterpret_cast<const DML_CONVOLUTION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_GEMM: return GetBindPoints(*reinterpret_cast<const DML_GEMM_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_REDUCE: return GetBindPoints(*reinterpret_cast<const DML_REDUCE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ARGMIN: return GetBindPoints(*reinterpret_cast<const DML_ARGMIN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ARGMAX: return GetBindPoints(*reinterpret_cast<const DML_ARGMAX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_AVERAGE_POOLING: return GetBindPoints(*reinterpret_cast<const DML_AVERAGE_POOLING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_LP_POOLING: return GetBindPoints(*reinterpret_cast<const DML_LP_POOLING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MAX_POOLING: return GetBindPoints(*reinterpret_cast<const DML_MAX_POOLING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MAX_POOLING1: return GetBindPoints(*reinterpret_cast<const DML_MAX_POOLING1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ROI_POOLING: return GetBindPoints(*reinterpret_cast<const DML_ROI_POOLING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SLICE: return GetBindPoints(*reinterpret_cast<const DML_SLICE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_CAST: return GetBindPoints(*reinterpret_cast<const DML_CAST_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SPLIT: return GetBindPoints(*reinterpret_cast<const DML_SPLIT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_JOIN: return GetBindPoints(*reinterpret_cast<const DML_JOIN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_PADDING: return GetBindPoints(*reinterpret_cast<const DML_PADDING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_PADDING1: return GetBindPoints(*reinterpret_cast<const DML_PADDING1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_VALUE_SCALE_2D: return GetBindPoints(*reinterpret_cast<const DML_VALUE_SCALE_2D_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_UPSAMPLE_2D: return GetBindPoints(*reinterpret_cast<const DML_UPSAMPLE_2D_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_GATHER: return GetBindPoints(*reinterpret_cast<const DML_GATHER_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SPACE_TO_DEPTH: return GetBindPoints(*reinterpret_cast<const DML_SPACE_TO_DEPTH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_DEPTH_TO_SPACE: return GetBindPoints(*reinterpret_cast<const DML_DEPTH_TO_SPACE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_TILE: return GetBindPoints(*reinterpret_cast<const DML_TILE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_TOP_K: return GetBindPoints(*reinterpret_cast<const DML_TOP_K_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_BATCH_NORMALIZATION: return GetBindPoints(*reinterpret_cast<const DML_BATCH_NORMALIZATION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_BATCH_NORMALIZATION_GRAD: return GetBindPoints(*reinterpret_cast<const DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_BATCH_NORMALIZATION_TRAINING_GRAD: return GetBindPoints(*reinterpret_cast<const DML_BATCH_NORMALIZATION_TRAINING_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION: return GetBindPoints(*reinterpret_cast<const DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION: return GetBindPoints(*reinterpret_cast<const DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION_GRAD: return GetBindPoints(*reinterpret_cast<const DML_LOCAL_RESPONSE_NORMALIZATION_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_LP_NORMALIZATION: return GetBindPoints(*reinterpret_cast<const DML_LP_NORMALIZATION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_RNN: return GetBindPoints(*reinterpret_cast<const DML_RNN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_LSTM: return GetBindPoints(*reinterpret_cast<const DML_LSTM_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_GRU: return GetBindPoints(*reinterpret_cast<const DML_GRU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_SIGN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_SIGN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_IS_NAN: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_NEGATE: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_NEGATE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ERF: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ERF_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_SINH: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_SINH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_COSH: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_COSH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_TANH: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_TANH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ASINH: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ASINH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ACOSH: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ATANH: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ATANH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_IF: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_IF_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ADD1: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ADD1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MAX_UNPOOLING: return GetBindPoints(*reinterpret_cast<const DML_MAX_UNPOOLING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_DIAGONAL_MATRIX: return GetBindPoints(*reinterpret_cast<const DML_DIAGONAL_MATRIX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SCATTER: return GetBindPoints(*reinterpret_cast<const DML_SCATTER_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ONE_HOT: return GetBindPoints(*reinterpret_cast<const DML_ONE_HOT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_RESAMPLE: return GetBindPoints(*reinterpret_cast<const DML_RESAMPLE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_SHIFT_LEFT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_SHIFT_RIGHT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_ROUND: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_ROUND_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_IS_INFINITY: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_IS_INFINITY_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_MODULUS_TRUNCATE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_MODULUS_FLOOR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_FILL_VALUE_CONSTANT: return GetBindPoints(*reinterpret_cast<const DML_FILL_VALUE_CONSTANT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_FILL_VALUE_SEQUENCE: return GetBindPoints(*reinterpret_cast<const DML_FILL_VALUE_SEQUENCE_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_CUMULATIVE_SUMMATION: return GetBindPoints(*reinterpret_cast<const DML_CUMULATIVE_SUMMATION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_CUMULATIVE_PRODUCT: return GetBindPoints(*reinterpret_cast<const DML_CUMULATIVE_PRODUCT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_REVERSE_SUBSEQUENCES: return GetBindPoints(*reinterpret_cast<const DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_GATHER_ELEMENTS: return GetBindPoints(*reinterpret_cast<const DML_GATHER_ELEMENTS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_GATHER_ND: return GetBindPoints(*reinterpret_cast<const DML_GATHER_ND_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SCATTER_ND: return GetBindPoints(*reinterpret_cast<const DML_SCATTER_ND_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MAX_POOLING2: return GetBindPoints(*reinterpret_cast<const DML_MAX_POOLING2_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SLICE1: return GetBindPoints(*reinterpret_cast<const DML_SLICE1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_TOP_K1: return GetBindPoints(*reinterpret_cast<const DML_TOP_K1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_DEPTH_TO_SPACE1: return GetBindPoints(*reinterpret_cast<const DML_DEPTH_TO_SPACE1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SPACE_TO_DEPTH1: return GetBindPoints(*reinterpret_cast<const DML_SPACE_TO_DEPTH1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1: return GetBindPoints(*reinterpret_cast<const DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_RESAMPLE1: return GetBindPoints(*reinterpret_cast<const DML_RESAMPLE1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MATRIX_MULTIPLY_INTEGER: return GetBindPoints(*reinterpret_cast<const DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_QUANTIZED_LINEAR_MATRIX_MULTIPLY: return GetBindPoints(*reinterpret_cast<const DML_QUANTIZED_LINEAR_MATRIX_MULTIPLY_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_CONVOLUTION_INTEGER: return GetBindPoints(*reinterpret_cast<const DML_CONVOLUTION_INTEGER_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION: return GetBindPoints(*reinterpret_cast<const DML_QUANTIZED_LINEAR_CONVOLUTION_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_AND: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_AND_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_OR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_OR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_XOR: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_XOR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_NOT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_NOT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_BIT_COUNT: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_BIT_COUNT_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_RELU_GRAD: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_RELU_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_AVERAGE_POOLING_GRAD: return GetBindPoints(*reinterpret_cast<const DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_MAX_POOLING_GRAD: return GetBindPoints(*reinterpret_cast<const DML_MAX_POOLING_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_RANDOM_GENERATOR: return GetBindPoints(*reinterpret_cast<const DML_RANDOM_GENERATOR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_NONZERO_COORDINATES: return GetBindPoints(*reinterpret_cast<const DML_NONZERO_COORDINATES_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_RESAMPLE_GRAD: return GetBindPoints(*reinterpret_cast<const DML_RESAMPLE_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_SLICE_GRAD: return GetBindPoints(*reinterpret_cast<const DML_SLICE_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ADAM_OPTIMIZER: return GetBindPoints(*reinterpret_cast<const DML_ADAM_OPTIMIZER_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ROI_ALIGN: return GetBindPoints(*reinterpret_cast<const DML_ROI_ALIGN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ROI_ALIGN1: return GetBindPoints(*reinterpret_cast<const DML_ROI_ALIGN1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_GATHER_ND1: return GetBindPoints(*reinterpret_cast<const DML_GATHER_ND1_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_DYNAMIC_QUANTIZE_LINEAR: return GetBindPoints(*reinterpret_cast<const DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ELEMENT_WISE_QUANTIZED_LINEAR_ADD: return GetBindPoints(*reinterpret_cast<const DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ROI_ALIGN_GRAD: return GetBindPoints(*reinterpret_cast<const DML_ROI_ALIGN_GRAD_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_BATCH_NORMALIZATION_TRAINING: return GetBindPoints(*reinterpret_cast<const DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_ELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_ELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_CELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_CELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_HARDMAX: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_HARDMAX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_HARD_SIGMOID: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_IDENTITY: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_IDENTITY_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_LEAKY_RELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_LINEAR: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_LINEAR_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_LOG_SOFTMAX: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_RELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_RELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SCALED_ELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SCALED_TANH: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SIGMOID: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SIGMOID_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SOFTMAX: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SOFTMAX_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SOFTPLUS: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SOFTSIGN: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_TANH: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_TANH_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC*>(desc.Desc));
    case DML_OPERATOR_ACTIVATION_SHRINK: return GetBindPoints(*reinterpret_cast<const DML_ACTIVATION_SHRINK_OPERATOR_DESC*>(desc.Desc));
    }
    throw std::invalid_argument("Unknown operator type.");
}