objc2-ml-compute 0.3.2

Bindings to the MLCompute framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

extern_class!(
    /// The MLCEmbeddingDescriptor specifies an embedding layer descriptor
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/mlcompute/mlcembeddingdescriptor?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    #[deprecated]
    pub struct MLCEmbeddingDescriptor;
);

extern_conformance!(
    unsafe impl NSCopying for MLCEmbeddingDescriptor {}
);

unsafe impl CopyingHelper for MLCEmbeddingDescriptor {
    type Result = Self;
}

extern_conformance!(
    unsafe impl NSObjectProtocol for MLCEmbeddingDescriptor {}
);

impl MLCEmbeddingDescriptor {
    extern_methods!(
        #[deprecated]
        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;

        #[deprecated]
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        /// The size of the dictionary
        #[deprecated]
        #[unsafe(method(embeddingCount))]
        #[unsafe(method_family = none)]
        pub unsafe fn embeddingCount(&self) -> Retained<NSNumber>;

        /// The dimension of embedding vectors
        #[deprecated]
        #[unsafe(method(embeddingDimension))]
        #[unsafe(method_family = none)]
        pub unsafe fn embeddingDimension(&self) -> Retained<NSNumber>;

        /// If set, the embedding vector at paddingIndex is initialized with zero and will not be updated in gradient pass, Default=nil
        #[deprecated]
        #[unsafe(method(paddingIndex))]
        #[unsafe(method_family = none)]
        pub unsafe fn paddingIndex(&self) -> Option<Retained<NSNumber>>;

        /// A float, if set, in the forward pass only, the selected embedding vectors will be re-normalized to have an Lp norm of less than maximumNorm in the dictionary, Default=nil
        #[deprecated]
        #[unsafe(method(maximumNorm))]
        #[unsafe(method_family = none)]
        pub unsafe fn maximumNorm(&self) -> Option<Retained<NSNumber>>;

        /// A float, the p of the Lp norm, can be set to infinity norm by [NSNumber numberWithFloat:INFINITY]. Default=2.0
        #[deprecated]
        #[unsafe(method(pNorm))]
        #[unsafe(method_family = none)]
        pub unsafe fn pNorm(&self) -> Option<Retained<NSNumber>>;

        /// If set, the gradients are scaled by the inverse of the frequency of the words in batch before the weight update. Default=NO
        #[deprecated]
        #[unsafe(method(scalesGradientByFrequency))]
        #[unsafe(method_family = none)]
        pub unsafe fn scalesGradientByFrequency(&self) -> bool;

        #[deprecated]
        #[unsafe(method(descriptorWithEmbeddingCount:embeddingDimension:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithEmbeddingCount_embeddingDimension(
            embedding_count: &NSNumber,
            embedding_dimension: &NSNumber,
        ) -> Option<Retained<Self>>;

        #[deprecated]
        #[unsafe(method(descriptorWithEmbeddingCount:embeddingDimension:paddingIndex:maximumNorm:pNorm:scalesGradientByFrequency:))]
        #[unsafe(method_family = none)]
        pub unsafe fn descriptorWithEmbeddingCount_embeddingDimension_paddingIndex_maximumNorm_pNorm_scalesGradientByFrequency(
            embedding_count: &NSNumber,
            embedding_dimension: &NSNumber,
            padding_index: Option<&NSNumber>,
            maximum_norm: Option<&NSNumber>,
            p_norm: Option<&NSNumber>,
            scales_gradient_by_frequency: bool,
        ) -> Option<Retained<Self>>;
    );
}