# This file is generated by objective.metadata
#
# Last update: Sun Nov 15 12:38:35 2020
#
# flake8: noqa

import objc, sys

if sys.maxsize > 2 ** 32:
    def sel32or64(a, b): return b
else:
    def sel32or64(a, b): return a

misc = {
}
constants = '''$$'''
enums = '''$MLCActivationTypeAbsolute@6$MLCActivationTypeCELU@13$MLCActivationTypeCount@19$MLCActivationTypeELU@9$MLCActivationTypeGELU@18$MLCActivationTypeHardShrink@14$MLCActivationTypeHardSigmoid@4$MLCActivationTypeLinear@2$MLCActivationTypeLogSigmoid@11$MLCActivationTypeNone@0$MLCActivationTypeReLU@1$MLCActivationTypeReLUN@10$MLCActivationTypeSELU@12$MLCActivationTypeSigmoid@3$MLCActivationTypeSoftPlus@7$MLCActivationTypeSoftShrink@15$MLCActivationTypeSoftSign@8$MLCActivationTypeTanh@5$MLCActivationTypeTanhShrink@16$MLCActivationTypeThreshold@17$MLCArithmeticOperationAcos@13$MLCArithmeticOperationAcosh@19$MLCArithmeticOperationAdd@0$MLCArithmeticOperationAsin@12$MLCArithmeticOperationAsinh@18$MLCArithmeticOperationAtan@14$MLCArithmeticOperationAtanh@20$MLCArithmeticOperationCeil@6$MLCArithmeticOperationCos@10$MLCArithmeticOperationCosh@16$MLCArithmeticOperationCount@26$MLCArithmeticOperationDivide@3$MLCArithmeticOperationExp@22$MLCArithmeticOperationExp2@23$MLCArithmeticOperationFloor@4$MLCArithmeticOperationLog@24$MLCArithmeticOperationLog2@25$MLCArithmeticOperationMultiply@2$MLCArithmeticOperationPow@21$MLCArithmeticOperationRound@5$MLCArithmeticOperationRsqrt@8$MLCArithmeticOperationSin@9$MLCArithmeticOperationSinh@15$MLCArithmeticOperationSqrt@7$MLCArithmeticOperationSubtract@1$MLCArithmeticOperationTan@11$MLCArithmeticOperationTanh@17$MLCConvolutionTypeDepthwise@2$MLCConvolutionTypeStandard@0$MLCConvolutionTypeTransposed@1$MLCDataTypeBoolean@4$MLCDataTypeFloat32@1$MLCDataTypeInt32@7$MLCDataTypeInt64@5$MLCDataTypeInvalid@0$MLCDeviceTypeAny@2$MLCDeviceTypeCPU@0$MLCDeviceTypeCount@3$MLCDeviceTypeGPU@1$MLCExecutionOptionsForwardForInference@8$MLCExecutionOptionsForwardOnlyForInference@8$MLCExecutionOptionsNone@0$MLCExecutionOptionsProfiling@4$MLCExecutionOptionsSkipWritingInputDataToDevice@1$MLCExecutionOptionsSynchronous@2$MLCGraphCompilationOptionsComputeAllGradients@8$MLCGraphCompilationOptionsDebugLayers@1$MLCGraphCompilationOptionsDisableLayerFusion@2$MLCGraphCompilationOptionsLinkGraphs@4$MLCGraphCompilationOptionsNone@0$MLCLSTMResultModeOutput@0$MLCLSTMResultModeOutputAndStates@1$MLCLossTypeCategoricalCrossEntropy@4$MLCLossTypeCosineDistance@7$MLCLossTypeCount@9$MLCLossTypeHinge@5$MLCLossTypeHuber@6$MLCLossTypeLog@8$MLCLossTypeMeanAbsoluteError@0$MLCLossTypeMeanSquaredError@1$MLCLossTypeSigmoidCrossEntropy@3$MLCLossTypeSoftmaxCrossEntropy@2$MLCPaddingPolicySame@0$MLCPaddingPolicyUsePaddingSize@2$MLCPaddingPolicyValid@1$MLCPaddingTypeConstant@3$MLCPaddingTypeReflect@1$MLCPaddingTypeSymmetric@2$MLCPaddingTypeZero@0$MLCPoolingTypeAverage@2$MLCPoolingTypeCount@4$MLCPoolingTypeL2Norm@3$MLCPoolingTypeMax@1$MLCRandomInitializerTypeCount@4$MLCRandomInitializerTypeGlorotUniform@2$MLCRandomInitializerTypeInvalid@0$MLCRandomInitializerTypeUniform@1$MLCRandomInitializerTypeXavier@3$MLCReductionTypeArgMax@5$MLCReductionTypeArgMin@6$MLCReductionTypeCount@7$MLCReductionTypeMax@3$MLCReductionTypeMean@2$MLCReductionTypeMin@4$MLCReductionTypeNone@0$MLCReductionTypeSum@1$MLCRegularizationTypeL1@1$MLCRegularizationTypeL2@2$MLCRegularizationTypeNone@0$MLCSampleModeLinear@1$MLCSampleModeNearest@0$MLCSoftmaxOperationLogSoftmax@1$MLCSoftmaxOperationSoftmax@0$'''
misc.update({})
functions={'MLCReductionTypeDebugDescription': (b'@i',), 'MLCActivationTypeDebugDescription': (b'@i',), 'MLCLossTypeDebugDescription': (b'@i',), 'MLCPoolingTypeDebugDescription': (b'@i',), 'MLCArithmeticOperationDebugDescription': (b'@i',), 'MLCPaddingPolicyDebugDescription': (b'@i',), 'MLCConvolutionTypeDebugDescription': (b'@i',), 'MLCSoftmaxOperationDebugDescription': (b'@i',), 'MLCPaddingTypeDebugDescription': (b'@i',), 'MLCSampleModeDebugDescription': (b'@i',)}
r = objc.registerMetaDataForSelector
objc._updatingMetadata(True)
try:
    r(b'MLCConvolutionDescriptor', b'isConvolutionTranspose', {'retval': {'type': b'Z'}})
    r(b'MLCConvolutionDescriptor', b'usesDepthwiseConvolution', {'retval': {'type': b'Z'}})
    r(b'MLCDevice', b'deviceWithType:selectsMultipleComputeDevices:', {'arguments': {3: {'type': 'Z'}}})
    r(b'MLCEmbeddingDescriptor', b'descriptorWithEmbeddingCount:embeddingDimension:paddingIndex:maximumNorm:pNorm:scalesGradientByFrequency:', {'arguments': {7: {'type': b'Z'}}})
    r(b'MLCEmbeddingDescriptor', b'scalesGradientByFrequency', {'retval': {'type': b'Z'}})
    r(b'MLCGraph', b'bindAndWriteData:forInputs:toDevice:batchSize:synchronous:', {'retval': {'type': b'Z'}, 'arguments': {6: {'type': b'Z'}}})
    r(b'MLCGraph', b'bindAndWriteData:forInputs:toDevice:synchronous:', {'retval': {'type': 'Z'}, 'arguments': {5: {'type': 'Z'}}})
    r(b'MLCGraph', b'nodeWithLayer:sources:disableUpdate:', {'arguments': {4: {'type': b'Z'}}})
    r(b'MLCInferenceGraph', b'addInputs:', {'retval': {'type': b'Z'}})
    r(b'MLCInferenceGraph', b'addInputs:lossLabels:lossLabelWeights:', {'retval': {'type': b'Z'}})
    r(b'MLCInferenceGraph', b'addOutputs:', {'retval': {'type': b'Z'}})
    r(b'MLCInferenceGraph', b'compileWithOptions:device:', {'retval': {'type': b'Z'}})
    r(b'MLCInferenceGraph', b'executeWithInputsData:batchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {5: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCInferenceGraph', b'executeWithInputsData:lossLabelsData:lossLabelWeightsData:batchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {7: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCInferenceGraph', b'executeWithInputsData:lossLabelsData:lossLabelWeightsData:outputsData:batchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {8: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCInferenceGraph', b'executeWithInputsData:outputsData:batchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {6: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCInferenceGraph', b'linkWithGraphs:', {'retval': {'type': b'Z'}})
    r(b'MLCLSTMDescriptor', b'batchFirst', {'retval': {'type': b'Z'}})
    r(b'MLCLSTMDescriptor', b'descriptorWithInputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:dropout:', {'arguments': {5: {'type': b'Z'}, 6: {'type': b'Z'}, 7: {'type': b'Z'}}})
    r(b'MLCLSTMDescriptor', b'descriptorWithInputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:returnsSequences:dropout:', {'arguments': {5: {'type': b'Z'}, 6: {'type': b'Z'}, 7: {'type': b'Z'}, 8: {'type': b'Z'}}})
    r(b'MLCLSTMDescriptor', b'descriptorWithInputSize:hiddenSize:layerCount:usesBiases:batchFirst:isBidirectional:returnsSequences:dropout:resultMode:', {'arguments': {5: {'type': 'Z'}, 6: {'type': 'Z'}, 7: {'type': 'Z'}, 8: {'type': 'Z'}}})
    r(b'MLCLSTMDescriptor', b'descriptorWithInputSize:hiddenSize:layerCount:usesBiases:isBidirectional:dropout:', {'arguments': {5: {'type': b'Z'}, 6: {'type': b'Z'}}})
    r(b'MLCLSTMDescriptor', b'isBidirectional', {'retval': {'type': b'Z'}})
    r(b'MLCLSTMDescriptor', b'returnsSequences', {'retval': {'type': b'Z'}})
    r(b'MLCLSTMDescriptor', b'usesBiases', {'retval': {'type': b'Z'}})
    r(b'MLCLayer', b'isDebuggingEnabled', {'retval': {'type': b'Z'}})
    r(b'MLCLayer', b'setIsDebuggingEnabled:', {'arguments': {2: {'type': b'Z'}}})
    r(b'MLCLayer', b'supportsDataType:onDevice:', {'retval': {'type': 'Z'}})
    r(b'MLCMatMulDescriptor', b'descriptorWithAlpha:transposesX:transposesY:', {'arguments': {3: {'type': b'Z'}, 4: {'type': b'Z'}}})
    r(b'MLCMatMulDescriptor', b'transposesX', {'retval': {'type': b'Z'}})
    r(b'MLCMatMulDescriptor', b'transposesY', {'retval': {'type': b'Z'}})
    r(b'MLCMultiheadAttentionDescriptor', b'addsZeroAttention', {'retval': {'type': b'Z'}})
    r(b'MLCMultiheadAttentionDescriptor', b'descriptorWithModelDimension:keyDimension:valueDimension:headCount:dropout:hasBiases:hasAttentionBiases:addsZeroAttention:', {'arguments': {7: {'type': b'Z'}, 8: {'type': b'Z'}, 9: {'type': b'Z'}}})
    r(b'MLCMultiheadAttentionDescriptor', b'hasAttentionBiases', {'retval': {'type': b'Z'}})
    r(b'MLCMultiheadAttentionDescriptor', b'hasBiases', {'retval': {'type': b'Z'}})
    r(b'MLCOptimizer', b'appliesGradientClipping', {'retval': {'type': b'Z'}})
    r(b'MLCOptimizer', b'setAppliesGradientClipping:', {'arguments': {2: {'type': b'Z'}}})
    r(b'MLCOptimizerDescriptor', b'appliesGradientClipping', {'retval': {'type': b'Z'}})
    r(b'MLCOptimizerDescriptor', b'descriptorWithLearningRate:gradientRescale:appliesGradientClipping:gradientClipMax:gradientClipMin:regularizationType:regularizationScale:', {'arguments': {4: {'type': b'Z'}}})
    r(b'MLCPoolingDescriptor', b'averagePoolingDescriptorWithKernelSizes:strides:dilationRates:paddingPolicy:paddingSizes:countIncludesPadding:', {'arguments': {7: {'type': b'Z'}}})
    r(b'MLCPoolingDescriptor', b'averagePoolingDescriptorWithKernelSizes:strides:paddingPolicy:paddingSizes:countIncludesPadding:', {'arguments': {6: {'type': b'Z'}}})
    r(b'MLCPoolingDescriptor', b'countIncludesPadding', {'retval': {'type': b'Z'}})
    r(b'MLCRMSPropOptimizer', b'isCentered', {'retval': {'type': b'Z'}})
    r(b'MLCRMSPropOptimizer', b'optimizerWithDescriptor:momentumScale:alpha:epsilon:isCentered:', {'arguments': {6: {'type': b'Z'}}})
    r(b'MLCSGDOptimizer', b'optimizerWithDescriptor:momentumScale:usesNesterovMomentum:', {'arguments': {4: {'type': 'Z'}}})
    r(b'MLCSGDOptimizer', b'optimizerWithDescriptor:momentumScale:usesNestrovMomentum:', {'arguments': {4: {'type': b'Z'}}})
    r(b'MLCSGDOptimizer', b'usesNesterovMomentum', {'retval': {'type': 'Z'}})
    r(b'MLCSGDOptimizer', b'usesNestrovMomentum', {'retval': {'type': b'Z'}})
    r(b'MLCTensor', b'bindAndWriteData:toDevice:', {'retval': {'type': b'Z'}})
    r(b'MLCTensor', b'bindOptimizerData:deviceData:', {'retval': {'type': 'Z'}})
    r(b'MLCTensor', b'copyDataFromDeviceMemoryToBytes:length:synchronizeWithDevice:', {'retval': {'type': b'Z'}, 'arguments': {4: {'type': b'Z'}}})
    r(b'MLCTensor', b'hasValidNumerics', {'retval': {'type': b'Z'}})
    r(b'MLCTensor', b'optimizerData:', {'retval': {'type': b'Z'}})
    r(b'MLCTensor', b'synchronizeData', {'retval': {'type': b'Z'}})
    r(b'MLCTensor', b'synchronizeOptimizerData', {'retval': {'type': 'Z'}})
    r(b'MLCTensor', b'tensorWithSequenceLengths:sortedSequences:featureChannelCount:batchSize:data:', {'arguments': {3: {'type': b'Z'}}})
    r(b'MLCTensor', b'tensorWithSequenceLengths:sortedSequences:featureChannelCount:batchSize:randomInitializerType:', {'arguments': {3: {'type': b'Z'}}})
    r(b'MLCTensorData', b'bytes', {'retval': {'c_array_of_variable_size': True}})
    r(b'MLCTensorData', b'dataWithBytesNoCopy:length:', {'arguments': {2: {'type_modifier': b'n', 'c_array_length_in_arg': 3}}})
    r(b'MLCTensorData', b'dataWithImmutableBytesNoCopy:length:', {'arguments': {2: {'type_modifier': b'n', 'c_array_length_in_arg': 3}}})
    r(b'MLCTensorDescriptor', b'descriptorWithShape:sequenceLengths:sortedSequences:dataType:', {'arguments': {4: {'type': b'Z'}}})
    r(b'MLCTensorDescriptor', b'sortedSequences', {'retval': {'type': b'Z'}})
    r(b'MLCTensorParameter', b'isUpdatable', {'retval': {'type': b'Z'}})
    r(b'MLCTensorParameter', b'setIsUpdatable:', {'arguments': {2: {'type': b'Z'}}})
    r(b'MLCTrainingGraph', b'addInputs:lossLabels:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'addInputs:lossLabels:lossLabelWeights:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'addOutputs:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'bindOptimizerData:deviceData:withTensor:', {'retval': {'type': 'Z'}})
    r(b'MLCTrainingGraph', b'compileOptimizer:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'compileWithOptions:device:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'executeForwardWithBatchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {4: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCTrainingGraph', b'executeForwardWithBatchSize:options:outputsData:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {5: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCTrainingGraph', b'executeGradientWithBatchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {4: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCTrainingGraph', b'executeGradientWithBatchSize:options:outputsData:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {5: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCTrainingGraph', b'executeOptimizerUpdateWithOptions:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {3: {'callable': {'retval': {'type': b'@?'}, 'arguments': {0: {'type': b'^v'}}}}}})
    r(b'MLCTrainingGraph', b'executeWithInputsData:lossLabelsData:lossLabelWeightsData:batchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {7: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCTrainingGraph', b'executeWithInputsData:lossLabelsData:lossLabelWeightsData:outputsData:batchSize:options:completionHandler:', {'retval': {'type': b'Z'}, 'arguments': {8: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}, 3: {'type': b'd'}}}}}})
    r(b'MLCTrainingGraph', b'linkWithGraphs:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'setTrainingTensorParameters:', {'retval': {'type': b'Z'}})
    r(b'MLCTrainingGraph', b'stopGradientForTensors:', {'retval': {'type': b'Z'}})
    r(b'MLCUpsampleLayer', b'alignsCorners', {'retval': {'type': b'Z'}})
    r(b'MLCUpsampleLayer', b'layerWithShape:sampleMode:alignsCorners:', {'arguments': {4: {'type': b'Z'}}})
    r(b'MLCYOLOLossDescriptor', b'setShouldRescore:', {'arguments': {2: {'type': b'Z'}}})
    r(b'MLCYOLOLossDescriptor', b'shouldRescore', {'retval': {'type': b'Z'}})
finally:
    objc._updatingMetadata(False)
expressions = {}

# END OF FILE
