objc2_ml_compute/generated/
MLCAdamOptimizer.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10extern_class!(
11    /// The MLCAdamOptimizer specifies the Adam optimizer.
12    ///
13    /// See also [Apple's documentation](https://developer.apple.com/documentation/mlcompute/mlcadamoptimizer?language=objc)
14    #[unsafe(super(MLCOptimizer, NSObject))]
15    #[derive(Debug, PartialEq, Eq, Hash)]
16    #[cfg(feature = "MLCOptimizer")]
17    #[deprecated]
18    pub struct MLCAdamOptimizer;
19);
20
21#[cfg(feature = "MLCOptimizer")]
22extern_conformance!(
23    unsafe impl NSCopying for MLCAdamOptimizer {}
24);
25
26#[cfg(feature = "MLCOptimizer")]
27unsafe impl CopyingHelper for MLCAdamOptimizer {
28    type Result = Self;
29}
30
31#[cfg(feature = "MLCOptimizer")]
32extern_conformance!(
33    unsafe impl NSObjectProtocol for MLCAdamOptimizer {}
34);
35
36#[cfg(feature = "MLCOptimizer")]
37impl MLCAdamOptimizer {
38    extern_methods!(
39        /// Coefficent used for computing running averages of gradient.
40        ///
41        /// The default is 0.9.
42        #[deprecated]
43        #[unsafe(method(beta1))]
44        #[unsafe(method_family = none)]
45        pub unsafe fn beta1(&self) -> c_float;
46
47        /// Coefficent used for computing running averages of square of gradient.
48        ///
49        /// The default is 0.999.
50        #[deprecated]
51        #[unsafe(method(beta2))]
52        #[unsafe(method_family = none)]
53        pub unsafe fn beta2(&self) -> c_float;
54
55        /// A term added to improve numerical stability.
56        ///
57        /// The default is 1e-8.
58        #[deprecated]
59        #[unsafe(method(epsilon))]
60        #[unsafe(method_family = none)]
61        pub unsafe fn epsilon(&self) -> c_float;
62
63        /// Whether to use the AMSGrad variant of this algorithm
64        ///
65        /// The default is false
66        #[deprecated]
67        #[unsafe(method(usesAMSGrad))]
68        #[unsafe(method_family = none)]
69        pub unsafe fn usesAMSGrad(&self) -> bool;
70
71        /// The current timestep used for the update.
72        ///
73        /// The default is 1.
74        #[deprecated]
75        #[unsafe(method(timeStep))]
76        #[unsafe(method_family = none)]
77        pub unsafe fn timeStep(&self) -> NSUInteger;
78
79        #[cfg(feature = "MLCOptimizerDescriptor")]
80        /// Create a MLCAdamOptimizer object with defaults
81        ///
82        /// Returns: A new MLCAdamOptimizer object.
83        #[deprecated]
84        #[unsafe(method(optimizerWithDescriptor:))]
85        #[unsafe(method_family = none)]
86        pub unsafe fn optimizerWithDescriptor(
87            optimizer_descriptor: &MLCOptimizerDescriptor,
88        ) -> Retained<Self>;
89
90        #[cfg(feature = "MLCOptimizerDescriptor")]
91        /// Create a MLCAdamOptimizer object
92        ///
93        /// Parameter `optimizerDescriptor`: The optimizer descriptor object
94        ///
95        /// Parameter `beta1`: The beta1 value
96        ///
97        /// Parameter `beta2`: The beta2 value
98        ///
99        /// Parameter `epsilon`: The epsilon value to use to improve numerical stability
100        ///
101        /// Parameter `timeStep`: The initial timestep to use for the update
102        ///
103        /// Returns: A new MLCAdamOptimizer object.
104        #[deprecated]
105        #[unsafe(method(optimizerWithDescriptor:beta1:beta2:epsilon:timeStep:))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn optimizerWithDescriptor_beta1_beta2_epsilon_timeStep(
108            optimizer_descriptor: &MLCOptimizerDescriptor,
109            beta1: c_float,
110            beta2: c_float,
111            epsilon: c_float,
112            time_step: NSUInteger,
113        ) -> Retained<Self>;
114
115        #[cfg(feature = "MLCOptimizerDescriptor")]
116        /// Create a MLCAdamOptimizer object
117        ///
118        /// Parameter `optimizerDescriptor`: The optimizer descriptor object
119        ///
120        /// Parameter `beta1`: The beta1 value
121        ///
122        /// Parameter `beta2`: The beta2 value
123        ///
124        /// Parameter `epsilon`: The epsilon value to use to improve numerical stability
125        ///
126        /// Parameter `usesAMSGrad`: Whether to use the AMSGrad variant of this algorithm from the paper (https://arxiv.org/abs/1904.09237)
127        ///
128        /// Parameter `timeStep`: The initial timestep to use for the update
129        ///
130        /// Returns: A new MLCAdamOptimizer object.
131        #[unsafe(method(optimizerWithDescriptor:beta1:beta2:epsilon:usesAMSGrad:timeStep:))]
132        #[unsafe(method_family = none)]
133        pub unsafe fn optimizerWithDescriptor_beta1_beta2_epsilon_usesAMSGrad_timeStep(
134            optimizer_descriptor: &MLCOptimizerDescriptor,
135            beta1: c_float,
136            beta2: c_float,
137            epsilon: c_float,
138            uses_ams_grad: bool,
139            time_step: NSUInteger,
140        ) -> Retained<Self>;
141    );
142}
143
144/// Methods declared on superclass `MLCOptimizer`.
145#[cfg(feature = "MLCOptimizer")]
146impl MLCAdamOptimizer {
147    extern_methods!(
148        #[deprecated]
149        #[unsafe(method(new))]
150        #[unsafe(method_family = new)]
151        pub unsafe fn new() -> Retained<Self>;
152
153        #[deprecated]
154        #[unsafe(method(init))]
155        #[unsafe(method_family = init)]
156        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
157    );
158}