1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7use objc2_metal::*;
8
9use crate::*;
10
11extern_protocol!(
12 pub unsafe trait MPSHandle: NSSecureCoding + NSObjectProtocol {
92 #[unsafe(method(label))]
96 #[unsafe(method_family = none)]
97 unsafe fn label(&self) -> Option<Retained<NSString>>;
98 }
99);
100
101extern_protocol!(
102 pub unsafe trait MPSNNTrainableNode: NSObjectProtocol {
104 #[cfg(feature = "MPSNeuralNetworkTypes")]
105 #[unsafe(method(trainingStyle))]
109 #[unsafe(method_family = none)]
110 unsafe fn trainingStyle(&self) -> MPSNNTrainingStyle;
111
112 #[cfg(feature = "MPSNeuralNetworkTypes")]
113 #[unsafe(method(setTrainingStyle:))]
115 #[unsafe(method_family = none)]
116 unsafe fn setTrainingStyle(&self, training_style: MPSNNTrainingStyle);
117 }
118);
119
120extern_class!(
121 #[unsafe(super(NSObject))]
133 #[derive(Debug, PartialEq, Eq, Hash)]
134 pub struct MPSNNImageNode;
135);
136
137extern_conformance!(
138 unsafe impl NSObjectProtocol for MPSNNImageNode {}
139);
140
141impl MPSNNImageNode {
142 extern_methods!(
143 #[unsafe(method(initWithHandle:))]
147 #[unsafe(method_family = init)]
148 pub unsafe fn initWithHandle(
149 this: Allocated<Self>,
150 handle: Option<&NSObject>,
151 ) -> Retained<Self>;
152
153 #[unsafe(method(nodeWithHandle:))]
157 #[unsafe(method_family = none)]
158 pub unsafe fn nodeWithHandle(handle: Option<&NSObject>) -> Retained<Self>;
159
160 #[unsafe(method(exportedNodeWithHandle:))]
168 #[unsafe(method_family = none)]
169 pub unsafe fn exportedNodeWithHandle(handle: Option<&NSObject>) -> Retained<Self>;
170
171 #[unsafe(method(init))]
172 #[unsafe(method_family = init)]
173 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
174
175 #[unsafe(method(handle))]
179 #[unsafe(method_family = none)]
180 pub unsafe fn handle(&self) -> Option<Retained<ProtocolObject<dyn MPSHandle>>>;
181
182 #[unsafe(method(setHandle:))]
184 #[unsafe(method_family = none)]
185 pub unsafe fn setHandle(&self, handle: Option<&ProtocolObject<dyn MPSHandle>>);
186
187 #[cfg(all(feature = "MPSCore", feature = "MPSCoreTypes"))]
188 #[unsafe(method(format))]
193 #[unsafe(method_family = none)]
194 pub unsafe fn format(&self) -> MPSImageFeatureChannelFormat;
195
196 #[cfg(all(feature = "MPSCore", feature = "MPSCoreTypes"))]
197 #[unsafe(method(setFormat:))]
199 #[unsafe(method_family = none)]
200 pub unsafe fn setFormat(&self, format: MPSImageFeatureChannelFormat);
201
202 #[cfg(all(feature = "MPSCore", feature = "MPSImage"))]
203 #[unsafe(method(imageAllocator))]
208 #[unsafe(method_family = none)]
209 pub unsafe fn imageAllocator(&self) -> Retained<ProtocolObject<dyn MPSImageAllocator>>;
210
211 #[cfg(all(feature = "MPSCore", feature = "MPSImage"))]
212 #[unsafe(method(setImageAllocator:))]
214 #[unsafe(method_family = none)]
215 pub unsafe fn setImageAllocator(
216 &self,
217 image_allocator: &ProtocolObject<dyn MPSImageAllocator>,
218 );
219
220 #[unsafe(method(exportFromGraph))]
237 #[unsafe(method_family = none)]
238 pub unsafe fn exportFromGraph(&self) -> bool;
239
240 #[unsafe(method(setExportFromGraph:))]
242 #[unsafe(method_family = none)]
243 pub unsafe fn setExportFromGraph(&self, export_from_graph: bool);
244
245 #[unsafe(method(synchronizeResource))]
249 #[unsafe(method_family = none)]
250 pub unsafe fn synchronizeResource(&self) -> bool;
251
252 #[unsafe(method(setSynchronizeResource:))]
254 #[unsafe(method_family = none)]
255 pub unsafe fn setSynchronizeResource(&self, synchronize_resource: bool);
256
257 #[unsafe(method(stopGradient))]
269 #[unsafe(method_family = none)]
270 pub unsafe fn stopGradient(&self) -> bool;
271
272 #[unsafe(method(setStopGradient:))]
274 #[unsafe(method_family = none)]
275 pub unsafe fn setStopGradient(&self, stop_gradient: bool);
276 );
277}
278
279impl MPSNNImageNode {
281 extern_methods!(
282 #[unsafe(method(new))]
283 #[unsafe(method_family = new)]
284 pub unsafe fn new() -> Retained<Self>;
285 );
286}
287
288extern_class!(
289 #[unsafe(super(NSObject))]
299 #[derive(Debug, PartialEq, Eq, Hash)]
300 pub struct MPSNNStateNode;
301);
302
303extern_conformance!(
304 unsafe impl NSObjectProtocol for MPSNNStateNode {}
305);
306
307impl MPSNNStateNode {
308 extern_methods!(
309 #[unsafe(method(init))]
310 #[unsafe(method_family = init)]
311 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
312
313 #[unsafe(method(handle))]
317 #[unsafe(method_family = none)]
318 pub unsafe fn handle(&self) -> Option<Retained<ProtocolObject<dyn MPSHandle>>>;
319
320 #[unsafe(method(setHandle:))]
322 #[unsafe(method_family = none)]
323 pub unsafe fn setHandle(&self, handle: Option<&ProtocolObject<dyn MPSHandle>>);
324
325 #[unsafe(method(exportFromGraph))]
342 #[unsafe(method_family = none)]
343 pub unsafe fn exportFromGraph(&self) -> bool;
344
345 #[unsafe(method(setExportFromGraph:))]
347 #[unsafe(method_family = none)]
348 pub unsafe fn setExportFromGraph(&self, export_from_graph: bool);
349
350 #[unsafe(method(synchronizeResource))]
354 #[unsafe(method_family = none)]
355 pub unsafe fn synchronizeResource(&self) -> bool;
356
357 #[unsafe(method(setSynchronizeResource:))]
359 #[unsafe(method_family = none)]
360 pub unsafe fn setSynchronizeResource(&self, synchronize_resource: bool);
361 );
362}
363
364impl MPSNNStateNode {
366 extern_methods!(
367 #[unsafe(method(new))]
368 #[unsafe(method_family = new)]
369 pub unsafe fn new() -> Retained<Self>;
370 );
371}
372
373extern_class!(
374 #[unsafe(super(MPSNNStateNode, NSObject))]
388 #[derive(Debug, PartialEq, Eq, Hash)]
389 pub struct MPSNNGradientStateNode;
390);
391
392extern_conformance!(
393 unsafe impl NSObjectProtocol for MPSNNGradientStateNode {}
394);
395
396impl MPSNNGradientStateNode {
397 extern_methods!();
398}
399
400impl MPSNNGradientStateNode {
402 extern_methods!(
403 #[unsafe(method(init))]
404 #[unsafe(method_family = init)]
405 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
406 );
407}
408
409impl MPSNNGradientStateNode {
411 extern_methods!(
412 #[unsafe(method(new))]
413 #[unsafe(method_family = new)]
414 pub unsafe fn new() -> Retained<Self>;
415 );
416}
417
418extern_class!(
419 #[unsafe(super(MPSNNGradientStateNode, MPSNNStateNode, NSObject))]
421 #[derive(Debug, PartialEq, Eq, Hash)]
422 pub struct MPSCNNConvolutionGradientStateNode;
423);
424
425extern_conformance!(
426 unsafe impl NSObjectProtocol for MPSCNNConvolutionGradientStateNode {}
427);
428
429impl MPSCNNConvolutionGradientStateNode {
430 extern_methods!();
431}
432
433impl MPSCNNConvolutionGradientStateNode {
435 extern_methods!(
436 #[unsafe(method(init))]
437 #[unsafe(method_family = init)]
438 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
439 );
440}
441
442impl MPSCNNConvolutionGradientStateNode {
444 extern_methods!(
445 #[unsafe(method(new))]
446 #[unsafe(method_family = new)]
447 pub unsafe fn new() -> Retained<Self>;
448 );
449}
450
451extern_class!(
452 #[unsafe(super(
454 MPSCNNConvolutionGradientStateNode,
455 MPSNNGradientStateNode,
456 MPSNNStateNode,
457 NSObject
458 ))]
459 #[derive(Debug, PartialEq, Eq, Hash)]
460 pub struct MPSCNNConvolutionTransposeGradientStateNode;
461);
462
463extern_conformance!(
464 unsafe impl NSObjectProtocol for MPSCNNConvolutionTransposeGradientStateNode {}
465);
466
467impl MPSCNNConvolutionTransposeGradientStateNode {
468 extern_methods!();
469}
470
471impl MPSCNNConvolutionTransposeGradientStateNode {
473 extern_methods!(
474 #[unsafe(method(init))]
475 #[unsafe(method_family = init)]
476 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
477 );
478}
479
480impl MPSCNNConvolutionTransposeGradientStateNode {
482 extern_methods!(
483 #[unsafe(method(new))]
484 #[unsafe(method_family = new)]
485 pub unsafe fn new() -> Retained<Self>;
486 );
487}
488
489extern_class!(
490 #[unsafe(super(MPSNNStateNode, NSObject))]
492 #[derive(Debug, PartialEq, Eq, Hash)]
493 pub struct MPSNNBinaryGradientStateNode;
494);
495
496extern_conformance!(
497 unsafe impl NSObjectProtocol for MPSNNBinaryGradientStateNode {}
498);
499
500impl MPSNNBinaryGradientStateNode {
501 extern_methods!();
502}
503
504impl MPSNNBinaryGradientStateNode {
506 extern_methods!(
507 #[unsafe(method(init))]
508 #[unsafe(method_family = init)]
509 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
510 );
511}
512
513impl MPSNNBinaryGradientStateNode {
515 extern_methods!(
516 #[unsafe(method(new))]
517 #[unsafe(method_family = new)]
518 pub unsafe fn new() -> Retained<Self>;
519 );
520}
521
522extern_class!(
523 #[unsafe(super(MPSNNStateNode, NSObject))]
525 #[derive(Debug, PartialEq, Eq, Hash)]
526 pub struct MPSNNMultiaryGradientStateNode;
527);
528
529extern_conformance!(
530 unsafe impl NSObjectProtocol for MPSNNMultiaryGradientStateNode {}
531);
532
533impl MPSNNMultiaryGradientStateNode {
534 extern_methods!();
535}
536
537impl MPSNNMultiaryGradientStateNode {
539 extern_methods!(
540 #[unsafe(method(init))]
541 #[unsafe(method_family = init)]
542 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
543 );
544}
545
546impl MPSNNMultiaryGradientStateNode {
548 extern_methods!(
549 #[unsafe(method(new))]
550 #[unsafe(method_family = new)]
551 pub unsafe fn new() -> Retained<Self>;
552 );
553}
554
555extern_class!(
556 #[unsafe(super(MPSNNBinaryGradientStateNode, MPSNNStateNode, NSObject))]
558 #[derive(Debug, PartialEq, Eq, Hash)]
559 pub struct MPSNNArithmeticGradientStateNode;
560);
561
562extern_conformance!(
563 unsafe impl NSObjectProtocol for MPSNNArithmeticGradientStateNode {}
564);
565
566impl MPSNNArithmeticGradientStateNode {
567 extern_methods!();
568}
569
570impl MPSNNArithmeticGradientStateNode {
572 extern_methods!(
573 #[unsafe(method(init))]
574 #[unsafe(method_family = init)]
575 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
576 );
577}
578
579impl MPSNNArithmeticGradientStateNode {
581 extern_methods!(
582 #[unsafe(method(new))]
583 #[unsafe(method_family = new)]
584 pub unsafe fn new() -> Retained<Self>;
585 );
586}
587
588#[cfg(feature = "block2")]
616pub type MPSGradientNodeBlock = *mut block2::DynBlock<
617 dyn Fn(
618 NonNull<MPSNNFilterNode>,
619 NonNull<MPSNNFilterNode>,
620 NonNull<MPSNNImageNode>,
621 NonNull<MPSNNImageNode>,
622 ),
623>;
624
625extern_class!(
626 #[unsafe(super(NSObject))]
634 #[derive(Debug, PartialEq, Eq, Hash)]
635 pub struct MPSNNFilterNode;
636);
637
638extern_conformance!(
639 unsafe impl NSObjectProtocol for MPSNNFilterNode {}
640);
641
642impl MPSNNFilterNode {
643 extern_methods!(
644 #[unsafe(method(init))]
645 #[unsafe(method_family = init)]
646 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
647
648 #[unsafe(method(resultImage))]
654 #[unsafe(method_family = none)]
655 pub unsafe fn resultImage(&self) -> Retained<MPSNNImageNode>;
656
657 #[unsafe(method(resultState))]
661 #[unsafe(method_family = none)]
662 pub unsafe fn resultState(&self) -> Option<Retained<MPSNNStateNode>>;
663
664 #[unsafe(method(resultStates))]
668 #[unsafe(method_family = none)]
669 pub unsafe fn resultStates(&self) -> Option<Retained<NSArray<MPSNNStateNode>>>;
670
671 #[cfg(feature = "MPSNeuralNetworkTypes")]
672 #[unsafe(method(paddingPolicy))]
704 #[unsafe(method_family = none)]
705 pub unsafe fn paddingPolicy(&self) -> Retained<ProtocolObject<dyn MPSNNPadding>>;
706
707 #[cfg(feature = "MPSNeuralNetworkTypes")]
708 #[unsafe(method(setPaddingPolicy:))]
710 #[unsafe(method_family = none)]
711 pub unsafe fn setPaddingPolicy(&self, padding_policy: &ProtocolObject<dyn MPSNNPadding>);
712
713 #[unsafe(method(label))]
715 #[unsafe(method_family = none)]
716 pub unsafe fn label(&self) -> Option<Retained<NSString>>;
717
718 #[unsafe(method(setLabel:))]
722 #[unsafe(method_family = none)]
723 pub unsafe fn setLabel(&self, label: Option<&NSString>);
724
725 #[unsafe(method(gradientFilterWithSource:))]
734 #[unsafe(method_family = none)]
735 pub unsafe fn gradientFilterWithSource(
736 &self,
737 gradient_image: &MPSNNImageNode,
738 ) -> Retained<MPSNNGradientFilterNode>;
739
740 #[unsafe(method(gradientFilterWithSources:))]
749 #[unsafe(method_family = none)]
750 pub unsafe fn gradientFilterWithSources(
751 &self,
752 gradient_images: &NSArray<MPSNNImageNode>,
753 ) -> Retained<MPSNNGradientFilterNode>;
754
755 #[unsafe(method(gradientFiltersWithSources:))]
763 #[unsafe(method_family = none)]
764 pub unsafe fn gradientFiltersWithSources(
765 &self,
766 gradient_images: &NSArray<MPSNNImageNode>,
767 ) -> Retained<NSArray<MPSNNGradientFilterNode>>;
768
769 #[unsafe(method(gradientFiltersWithSource:))]
777 #[unsafe(method_family = none)]
778 pub unsafe fn gradientFiltersWithSource(
779 &self,
780 gradient_image: &MPSNNImageNode,
781 ) -> Retained<NSArray<MPSNNGradientFilterNode>>;
782
783 #[cfg(feature = "block2")]
784 #[unsafe(method(trainingGraphWithSourceGradient:nodeHandler:))]
827 #[unsafe(method_family = none)]
828 pub unsafe fn trainingGraphWithSourceGradient_nodeHandler(
829 &self,
830 gradient_image: Option<&MPSNNImageNode>,
831 node_handler: MPSGradientNodeBlock,
832 ) -> Option<Retained<NSArray<MPSNNFilterNode>>>;
833 );
834}
835
836impl MPSNNFilterNode {
838 extern_methods!(
839 #[unsafe(method(new))]
840 #[unsafe(method_family = new)]
841 pub unsafe fn new() -> Retained<Self>;
842 );
843}
844
845extern_class!(
846 #[unsafe(super(MPSNNFilterNode, NSObject))]
861 #[derive(Debug, PartialEq, Eq, Hash)]
862 pub struct MPSNNGradientFilterNode;
863);
864
865extern_conformance!(
866 unsafe impl NSObjectProtocol for MPSNNGradientFilterNode {}
867);
868
869impl MPSNNGradientFilterNode {
870 extern_methods!(
871 #[unsafe(method(gradientFilterWithSources:))]
872 #[unsafe(method_family = none)]
873 pub unsafe fn gradientFilterWithSources(
874 &self,
875 source_gradient: &NSArray<MPSNNImageNode>,
876 ) -> Retained<MPSNNGradientFilterNode>;
877
878 #[unsafe(method(gradientFiltersWithSources:))]
879 #[unsafe(method_family = none)]
880 pub unsafe fn gradientFiltersWithSources(
881 &self,
882 source_gradient: &NSArray<MPSNNImageNode>,
883 ) -> Retained<NSArray<MPSNNGradientFilterNode>>;
884
885 #[unsafe(method(gradientFilterWithSource:))]
886 #[unsafe(method_family = none)]
887 pub unsafe fn gradientFilterWithSource(
888 &self,
889 source_gradient: &MPSNNImageNode,
890 ) -> Retained<MPSNNGradientFilterNode>;
891
892 #[unsafe(method(gradientFiltersWithSource:))]
893 #[unsafe(method_family = none)]
894 pub unsafe fn gradientFiltersWithSource(
895 &self,
896 source_gradient: &MPSNNImageNode,
897 ) -> Retained<NSArray<MPSNNGradientFilterNode>>;
898 );
899}
900
901impl MPSNNGradientFilterNode {
903 extern_methods!(
904 #[unsafe(method(init))]
905 #[unsafe(method_family = init)]
906 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
907 );
908}
909
910impl MPSNNGradientFilterNode {
912 extern_methods!(
913 #[unsafe(method(new))]
914 #[unsafe(method_family = new)]
915 pub unsafe fn new() -> Retained<Self>;
916 );
917}
918
919extern_class!(
920 #[unsafe(super(MPSNNFilterNode, NSObject))]
924 #[derive(Debug, PartialEq, Eq, Hash)]
925 pub struct MPSCNNConvolutionNode;
926);
927
928extern_conformance!(
929 unsafe impl MPSNNTrainableNode for MPSCNNConvolutionNode {}
930);
931
932extern_conformance!(
933 unsafe impl NSObjectProtocol for MPSCNNConvolutionNode {}
934);
935
936impl MPSCNNConvolutionNode {
937 extern_methods!(
938 #[cfg(feature = "MPSNeuralNetworkTypes")]
939 #[unsafe(method(trainingStyle))]
941 #[unsafe(method_family = none)]
942 pub unsafe fn trainingStyle(&self) -> MPSNNTrainingStyle;
943
944 #[cfg(feature = "MPSNeuralNetworkTypes")]
945 #[unsafe(method(setTrainingStyle:))]
947 #[unsafe(method_family = none)]
948 pub unsafe fn setTrainingStyle(&self, training_style: MPSNNTrainingStyle);
949
950 #[cfg(feature = "MPSNeuralNetworkTypes")]
951 #[unsafe(method(accumulatorPrecision))]
955 #[unsafe(method_family = none)]
956 pub unsafe fn accumulatorPrecision(&self) -> MPSNNConvolutionAccumulatorPrecisionOption;
957
958 #[cfg(feature = "MPSNeuralNetworkTypes")]
959 #[unsafe(method(setAccumulatorPrecision:))]
961 #[unsafe(method_family = none)]
962 pub unsafe fn setAccumulatorPrecision(
963 &self,
964 accumulator_precision: MPSNNConvolutionAccumulatorPrecisionOption,
965 );
966
967 #[cfg(feature = "MPSCNNConvolution")]
968 #[unsafe(method(nodeWithSource:weights:))]
979 #[unsafe(method_family = none)]
980 pub unsafe fn nodeWithSource_weights(
981 source_node: &MPSNNImageNode,
982 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
983 ) -> Retained<Self>;
984
985 #[cfg(feature = "MPSCNNConvolution")]
986 #[unsafe(method(initWithSource:weights:))]
997 #[unsafe(method_family = init)]
998 pub unsafe fn initWithSource_weights(
999 this: Allocated<Self>,
1000 source_node: &MPSNNImageNode,
1001 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1002 ) -> Retained<Self>;
1003
1004 #[unsafe(method(convolutionGradientState))]
1011 #[unsafe(method_family = none)]
1012 pub unsafe fn convolutionGradientState(
1013 &self,
1014 ) -> Option<Retained<MPSCNNConvolutionGradientStateNode>>;
1015 );
1016}
1017
1018impl MPSCNNConvolutionNode {
1020 extern_methods!(
1021 #[unsafe(method(init))]
1022 #[unsafe(method_family = init)]
1023 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1024 );
1025}
1026
1027impl MPSCNNConvolutionNode {
1029 extern_methods!(
1030 #[unsafe(method(new))]
1031 #[unsafe(method_family = new)]
1032 pub unsafe fn new() -> Retained<Self>;
1033 );
1034}
1035
1036extern_class!(
1037 #[unsafe(super(MPSCNNConvolutionNode, MPSNNFilterNode, NSObject))]
1041 #[derive(Debug, PartialEq, Eq, Hash)]
1042 pub struct MPSCNNFullyConnectedNode;
1043);
1044
1045extern_conformance!(
1046 unsafe impl MPSNNTrainableNode for MPSCNNFullyConnectedNode {}
1047);
1048
1049extern_conformance!(
1050 unsafe impl NSObjectProtocol for MPSCNNFullyConnectedNode {}
1051);
1052
1053impl MPSCNNFullyConnectedNode {
1054 extern_methods!(
1055 #[cfg(feature = "MPSCNNConvolution")]
1056 #[unsafe(method(nodeWithSource:weights:))]
1066 #[unsafe(method_family = none)]
1067 pub unsafe fn nodeWithSource_weights(
1068 source_node: &MPSNNImageNode,
1069 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1070 ) -> Retained<Self>;
1071
1072 #[cfg(feature = "MPSCNNConvolution")]
1073 #[unsafe(method(initWithSource:weights:))]
1083 #[unsafe(method_family = init)]
1084 pub unsafe fn initWithSource_weights(
1085 this: Allocated<Self>,
1086 source_node: &MPSNNImageNode,
1087 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1088 ) -> Retained<Self>;
1089 );
1090}
1091
1092impl MPSCNNFullyConnectedNode {
1094 extern_methods!(
1095 #[unsafe(method(init))]
1096 #[unsafe(method_family = init)]
1097 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1098 );
1099}
1100
1101impl MPSCNNFullyConnectedNode {
1103 extern_methods!(
1104 #[unsafe(method(new))]
1105 #[unsafe(method_family = new)]
1106 pub unsafe fn new() -> Retained<Self>;
1107 );
1108}
1109
1110extern_class!(
1111 #[unsafe(super(MPSCNNConvolutionNode, MPSNNFilterNode, NSObject))]
1115 #[derive(Debug, PartialEq, Eq, Hash)]
1116 pub struct MPSCNNBinaryConvolutionNode;
1117);
1118
1119extern_conformance!(
1120 unsafe impl MPSNNTrainableNode for MPSCNNBinaryConvolutionNode {}
1121);
1122
1123extern_conformance!(
1124 unsafe impl NSObjectProtocol for MPSCNNBinaryConvolutionNode {}
1125);
1126
1127impl MPSCNNBinaryConvolutionNode {
1128 extern_methods!(
1129 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1130 #[unsafe(method(nodeWithSource:weights:scaleValue:type:flags:))]
1146 #[unsafe(method_family = none)]
1147 pub unsafe fn nodeWithSource_weights_scaleValue_type_flags(
1148 source_node: &MPSNNImageNode,
1149 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1150 scale_value: c_float,
1151 r#type: MPSCNNBinaryConvolutionType,
1152 flags: MPSCNNBinaryConvolutionFlags,
1153 ) -> Retained<Self>;
1154
1155 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1156 #[unsafe(method(initWithSource:weights:scaleValue:type:flags:))]
1172 #[unsafe(method_family = init)]
1173 pub unsafe fn initWithSource_weights_scaleValue_type_flags(
1174 this: Allocated<Self>,
1175 source_node: &MPSNNImageNode,
1176 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1177 scale_value: c_float,
1178 r#type: MPSCNNBinaryConvolutionType,
1179 flags: MPSCNNBinaryConvolutionFlags,
1180 ) -> Retained<Self>;
1181
1182 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1183 #[unsafe(method(nodeWithSource:weights:outputBiasTerms:outputScaleTerms:inputBiasTerms:inputScaleTerms:type:flags:))]
1216 #[unsafe(method_family = none)]
1217 pub unsafe fn nodeWithSource_weights_outputBiasTerms_outputScaleTerms_inputBiasTerms_inputScaleTerms_type_flags(
1218 source_node: &MPSNNImageNode,
1219 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1220 output_bias_terms: *const c_float,
1221 output_scale_terms: *const c_float,
1222 input_bias_terms: *const c_float,
1223 input_scale_terms: *const c_float,
1224 r#type: MPSCNNBinaryConvolutionType,
1225 flags: MPSCNNBinaryConvolutionFlags,
1226 ) -> Retained<Self>;
1227
1228 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1229 #[unsafe(method(initWithSource:weights:outputBiasTerms:outputScaleTerms:inputBiasTerms:inputScaleTerms:type:flags:))]
1262 #[unsafe(method_family = init)]
1263 pub unsafe fn initWithSource_weights_outputBiasTerms_outputScaleTerms_inputBiasTerms_inputScaleTerms_type_flags(
1264 this: Allocated<Self>,
1265 source_node: &MPSNNImageNode,
1266 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1267 output_bias_terms: *const c_float,
1268 output_scale_terms: *const c_float,
1269 input_bias_terms: *const c_float,
1270 input_scale_terms: *const c_float,
1271 r#type: MPSCNNBinaryConvolutionType,
1272 flags: MPSCNNBinaryConvolutionFlags,
1273 ) -> Retained<Self>;
1274
1275 #[unsafe(method(convolutionGradientState))]
1277 #[unsafe(method_family = none)]
1278 pub unsafe fn convolutionGradientState(
1279 &self,
1280 ) -> Option<Retained<MPSCNNConvolutionGradientStateNode>>;
1281 );
1282}
1283
1284impl MPSCNNBinaryConvolutionNode {
1286 extern_methods!(
1287 #[cfg(feature = "MPSCNNConvolution")]
1288 #[unsafe(method(nodeWithSource:weights:))]
1299 #[unsafe(method_family = none)]
1300 pub unsafe fn nodeWithSource_weights(
1301 source_node: &MPSNNImageNode,
1302 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1303 ) -> Retained<Self>;
1304
1305 #[cfg(feature = "MPSCNNConvolution")]
1306 #[unsafe(method(initWithSource:weights:))]
1317 #[unsafe(method_family = init)]
1318 pub unsafe fn initWithSource_weights(
1319 this: Allocated<Self>,
1320 source_node: &MPSNNImageNode,
1321 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1322 ) -> Retained<Self>;
1323 );
1324}
1325
1326impl MPSCNNBinaryConvolutionNode {
1328 extern_methods!(
1329 #[unsafe(method(init))]
1330 #[unsafe(method_family = init)]
1331 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1332 );
1333}
1334
1335impl MPSCNNBinaryConvolutionNode {
1337 extern_methods!(
1338 #[unsafe(method(new))]
1339 #[unsafe(method_family = new)]
1340 pub unsafe fn new() -> Retained<Self>;
1341 );
1342}
1343
1344extern_class!(
1345 #[unsafe(super(
1349 MPSCNNBinaryConvolutionNode,
1350 MPSCNNConvolutionNode,
1351 MPSNNFilterNode,
1352 NSObject
1353 ))]
1354 #[derive(Debug, PartialEq, Eq, Hash)]
1355 pub struct MPSCNNBinaryFullyConnectedNode;
1356);
1357
1358extern_conformance!(
1359 unsafe impl MPSNNTrainableNode for MPSCNNBinaryFullyConnectedNode {}
1360);
1361
1362extern_conformance!(
1363 unsafe impl NSObjectProtocol for MPSCNNBinaryFullyConnectedNode {}
1364);
1365
1366impl MPSCNNBinaryFullyConnectedNode {
1367 extern_methods!(
1368 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1369 #[unsafe(method(nodeWithSource:weights:scaleValue:type:flags:))]
1385 #[unsafe(method_family = none)]
1386 pub unsafe fn nodeWithSource_weights_scaleValue_type_flags(
1387 source_node: &MPSNNImageNode,
1388 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1389 scale_value: c_float,
1390 r#type: MPSCNNBinaryConvolutionType,
1391 flags: MPSCNNBinaryConvolutionFlags,
1392 ) -> Retained<Self>;
1393
1394 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1395 #[unsafe(method(initWithSource:weights:scaleValue:type:flags:))]
1411 #[unsafe(method_family = init)]
1412 pub unsafe fn initWithSource_weights_scaleValue_type_flags(
1413 this: Allocated<Self>,
1414 source_node: &MPSNNImageNode,
1415 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1416 scale_value: c_float,
1417 r#type: MPSCNNBinaryConvolutionType,
1418 flags: MPSCNNBinaryConvolutionFlags,
1419 ) -> Retained<Self>;
1420
1421 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1422 #[unsafe(method(nodeWithSource:weights:outputBiasTerms:outputScaleTerms:inputBiasTerms:inputScaleTerms:type:flags:))]
1455 #[unsafe(method_family = none)]
1456 pub unsafe fn nodeWithSource_weights_outputBiasTerms_outputScaleTerms_inputBiasTerms_inputScaleTerms_type_flags(
1457 source_node: &MPSNNImageNode,
1458 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1459 output_bias_terms: *const c_float,
1460 output_scale_terms: *const c_float,
1461 input_bias_terms: *const c_float,
1462 input_scale_terms: *const c_float,
1463 r#type: MPSCNNBinaryConvolutionType,
1464 flags: MPSCNNBinaryConvolutionFlags,
1465 ) -> Retained<Self>;
1466
1467 #[cfg(all(feature = "MPSCNNConvolution", feature = "MPSNeuralNetworkTypes"))]
1468 #[unsafe(method(initWithSource:weights:outputBiasTerms:outputScaleTerms:inputBiasTerms:inputScaleTerms:type:flags:))]
1501 #[unsafe(method_family = init)]
1502 pub unsafe fn initWithSource_weights_outputBiasTerms_outputScaleTerms_inputBiasTerms_inputScaleTerms_type_flags(
1503 this: Allocated<Self>,
1504 source_node: &MPSNNImageNode,
1505 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1506 output_bias_terms: *const c_float,
1507 output_scale_terms: *const c_float,
1508 input_bias_terms: *const c_float,
1509 input_scale_terms: *const c_float,
1510 r#type: MPSCNNBinaryConvolutionType,
1511 flags: MPSCNNBinaryConvolutionFlags,
1512 ) -> Retained<Self>;
1513 );
1514}
1515
1516impl MPSCNNBinaryFullyConnectedNode {
1518 extern_methods!(
1519 #[cfg(feature = "MPSCNNConvolution")]
1520 #[unsafe(method(nodeWithSource:weights:))]
1531 #[unsafe(method_family = none)]
1532 pub unsafe fn nodeWithSource_weights(
1533 source_node: &MPSNNImageNode,
1534 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1535 ) -> Retained<Self>;
1536
1537 #[cfg(feature = "MPSCNNConvolution")]
1538 #[unsafe(method(initWithSource:weights:))]
1549 #[unsafe(method_family = init)]
1550 pub unsafe fn initWithSource_weights(
1551 this: Allocated<Self>,
1552 source_node: &MPSNNImageNode,
1553 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1554 ) -> Retained<Self>;
1555 );
1556}
1557
1558impl MPSCNNBinaryFullyConnectedNode {
1560 extern_methods!(
1561 #[unsafe(method(init))]
1562 #[unsafe(method_family = init)]
1563 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1564 );
1565}
1566
1567impl MPSCNNBinaryFullyConnectedNode {
1569 extern_methods!(
1570 #[unsafe(method(new))]
1571 #[unsafe(method_family = new)]
1572 pub unsafe fn new() -> Retained<Self>;
1573 );
1574}
1575
1576extern_class!(
1577 #[unsafe(super(MPSCNNConvolutionNode, MPSNNFilterNode, NSObject))]
1581 #[derive(Debug, PartialEq, Eq, Hash)]
1582 pub struct MPSCNNConvolutionTransposeNode;
1583);
1584
1585extern_conformance!(
1586 unsafe impl MPSNNTrainableNode for MPSCNNConvolutionTransposeNode {}
1587);
1588
1589extern_conformance!(
1590 unsafe impl NSObjectProtocol for MPSCNNConvolutionTransposeNode {}
1591);
1592
1593impl MPSCNNConvolutionTransposeNode {
1594 extern_methods!(
1595 #[cfg(feature = "MPSCNNConvolution")]
1596 #[unsafe(method(nodeWithSource:convolutionGradientState:weights:))]
1612 #[unsafe(method_family = none)]
1613 pub unsafe fn nodeWithSource_convolutionGradientState_weights(
1614 source_node: &MPSNNImageNode,
1615 convolution_gradient_state: Option<&MPSCNNConvolutionGradientStateNode>,
1616 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1617 ) -> Retained<Self>;
1618
1619 #[cfg(feature = "MPSCNNConvolution")]
1620 #[unsafe(method(initWithSource:convolutionGradientState:weights:))]
1636 #[unsafe(method_family = init)]
1637 pub unsafe fn initWithSource_convolutionGradientState_weights(
1638 this: Allocated<Self>,
1639 source_node: &MPSNNImageNode,
1640 convolution_gradient_state: Option<&MPSCNNConvolutionGradientStateNode>,
1641 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1642 ) -> Retained<Self>;
1643
1644 #[unsafe(method(convolutionGradientState))]
1646 #[unsafe(method_family = none)]
1647 pub unsafe fn convolutionGradientState(
1648 &self,
1649 ) -> Option<Retained<MPSCNNConvolutionGradientStateNode>>;
1650 );
1651}
1652
1653impl MPSCNNConvolutionTransposeNode {
1655 extern_methods!(
1656 #[cfg(feature = "MPSCNNConvolution")]
1657 #[unsafe(method(nodeWithSource:weights:))]
1668 #[unsafe(method_family = none)]
1669 pub unsafe fn nodeWithSource_weights(
1670 source_node: &MPSNNImageNode,
1671 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1672 ) -> Retained<Self>;
1673
1674 #[cfg(feature = "MPSCNNConvolution")]
1675 #[unsafe(method(initWithSource:weights:))]
1686 #[unsafe(method_family = init)]
1687 pub unsafe fn initWithSource_weights(
1688 this: Allocated<Self>,
1689 source_node: &MPSNNImageNode,
1690 weights: &ProtocolObject<dyn MPSCNNConvolutionDataSource>,
1691 ) -> Retained<Self>;
1692 );
1693}
1694
1695impl MPSCNNConvolutionTransposeNode {
1697 extern_methods!(
1698 #[unsafe(method(init))]
1699 #[unsafe(method_family = init)]
1700 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1701 );
1702}
1703
1704impl MPSCNNConvolutionTransposeNode {
1706 extern_methods!(
1707 #[unsafe(method(new))]
1708 #[unsafe(method_family = new)]
1709 pub unsafe fn new() -> Retained<Self>;
1710 );
1711}
1712
1713extern_class!(
1714 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
1716 #[derive(Debug, PartialEq, Eq, Hash)]
1717 pub struct MPSCNNConvolutionGradientNode;
1718);
1719
1720extern_conformance!(
1721 unsafe impl MPSNNTrainableNode for MPSCNNConvolutionGradientNode {}
1722);
1723
1724extern_conformance!(
1725 unsafe impl NSObjectProtocol for MPSCNNConvolutionGradientNode {}
1726);
1727
1728impl MPSCNNConvolutionGradientNode {
1729 extern_methods!(
1730 #[cfg(feature = "MPSCNNConvolution")]
1731 #[unsafe(method(nodeWithSourceGradient:sourceImage:convolutionGradientState:weights:))]
1747 #[unsafe(method_family = none)]
1748 pub unsafe fn nodeWithSourceGradient_sourceImage_convolutionGradientState_weights(
1749 source_gradient: &MPSNNImageNode,
1750 source_image: &MPSNNImageNode,
1751 gradient_state: &MPSCNNConvolutionGradientStateNode,
1752 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1753 ) -> Retained<Self>;
1754
1755 #[cfg(feature = "MPSCNNConvolution")]
1756 #[unsafe(method(initWithSourceGradient:sourceImage:convolutionGradientState:weights:))]
1772 #[unsafe(method_family = init)]
1773 pub unsafe fn initWithSourceGradient_sourceImage_convolutionGradientState_weights(
1774 this: Allocated<Self>,
1775 source_gradient: &MPSNNImageNode,
1776 source_image: &MPSNNImageNode,
1777 gradient_state: &MPSCNNConvolutionGradientStateNode,
1778 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1779 ) -> Retained<Self>;
1780 );
1781}
1782
1783impl MPSCNNConvolutionGradientNode {
1785 extern_methods!(
1786 #[unsafe(method(init))]
1787 #[unsafe(method_family = init)]
1788 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1789 );
1790}
1791
1792impl MPSCNNConvolutionGradientNode {
1794 extern_methods!(
1795 #[unsafe(method(new))]
1796 #[unsafe(method_family = new)]
1797 pub unsafe fn new() -> Retained<Self>;
1798 );
1799}
1800
1801extern_class!(
1802 #[unsafe(super(
1804 MPSCNNConvolutionGradientNode,
1805 MPSNNGradientFilterNode,
1806 MPSNNFilterNode,
1807 NSObject
1808 ))]
1809 #[derive(Debug, PartialEq, Eq, Hash)]
1810 pub struct MPSCNNFullyConnectedGradientNode;
1811);
1812
1813extern_conformance!(
1814 unsafe impl MPSNNTrainableNode for MPSCNNFullyConnectedGradientNode {}
1815);
1816
1817extern_conformance!(
1818 unsafe impl NSObjectProtocol for MPSCNNFullyConnectedGradientNode {}
1819);
1820
1821impl MPSCNNFullyConnectedGradientNode {
1822 extern_methods!(
1823 #[cfg(feature = "MPSCNNConvolution")]
1824 #[unsafe(method(nodeWithSourceGradient:sourceImage:convolutionGradientState:weights:))]
1840 #[unsafe(method_family = none)]
1841 pub unsafe fn nodeWithSourceGradient_sourceImage_convolutionGradientState_weights(
1842 source_gradient: &MPSNNImageNode,
1843 source_image: &MPSNNImageNode,
1844 gradient_state: &MPSCNNConvolutionGradientStateNode,
1845 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1846 ) -> Retained<Self>;
1847
1848 #[cfg(feature = "MPSCNNConvolution")]
1849 #[unsafe(method(initWithSourceGradient:sourceImage:convolutionGradientState:weights:))]
1865 #[unsafe(method_family = init)]
1866 pub unsafe fn initWithSourceGradient_sourceImage_convolutionGradientState_weights(
1867 this: Allocated<Self>,
1868 source_gradient: &MPSNNImageNode,
1869 source_image: &MPSNNImageNode,
1870 gradient_state: &MPSCNNConvolutionGradientStateNode,
1871 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1872 ) -> Retained<Self>;
1873 );
1874}
1875
1876impl MPSCNNFullyConnectedGradientNode {
1878 extern_methods!(
1879 #[unsafe(method(init))]
1880 #[unsafe(method_family = init)]
1881 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
1882 );
1883}
1884
1885impl MPSCNNFullyConnectedGradientNode {
1887 extern_methods!(
1888 #[unsafe(method(new))]
1889 #[unsafe(method_family = new)]
1890 pub unsafe fn new() -> Retained<Self>;
1891 );
1892}
1893
1894extern_class!(
1895 #[unsafe(super(
1897 MPSCNNConvolutionGradientNode,
1898 MPSNNGradientFilterNode,
1899 MPSNNFilterNode,
1900 NSObject
1901 ))]
1902 #[derive(Debug, PartialEq, Eq, Hash)]
1903 pub struct MPSCNNConvolutionTransposeGradientNode;
1904);
1905
1906extern_conformance!(
1907 unsafe impl MPSNNTrainableNode for MPSCNNConvolutionTransposeGradientNode {}
1908);
1909
1910extern_conformance!(
1911 unsafe impl NSObjectProtocol for MPSCNNConvolutionTransposeGradientNode {}
1912);
1913
1914impl MPSCNNConvolutionTransposeGradientNode {
1915 extern_methods!(
1916 #[cfg(feature = "MPSCNNConvolution")]
1917 #[unsafe(method(nodeWithSourceGradient:sourceImage:convolutionTransposeGradientState:weights:))]
1933 #[unsafe(method_family = none)]
1934 pub unsafe fn nodeWithSourceGradient_sourceImage_convolutionTransposeGradientState_weights(
1935 source_gradient: &MPSNNImageNode,
1936 source_image: &MPSNNImageNode,
1937 gradient_state: &MPSCNNConvolutionTransposeGradientStateNode,
1938 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1939 ) -> Retained<Self>;
1940
1941 #[cfg(feature = "MPSCNNConvolution")]
1942 #[unsafe(method(initWithSourceGradient:sourceImage:convolutionTransposeGradientState:weights:))]
1958 #[unsafe(method_family = init)]
1959 pub unsafe fn initWithSourceGradient_sourceImage_convolutionTransposeGradientState_weights(
1960 this: Allocated<Self>,
1961 source_gradient: &MPSNNImageNode,
1962 source_image: &MPSNNImageNode,
1963 gradient_state: &MPSCNNConvolutionTransposeGradientStateNode,
1964 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1965 ) -> Retained<Self>;
1966 );
1967}
1968
1969impl MPSCNNConvolutionTransposeGradientNode {
1971 extern_methods!(
1972 #[cfg(feature = "MPSCNNConvolution")]
1973 #[unsafe(method(nodeWithSourceGradient:sourceImage:convolutionGradientState:weights:))]
1989 #[unsafe(method_family = none)]
1990 pub unsafe fn nodeWithSourceGradient_sourceImage_convolutionGradientState_weights(
1991 source_gradient: &MPSNNImageNode,
1992 source_image: &MPSNNImageNode,
1993 gradient_state: &MPSCNNConvolutionGradientStateNode,
1994 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
1995 ) -> Retained<Self>;
1996
1997 #[cfg(feature = "MPSCNNConvolution")]
1998 #[unsafe(method(initWithSourceGradient:sourceImage:convolutionGradientState:weights:))]
2014 #[unsafe(method_family = init)]
2015 pub unsafe fn initWithSourceGradient_sourceImage_convolutionGradientState_weights(
2016 this: Allocated<Self>,
2017 source_gradient: &MPSNNImageNode,
2018 source_image: &MPSNNImageNode,
2019 gradient_state: &MPSCNNConvolutionGradientStateNode,
2020 weights: Option<&ProtocolObject<dyn MPSCNNConvolutionDataSource>>,
2021 ) -> Retained<Self>;
2022 );
2023}
2024
2025impl MPSCNNConvolutionTransposeGradientNode {
2027 extern_methods!(
2028 #[unsafe(method(init))]
2029 #[unsafe(method_family = init)]
2030 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2031 );
2032}
2033
2034impl MPSCNNConvolutionTransposeGradientNode {
2036 extern_methods!(
2037 #[unsafe(method(new))]
2038 #[unsafe(method_family = new)]
2039 pub unsafe fn new() -> Retained<Self>;
2040 );
2041}
2042
2043extern_class!(
2044 #[unsafe(super(MPSNNFilterNode, NSObject))]
2063 #[derive(Debug, PartialEq, Eq, Hash)]
2064 pub struct MPSCNNNeuronNode;
2065);
2066
2067extern_conformance!(
2068 unsafe impl NSObjectProtocol for MPSCNNNeuronNode {}
2069);
2070
2071impl MPSCNNNeuronNode {
2072 extern_methods!(
2073 #[cfg(feature = "MPSCNNNeuron")]
2074 #[unsafe(method(nodeWithSource:descriptor:))]
2076 #[unsafe(method_family = none)]
2077 pub unsafe fn nodeWithSource_descriptor(
2078 source_node: &MPSNNImageNode,
2079 descriptor: &MPSNNNeuronDescriptor,
2080 ) -> Retained<Self>;
2081
2082 #[unsafe(method(a))]
2084 #[unsafe(method_family = none)]
2085 pub unsafe fn a(&self) -> c_float;
2086
2087 #[unsafe(method(b))]
2089 #[unsafe(method_family = none)]
2090 pub unsafe fn b(&self) -> c_float;
2091
2092 #[unsafe(method(c))]
2094 #[unsafe(method_family = none)]
2095 pub unsafe fn c(&self) -> c_float;
2096
2097 #[unsafe(method(init))]
2098 #[unsafe(method_family = init)]
2099 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2100 );
2101}
2102
2103impl MPSCNNNeuronNode {
2105 extern_methods!(
2106 #[unsafe(method(new))]
2107 #[unsafe(method_family = new)]
2108 pub unsafe fn new() -> Retained<Self>;
2109 );
2110}
2111
2112extern_class!(
2113 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2123 #[derive(Debug, PartialEq, Eq, Hash)]
2124 pub struct MPSCNNNeuronAbsoluteNode;
2125);
2126
2127extern_conformance!(
2128 unsafe impl NSObjectProtocol for MPSCNNNeuronAbsoluteNode {}
2129);
2130
2131impl MPSCNNNeuronAbsoluteNode {
2132 extern_methods!(
2133 #[unsafe(method(nodeWithSource:))]
2137 #[unsafe(method_family = none)]
2138 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2139
2140 #[unsafe(method(initWithSource:))]
2144 #[unsafe(method_family = init)]
2145 pub unsafe fn initWithSource(
2146 this: Allocated<Self>,
2147 source_node: &MPSNNImageNode,
2148 ) -> Retained<Self>;
2149 );
2150}
2151
2152impl MPSCNNNeuronAbsoluteNode {
2154 extern_methods!(
2155 #[cfg(feature = "MPSCNNNeuron")]
2156 #[unsafe(method(nodeWithSource:descriptor:))]
2158 #[unsafe(method_family = none)]
2159 pub unsafe fn nodeWithSource_descriptor(
2160 source_node: &MPSNNImageNode,
2161 descriptor: &MPSNNNeuronDescriptor,
2162 ) -> Retained<Self>;
2163
2164 #[unsafe(method(init))]
2165 #[unsafe(method_family = init)]
2166 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2167 );
2168}
2169
2170impl MPSCNNNeuronAbsoluteNode {
2172 extern_methods!(
2173 #[unsafe(method(new))]
2174 #[unsafe(method_family = new)]
2175 pub unsafe fn new() -> Retained<Self>;
2176 );
2177}
2178
2179extern_class!(
2180 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2191 #[derive(Debug, PartialEq, Eq, Hash)]
2192 pub struct MPSCNNNeuronELUNode;
2193);
2194
2195extern_conformance!(
2196 unsafe impl NSObjectProtocol for MPSCNNNeuronELUNode {}
2197);
2198
2199impl MPSCNNNeuronELUNode {
2200 extern_methods!(
2201 #[unsafe(method(nodeWithSource:a:))]
2202 #[unsafe(method_family = none)]
2203 pub unsafe fn nodeWithSource_a(source_node: &MPSNNImageNode, a: c_float) -> Retained<Self>;
2204
2205 #[unsafe(method(nodeWithSource:))]
2209 #[unsafe(method_family = none)]
2210 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2211
2212 #[unsafe(method(initWithSource:))]
2216 #[unsafe(method_family = init)]
2217 pub unsafe fn initWithSource(
2218 this: Allocated<Self>,
2219 source_node: &MPSNNImageNode,
2220 ) -> Retained<Self>;
2221
2222 #[unsafe(method(initWithSource:a:))]
2223 #[unsafe(method_family = init)]
2224 pub unsafe fn initWithSource_a(
2225 this: Allocated<Self>,
2226 source_node: &MPSNNImageNode,
2227 a: c_float,
2228 ) -> Retained<Self>;
2229 );
2230}
2231
2232impl MPSCNNNeuronELUNode {
2234 extern_methods!(
2235 #[cfg(feature = "MPSCNNNeuron")]
2236 #[unsafe(method(nodeWithSource:descriptor:))]
2238 #[unsafe(method_family = none)]
2239 pub unsafe fn nodeWithSource_descriptor(
2240 source_node: &MPSNNImageNode,
2241 descriptor: &MPSNNNeuronDescriptor,
2242 ) -> Retained<Self>;
2243
2244 #[unsafe(method(init))]
2245 #[unsafe(method_family = init)]
2246 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2247 );
2248}
2249
2250impl MPSCNNNeuronELUNode {
2252 extern_methods!(
2253 #[unsafe(method(new))]
2254 #[unsafe(method_family = new)]
2255 pub unsafe fn new() -> Retained<Self>;
2256 );
2257}
2258
2259extern_class!(
2260 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2270 #[derive(Debug, PartialEq, Eq, Hash)]
2271 pub struct MPSCNNNeuronReLUNNode;
2272);
2273
2274extern_conformance!(
2275 unsafe impl NSObjectProtocol for MPSCNNNeuronReLUNNode {}
2276);
2277
2278impl MPSCNNNeuronReLUNNode {
2279 extern_methods!(
2280 #[unsafe(method(nodeWithSource:a:b:))]
2281 #[unsafe(method_family = none)]
2282 pub unsafe fn nodeWithSource_a_b(
2283 source_node: &MPSNNImageNode,
2284 a: c_float,
2285 b: c_float,
2286 ) -> Retained<Self>;
2287
2288 #[unsafe(method(initWithSource:a:b:))]
2289 #[unsafe(method_family = init)]
2290 pub unsafe fn initWithSource_a_b(
2291 this: Allocated<Self>,
2292 source_node: &MPSNNImageNode,
2293 a: c_float,
2294 b: c_float,
2295 ) -> Retained<Self>;
2296
2297 #[unsafe(method(nodeWithSource:))]
2301 #[unsafe(method_family = none)]
2302 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2303
2304 #[unsafe(method(initWithSource:))]
2308 #[unsafe(method_family = init)]
2309 pub unsafe fn initWithSource(
2310 this: Allocated<Self>,
2311 source_node: &MPSNNImageNode,
2312 ) -> Retained<Self>;
2313 );
2314}
2315
2316impl MPSCNNNeuronReLUNNode {
2318 extern_methods!(
2319 #[cfg(feature = "MPSCNNNeuron")]
2320 #[unsafe(method(nodeWithSource:descriptor:))]
2322 #[unsafe(method_family = none)]
2323 pub unsafe fn nodeWithSource_descriptor(
2324 source_node: &MPSNNImageNode,
2325 descriptor: &MPSNNNeuronDescriptor,
2326 ) -> Retained<Self>;
2327
2328 #[unsafe(method(init))]
2329 #[unsafe(method_family = init)]
2330 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2331 );
2332}
2333
2334impl MPSCNNNeuronReLUNNode {
2336 extern_methods!(
2337 #[unsafe(method(new))]
2338 #[unsafe(method_family = new)]
2339 pub unsafe fn new() -> Retained<Self>;
2340 );
2341}
2342
2343extern_class!(
2344 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2354 #[derive(Debug, PartialEq, Eq, Hash)]
2355 pub struct MPSCNNNeuronLinearNode;
2356);
2357
2358extern_conformance!(
2359 unsafe impl NSObjectProtocol for MPSCNNNeuronLinearNode {}
2360);
2361
2362impl MPSCNNNeuronLinearNode {
2363 extern_methods!(
2364 #[unsafe(method(nodeWithSource:a:b:))]
2365 #[unsafe(method_family = none)]
2366 pub unsafe fn nodeWithSource_a_b(
2367 source_node: &MPSNNImageNode,
2368 a: c_float,
2369 b: c_float,
2370 ) -> Retained<Self>;
2371
2372 #[unsafe(method(initWithSource:a:b:))]
2382 #[unsafe(method_family = init)]
2383 pub unsafe fn initWithSource_a_b(
2384 this: Allocated<Self>,
2385 source_node: &MPSNNImageNode,
2386 a: c_float,
2387 b: c_float,
2388 ) -> Retained<Self>;
2389
2390 #[unsafe(method(nodeWithSource:))]
2394 #[unsafe(method_family = none)]
2395 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2396
2397 #[unsafe(method(initWithSource:))]
2401 #[unsafe(method_family = init)]
2402 pub unsafe fn initWithSource(
2403 this: Allocated<Self>,
2404 source_node: &MPSNNImageNode,
2405 ) -> Retained<Self>;
2406 );
2407}
2408
2409impl MPSCNNNeuronLinearNode {
2411 extern_methods!(
2412 #[cfg(feature = "MPSCNNNeuron")]
2413 #[unsafe(method(nodeWithSource:descriptor:))]
2415 #[unsafe(method_family = none)]
2416 pub unsafe fn nodeWithSource_descriptor(
2417 source_node: &MPSNNImageNode,
2418 descriptor: &MPSNNNeuronDescriptor,
2419 ) -> Retained<Self>;
2420
2421 #[unsafe(method(init))]
2422 #[unsafe(method_family = init)]
2423 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2424 );
2425}
2426
2427impl MPSCNNNeuronLinearNode {
2429 extern_methods!(
2430 #[unsafe(method(new))]
2431 #[unsafe(method_family = new)]
2432 pub unsafe fn new() -> Retained<Self>;
2433 );
2434}
2435
2436extern_class!(
2437 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2448 #[derive(Debug, PartialEq, Eq, Hash)]
2449 pub struct MPSCNNNeuronReLUNode;
2450);
2451
2452extern_conformance!(
2453 unsafe impl NSObjectProtocol for MPSCNNNeuronReLUNode {}
2454);
2455
2456impl MPSCNNNeuronReLUNode {
2457 extern_methods!(
2458 #[unsafe(method(nodeWithSource:a:))]
2459 #[unsafe(method_family = none)]
2460 pub unsafe fn nodeWithSource_a(source_node: &MPSNNImageNode, a: c_float) -> Retained<Self>;
2461
2462 #[unsafe(method(nodeWithSource:))]
2466 #[unsafe(method_family = none)]
2467 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2468
2469 #[unsafe(method(initWithSource:))]
2473 #[unsafe(method_family = init)]
2474 pub unsafe fn initWithSource(
2475 this: Allocated<Self>,
2476 source_node: &MPSNNImageNode,
2477 ) -> Retained<Self>;
2478
2479 #[unsafe(method(initWithSource:a:))]
2483 #[unsafe(method_family = init)]
2484 pub unsafe fn initWithSource_a(
2485 this: Allocated<Self>,
2486 source_node: &MPSNNImageNode,
2487 a: c_float,
2488 ) -> Retained<Self>;
2489 );
2490}
2491
2492impl MPSCNNNeuronReLUNode {
2494 extern_methods!(
2495 #[cfg(feature = "MPSCNNNeuron")]
2496 #[unsafe(method(nodeWithSource:descriptor:))]
2498 #[unsafe(method_family = none)]
2499 pub unsafe fn nodeWithSource_descriptor(
2500 source_node: &MPSNNImageNode,
2501 descriptor: &MPSNNNeuronDescriptor,
2502 ) -> Retained<Self>;
2503
2504 #[unsafe(method(init))]
2505 #[unsafe(method_family = init)]
2506 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2507 );
2508}
2509
2510impl MPSCNNNeuronReLUNode {
2512 extern_methods!(
2513 #[unsafe(method(new))]
2514 #[unsafe(method_family = new)]
2515 pub unsafe fn new() -> Retained<Self>;
2516 );
2517}
2518
2519extern_class!(
2520 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2530 #[derive(Debug, PartialEq, Eq, Hash)]
2531 pub struct MPSCNNNeuronSigmoidNode;
2532);
2533
2534extern_conformance!(
2535 unsafe impl NSObjectProtocol for MPSCNNNeuronSigmoidNode {}
2536);
2537
2538impl MPSCNNNeuronSigmoidNode {
2539 extern_methods!(
2540 #[unsafe(method(nodeWithSource:))]
2544 #[unsafe(method_family = none)]
2545 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2546
2547 #[unsafe(method(initWithSource:))]
2551 #[unsafe(method_family = init)]
2552 pub unsafe fn initWithSource(
2553 this: Allocated<Self>,
2554 source_node: &MPSNNImageNode,
2555 ) -> Retained<Self>;
2556 );
2557}
2558
2559impl MPSCNNNeuronSigmoidNode {
2561 extern_methods!(
2562 #[cfg(feature = "MPSCNNNeuron")]
2563 #[unsafe(method(nodeWithSource:descriptor:))]
2565 #[unsafe(method_family = none)]
2566 pub unsafe fn nodeWithSource_descriptor(
2567 source_node: &MPSNNImageNode,
2568 descriptor: &MPSNNNeuronDescriptor,
2569 ) -> Retained<Self>;
2570
2571 #[unsafe(method(init))]
2572 #[unsafe(method_family = init)]
2573 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2574 );
2575}
2576
2577impl MPSCNNNeuronSigmoidNode {
2579 extern_methods!(
2580 #[unsafe(method(new))]
2581 #[unsafe(method_family = new)]
2582 pub unsafe fn new() -> Retained<Self>;
2583 );
2584}
2585
2586extern_class!(
2587 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2597 #[derive(Debug, PartialEq, Eq, Hash)]
2598 pub struct MPSCNNNeuronHardSigmoidNode;
2599);
2600
2601extern_conformance!(
2602 unsafe impl NSObjectProtocol for MPSCNNNeuronHardSigmoidNode {}
2603);
2604
2605impl MPSCNNNeuronHardSigmoidNode {
2606 extern_methods!(
2607 #[unsafe(method(nodeWithSource:a:b:))]
2608 #[unsafe(method_family = none)]
2609 pub unsafe fn nodeWithSource_a_b(
2610 source_node: &MPSNNImageNode,
2611 a: c_float,
2612 b: c_float,
2613 ) -> Retained<Self>;
2614
2615 #[unsafe(method(initWithSource:a:b:))]
2625 #[unsafe(method_family = init)]
2626 pub unsafe fn initWithSource_a_b(
2627 this: Allocated<Self>,
2628 source_node: &MPSNNImageNode,
2629 a: c_float,
2630 b: c_float,
2631 ) -> Retained<Self>;
2632
2633 #[unsafe(method(nodeWithSource:))]
2637 #[unsafe(method_family = none)]
2638 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2639
2640 #[unsafe(method(initWithSource:))]
2644 #[unsafe(method_family = init)]
2645 pub unsafe fn initWithSource(
2646 this: Allocated<Self>,
2647 source_node: &MPSNNImageNode,
2648 ) -> Retained<Self>;
2649 );
2650}
2651
2652impl MPSCNNNeuronHardSigmoidNode {
2654 extern_methods!(
2655 #[cfg(feature = "MPSCNNNeuron")]
2656 #[unsafe(method(nodeWithSource:descriptor:))]
2658 #[unsafe(method_family = none)]
2659 pub unsafe fn nodeWithSource_descriptor(
2660 source_node: &MPSNNImageNode,
2661 descriptor: &MPSNNNeuronDescriptor,
2662 ) -> Retained<Self>;
2663
2664 #[unsafe(method(init))]
2665 #[unsafe(method_family = init)]
2666 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2667 );
2668}
2669
2670impl MPSCNNNeuronHardSigmoidNode {
2672 extern_methods!(
2673 #[unsafe(method(new))]
2674 #[unsafe(method_family = new)]
2675 pub unsafe fn new() -> Retained<Self>;
2676 );
2677}
2678
2679extern_class!(
2680 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2690 #[derive(Debug, PartialEq, Eq, Hash)]
2691 pub struct MPSCNNNeuronSoftPlusNode;
2692);
2693
2694extern_conformance!(
2695 unsafe impl NSObjectProtocol for MPSCNNNeuronSoftPlusNode {}
2696);
2697
2698impl MPSCNNNeuronSoftPlusNode {
2699 extern_methods!(
2700 #[unsafe(method(nodeWithSource:a:b:))]
2701 #[unsafe(method_family = none)]
2702 pub unsafe fn nodeWithSource_a_b(
2703 source_node: &MPSNNImageNode,
2704 a: c_float,
2705 b: c_float,
2706 ) -> Retained<Self>;
2707
2708 #[unsafe(method(initWithSource:a:b:))]
2718 #[unsafe(method_family = init)]
2719 pub unsafe fn initWithSource_a_b(
2720 this: Allocated<Self>,
2721 source_node: &MPSNNImageNode,
2722 a: c_float,
2723 b: c_float,
2724 ) -> Retained<Self>;
2725
2726 #[unsafe(method(nodeWithSource:))]
2730 #[unsafe(method_family = none)]
2731 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2732
2733 #[unsafe(method(initWithSource:))]
2737 #[unsafe(method_family = init)]
2738 pub unsafe fn initWithSource(
2739 this: Allocated<Self>,
2740 source_node: &MPSNNImageNode,
2741 ) -> Retained<Self>;
2742 );
2743}
2744
2745impl MPSCNNNeuronSoftPlusNode {
2747 extern_methods!(
2748 #[cfg(feature = "MPSCNNNeuron")]
2749 #[unsafe(method(nodeWithSource:descriptor:))]
2751 #[unsafe(method_family = none)]
2752 pub unsafe fn nodeWithSource_descriptor(
2753 source_node: &MPSNNImageNode,
2754 descriptor: &MPSNNNeuronDescriptor,
2755 ) -> Retained<Self>;
2756
2757 #[unsafe(method(init))]
2758 #[unsafe(method_family = init)]
2759 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2760 );
2761}
2762
2763impl MPSCNNNeuronSoftPlusNode {
2765 extern_methods!(
2766 #[unsafe(method(new))]
2767 #[unsafe(method_family = new)]
2768 pub unsafe fn new() -> Retained<Self>;
2769 );
2770}
2771
2772extern_class!(
2773 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2783 #[derive(Debug, PartialEq, Eq, Hash)]
2784 pub struct MPSCNNNeuronSoftSignNode;
2785);
2786
2787extern_conformance!(
2788 unsafe impl NSObjectProtocol for MPSCNNNeuronSoftSignNode {}
2789);
2790
2791impl MPSCNNNeuronSoftSignNode {
2792 extern_methods!(
2793 #[unsafe(method(nodeWithSource:))]
2797 #[unsafe(method_family = none)]
2798 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2799
2800 #[unsafe(method(initWithSource:))]
2804 #[unsafe(method_family = init)]
2805 pub unsafe fn initWithSource(
2806 this: Allocated<Self>,
2807 source_node: &MPSNNImageNode,
2808 ) -> Retained<Self>;
2809 );
2810}
2811
2812impl MPSCNNNeuronSoftSignNode {
2814 extern_methods!(
2815 #[cfg(feature = "MPSCNNNeuron")]
2816 #[unsafe(method(nodeWithSource:descriptor:))]
2818 #[unsafe(method_family = none)]
2819 pub unsafe fn nodeWithSource_descriptor(
2820 source_node: &MPSNNImageNode,
2821 descriptor: &MPSNNNeuronDescriptor,
2822 ) -> Retained<Self>;
2823
2824 #[unsafe(method(init))]
2825 #[unsafe(method_family = init)]
2826 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2827 );
2828}
2829
2830impl MPSCNNNeuronSoftSignNode {
2832 extern_methods!(
2833 #[unsafe(method(new))]
2834 #[unsafe(method_family = new)]
2835 pub unsafe fn new() -> Retained<Self>;
2836 );
2837}
2838
2839extern_class!(
2840 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2850 #[derive(Debug, PartialEq, Eq, Hash)]
2851 pub struct MPSCNNNeuronTanHNode;
2852);
2853
2854extern_conformance!(
2855 unsafe impl NSObjectProtocol for MPSCNNNeuronTanHNode {}
2856);
2857
2858impl MPSCNNNeuronTanHNode {
2859 extern_methods!(
2860 #[unsafe(method(nodeWithSource:a:b:))]
2861 #[unsafe(method_family = none)]
2862 pub unsafe fn nodeWithSource_a_b(
2863 source_node: &MPSNNImageNode,
2864 a: c_float,
2865 b: c_float,
2866 ) -> Retained<Self>;
2867
2868 #[unsafe(method(initWithSource:a:b:))]
2885 #[unsafe(method_family = init)]
2886 pub unsafe fn initWithSource_a_b(
2887 this: Allocated<Self>,
2888 source_node: &MPSNNImageNode,
2889 a: c_float,
2890 b: c_float,
2891 ) -> Retained<Self>;
2892
2893 #[unsafe(method(nodeWithSource:))]
2897 #[unsafe(method_family = none)]
2898 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2899
2900 #[unsafe(method(initWithSource:))]
2904 #[unsafe(method_family = init)]
2905 pub unsafe fn initWithSource(
2906 this: Allocated<Self>,
2907 source_node: &MPSNNImageNode,
2908 ) -> Retained<Self>;
2909 );
2910}
2911
2912impl MPSCNNNeuronTanHNode {
2914 extern_methods!(
2915 #[cfg(feature = "MPSCNNNeuron")]
2916 #[unsafe(method(nodeWithSource:descriptor:))]
2918 #[unsafe(method_family = none)]
2919 pub unsafe fn nodeWithSource_descriptor(
2920 source_node: &MPSNNImageNode,
2921 descriptor: &MPSNNNeuronDescriptor,
2922 ) -> Retained<Self>;
2923
2924 #[unsafe(method(init))]
2925 #[unsafe(method_family = init)]
2926 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
2927 );
2928}
2929
2930impl MPSCNNNeuronTanHNode {
2932 extern_methods!(
2933 #[unsafe(method(new))]
2934 #[unsafe(method_family = new)]
2935 pub unsafe fn new() -> Retained<Self>;
2936 );
2937}
2938
2939extern_class!(
2940 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
2953 #[derive(Debug, PartialEq, Eq, Hash)]
2954 pub struct MPSCNNNeuronPReLUNode;
2955);
2956
2957extern_conformance!(
2958 unsafe impl NSObjectProtocol for MPSCNNNeuronPReLUNode {}
2959);
2960
2961impl MPSCNNNeuronPReLUNode {
2962 extern_methods!(
2963 #[unsafe(method(nodeWithSource:aData:))]
2964 #[unsafe(method_family = none)]
2965 pub unsafe fn nodeWithSource_aData(
2966 source_node: &MPSNNImageNode,
2967 a_data: &NSData,
2968 ) -> Retained<Self>;
2969
2970 #[unsafe(method(initWithSource:aData:))]
2986 #[unsafe(method_family = init)]
2987 pub unsafe fn initWithSource_aData(
2988 this: Allocated<Self>,
2989 source_node: &MPSNNImageNode,
2990 a_data: &NSData,
2991 ) -> Retained<Self>;
2992
2993 #[unsafe(method(nodeWithSource:))]
2994 #[unsafe(method_family = none)]
2995 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
2996
2997 #[unsafe(method(initWithSource:))]
2998 #[unsafe(method_family = init)]
2999 pub unsafe fn initWithSource(
3000 this: Allocated<Self>,
3001 source_node: &MPSNNImageNode,
3002 ) -> Retained<Self>;
3003 );
3004}
3005
3006impl MPSCNNNeuronPReLUNode {
3008 extern_methods!(
3009 #[cfg(feature = "MPSCNNNeuron")]
3010 #[unsafe(method(nodeWithSource:descriptor:))]
3012 #[unsafe(method_family = none)]
3013 pub unsafe fn nodeWithSource_descriptor(
3014 source_node: &MPSNNImageNode,
3015 descriptor: &MPSNNNeuronDescriptor,
3016 ) -> Retained<Self>;
3017
3018 #[unsafe(method(init))]
3019 #[unsafe(method_family = init)]
3020 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3021 );
3022}
3023
3024impl MPSCNNNeuronPReLUNode {
3026 extern_methods!(
3027 #[unsafe(method(new))]
3028 #[unsafe(method_family = new)]
3029 pub unsafe fn new() -> Retained<Self>;
3030 );
3031}
3032
3033extern_class!(
3034 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
3044 #[derive(Debug, PartialEq, Eq, Hash)]
3045 pub struct MPSCNNNeuronPowerNode;
3046);
3047
3048extern_conformance!(
3049 unsafe impl NSObjectProtocol for MPSCNNNeuronPowerNode {}
3050);
3051
3052impl MPSCNNNeuronPowerNode {
3053 extern_methods!(
3054 #[unsafe(method(nodeWithSource:a:b:c:))]
3055 #[unsafe(method_family = none)]
3056 pub unsafe fn nodeWithSource_a_b_c(
3057 source_node: &MPSNNImageNode,
3058 a: c_float,
3059 b: c_float,
3060 c: c_float,
3061 ) -> Retained<Self>;
3062
3063 #[unsafe(method(initWithSource:a:b:c:))]
3082 #[unsafe(method_family = init)]
3083 pub unsafe fn initWithSource_a_b_c(
3084 this: Allocated<Self>,
3085 source_node: &MPSNNImageNode,
3086 a: c_float,
3087 b: c_float,
3088 c: c_float,
3089 ) -> Retained<Self>;
3090
3091 #[unsafe(method(nodeWithSource:))]
3093 #[unsafe(method_family = none)]
3094 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3095
3096 #[unsafe(method(initWithSource:))]
3098 #[unsafe(method_family = init)]
3099 pub unsafe fn initWithSource(
3100 this: Allocated<Self>,
3101 source_node: &MPSNNImageNode,
3102 ) -> Retained<Self>;
3103 );
3104}
3105
3106impl MPSCNNNeuronPowerNode {
3108 extern_methods!(
3109 #[cfg(feature = "MPSCNNNeuron")]
3110 #[unsafe(method(nodeWithSource:descriptor:))]
3112 #[unsafe(method_family = none)]
3113 pub unsafe fn nodeWithSource_descriptor(
3114 source_node: &MPSNNImageNode,
3115 descriptor: &MPSNNNeuronDescriptor,
3116 ) -> Retained<Self>;
3117
3118 #[unsafe(method(init))]
3119 #[unsafe(method_family = init)]
3120 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3121 );
3122}
3123
3124impl MPSCNNNeuronPowerNode {
3126 extern_methods!(
3127 #[unsafe(method(new))]
3128 #[unsafe(method_family = new)]
3129 pub unsafe fn new() -> Retained<Self>;
3130 );
3131}
3132
3133extern_class!(
3134 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
3144 #[derive(Debug, PartialEq, Eq, Hash)]
3145 pub struct MPSCNNNeuronExponentialNode;
3146);
3147
3148extern_conformance!(
3149 unsafe impl NSObjectProtocol for MPSCNNNeuronExponentialNode {}
3150);
3151
3152impl MPSCNNNeuronExponentialNode {
3153 extern_methods!(
3154 #[unsafe(method(nodeWithSource:a:b:c:))]
3155 #[unsafe(method_family = none)]
3156 pub unsafe fn nodeWithSource_a_b_c(
3157 source_node: &MPSNNImageNode,
3158 a: c_float,
3159 b: c_float,
3160 c: c_float,
3161 ) -> Retained<Self>;
3162
3163 #[unsafe(method(initWithSource:a:b:c:))]
3182 #[unsafe(method_family = init)]
3183 pub unsafe fn initWithSource_a_b_c(
3184 this: Allocated<Self>,
3185 source_node: &MPSNNImageNode,
3186 a: c_float,
3187 b: c_float,
3188 c: c_float,
3189 ) -> Retained<Self>;
3190
3191 #[unsafe(method(nodeWithSource:))]
3193 #[unsafe(method_family = none)]
3194 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3195
3196 #[unsafe(method(initWithSource:))]
3198 #[unsafe(method_family = init)]
3199 pub unsafe fn initWithSource(
3200 this: Allocated<Self>,
3201 source_node: &MPSNNImageNode,
3202 ) -> Retained<Self>;
3203 );
3204}
3205
3206impl MPSCNNNeuronExponentialNode {
3208 extern_methods!(
3209 #[cfg(feature = "MPSCNNNeuron")]
3210 #[unsafe(method(nodeWithSource:descriptor:))]
3212 #[unsafe(method_family = none)]
3213 pub unsafe fn nodeWithSource_descriptor(
3214 source_node: &MPSNNImageNode,
3215 descriptor: &MPSNNNeuronDescriptor,
3216 ) -> Retained<Self>;
3217
3218 #[unsafe(method(init))]
3219 #[unsafe(method_family = init)]
3220 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3221 );
3222}
3223
3224impl MPSCNNNeuronExponentialNode {
3226 extern_methods!(
3227 #[unsafe(method(new))]
3228 #[unsafe(method_family = new)]
3229 pub unsafe fn new() -> Retained<Self>;
3230 );
3231}
3232
3233extern_class!(
3234 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
3244 #[derive(Debug, PartialEq, Eq, Hash)]
3245 pub struct MPSCNNNeuronLogarithmNode;
3246);
3247
3248extern_conformance!(
3249 unsafe impl NSObjectProtocol for MPSCNNNeuronLogarithmNode {}
3250);
3251
3252impl MPSCNNNeuronLogarithmNode {
3253 extern_methods!(
3254 #[unsafe(method(nodeWithSource:a:b:c:))]
3255 #[unsafe(method_family = none)]
3256 pub unsafe fn nodeWithSource_a_b_c(
3257 source_node: &MPSNNImageNode,
3258 a: c_float,
3259 b: c_float,
3260 c: c_float,
3261 ) -> Retained<Self>;
3262
3263 #[unsafe(method(initWithSource:a:b:c:))]
3282 #[unsafe(method_family = init)]
3283 pub unsafe fn initWithSource_a_b_c(
3284 this: Allocated<Self>,
3285 source_node: &MPSNNImageNode,
3286 a: c_float,
3287 b: c_float,
3288 c: c_float,
3289 ) -> Retained<Self>;
3290
3291 #[unsafe(method(nodeWithSource:))]
3293 #[unsafe(method_family = none)]
3294 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3295
3296 #[unsafe(method(initWithSource:))]
3298 #[unsafe(method_family = init)]
3299 pub unsafe fn initWithSource(
3300 this: Allocated<Self>,
3301 source_node: &MPSNNImageNode,
3302 ) -> Retained<Self>;
3303 );
3304}
3305
3306impl MPSCNNNeuronLogarithmNode {
3308 extern_methods!(
3309 #[cfg(feature = "MPSCNNNeuron")]
3310 #[unsafe(method(nodeWithSource:descriptor:))]
3312 #[unsafe(method_family = none)]
3313 pub unsafe fn nodeWithSource_descriptor(
3314 source_node: &MPSNNImageNode,
3315 descriptor: &MPSNNNeuronDescriptor,
3316 ) -> Retained<Self>;
3317
3318 #[unsafe(method(init))]
3319 #[unsafe(method_family = init)]
3320 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3321 );
3322}
3323
3324impl MPSCNNNeuronLogarithmNode {
3326 extern_methods!(
3327 #[unsafe(method(new))]
3328 #[unsafe(method_family = new)]
3329 pub unsafe fn new() -> Retained<Self>;
3330 );
3331}
3332
3333extern_class!(
3334 #[unsafe(super(MPSCNNNeuronNode, MPSNNFilterNode, NSObject))]
3340 #[derive(Debug, PartialEq, Eq, Hash)]
3341 pub struct MPSCNNNeuronGeLUNode;
3342);
3343
3344extern_conformance!(
3345 unsafe impl NSObjectProtocol for MPSCNNNeuronGeLUNode {}
3346);
3347
3348impl MPSCNNNeuronGeLUNode {
3349 extern_methods!(
3350 #[unsafe(method(initWithSource:))]
3358 #[unsafe(method_family = init)]
3359 pub unsafe fn initWithSource(
3360 this: Allocated<Self>,
3361 source_node: &MPSNNImageNode,
3362 ) -> Retained<Self>;
3363
3364 #[unsafe(method(nodeWithSource:))]
3366 #[unsafe(method_family = none)]
3367 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3368 );
3369}
3370
3371impl MPSCNNNeuronGeLUNode {
3373 extern_methods!(
3374 #[cfg(feature = "MPSCNNNeuron")]
3375 #[unsafe(method(nodeWithSource:descriptor:))]
3377 #[unsafe(method_family = none)]
3378 pub unsafe fn nodeWithSource_descriptor(
3379 source_node: &MPSNNImageNode,
3380 descriptor: &MPSNNNeuronDescriptor,
3381 ) -> Retained<Self>;
3382
3383 #[unsafe(method(init))]
3384 #[unsafe(method_family = init)]
3385 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3386 );
3387}
3388
3389impl MPSCNNNeuronGeLUNode {
3391 extern_methods!(
3392 #[unsafe(method(new))]
3393 #[unsafe(method_family = new)]
3394 pub unsafe fn new() -> Retained<Self>;
3395 );
3396}
3397
3398extern_class!(
3399 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
3406 #[derive(Debug, PartialEq, Eq, Hash)]
3407 pub struct MPSCNNNeuronGradientNode;
3408);
3409
3410extern_conformance!(
3411 unsafe impl NSObjectProtocol for MPSCNNNeuronGradientNode {}
3412);
3413
3414impl MPSCNNNeuronGradientNode {
3415 extern_methods!(
3416 #[cfg(feature = "MPSCNNNeuron")]
3417 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:descriptor:))]
3422 #[unsafe(method_family = none)]
3423 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_descriptor(
3424 source_gradient: &MPSNNImageNode,
3425 source_image: &MPSNNImageNode,
3426 gradient_state: &MPSNNGradientStateNode,
3427 descriptor: &MPSNNNeuronDescriptor,
3428 ) -> Retained<Self>;
3429
3430 #[cfg(feature = "MPSCNNNeuron")]
3431 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:descriptor:))]
3436 #[unsafe(method_family = init)]
3437 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_descriptor(
3438 this: Allocated<Self>,
3439 source_gradient: &MPSNNImageNode,
3440 source_image: &MPSNNImageNode,
3441 gradient_state: &MPSNNGradientStateNode,
3442 descriptor: &MPSNNNeuronDescriptor,
3443 ) -> Retained<Self>;
3444
3445 #[cfg(feature = "MPSCNNNeuron")]
3446 #[unsafe(method(descriptor))]
3448 #[unsafe(method_family = none)]
3449 pub unsafe fn descriptor(&self) -> Retained<MPSNNNeuronDescriptor>;
3450
3451 #[unsafe(method(init))]
3452 #[unsafe(method_family = init)]
3453 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3454 );
3455}
3456
3457impl MPSCNNNeuronGradientNode {
3459 extern_methods!(
3460 #[unsafe(method(new))]
3461 #[unsafe(method_family = new)]
3462 pub unsafe fn new() -> Retained<Self>;
3463 );
3464}
3465
3466extern_class!(
3467 #[unsafe(super(MPSNNFilterNode, NSObject))]
3475 #[derive(Debug, PartialEq, Eq, Hash)]
3476 pub struct MPSNNUnaryReductionNode;
3477);
3478
3479extern_conformance!(
3480 unsafe impl NSObjectProtocol for MPSNNUnaryReductionNode {}
3481);
3482
3483impl MPSNNUnaryReductionNode {
3484 extern_methods!(
3485 #[unsafe(method(clipRectSource))]
3487 #[unsafe(method_family = none)]
3488 pub unsafe fn clipRectSource(&self) -> MTLRegion;
3489
3490 #[unsafe(method(setClipRectSource:))]
3492 #[unsafe(method_family = none)]
3493 pub unsafe fn setClipRectSource(&self, clip_rect_source: MTLRegion);
3494
3495 #[unsafe(method(nodeWithSource:))]
3501 #[unsafe(method_family = none)]
3502 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3503
3504 #[unsafe(method(initWithSource:))]
3510 #[unsafe(method_family = init)]
3511 pub unsafe fn initWithSource(
3512 this: Allocated<Self>,
3513 source_node: &MPSNNImageNode,
3514 ) -> Retained<Self>;
3515 );
3516}
3517
3518impl MPSNNUnaryReductionNode {
3520 extern_methods!(
3521 #[unsafe(method(init))]
3522 #[unsafe(method_family = init)]
3523 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3524 );
3525}
3526
3527impl MPSNNUnaryReductionNode {
3529 extern_methods!(
3530 #[unsafe(method(new))]
3531 #[unsafe(method_family = new)]
3532 pub unsafe fn new() -> Retained<Self>;
3533 );
3534}
3535
3536extern_class!(
3537 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3539 #[derive(Debug, PartialEq, Eq, Hash)]
3540 pub struct MPSNNReductionRowMinNode;
3541);
3542
3543extern_conformance!(
3544 unsafe impl NSObjectProtocol for MPSNNReductionRowMinNode {}
3545);
3546
3547impl MPSNNReductionRowMinNode {
3548 extern_methods!();
3549}
3550
3551impl MPSNNReductionRowMinNode {
3553 extern_methods!(
3554 #[unsafe(method(nodeWithSource:))]
3560 #[unsafe(method_family = none)]
3561 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3562
3563 #[unsafe(method(initWithSource:))]
3569 #[unsafe(method_family = init)]
3570 pub unsafe fn initWithSource(
3571 this: Allocated<Self>,
3572 source_node: &MPSNNImageNode,
3573 ) -> Retained<Self>;
3574 );
3575}
3576
3577impl MPSNNReductionRowMinNode {
3579 extern_methods!(
3580 #[unsafe(method(init))]
3581 #[unsafe(method_family = init)]
3582 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3583 );
3584}
3585
3586impl MPSNNReductionRowMinNode {
3588 extern_methods!(
3589 #[unsafe(method(new))]
3590 #[unsafe(method_family = new)]
3591 pub unsafe fn new() -> Retained<Self>;
3592 );
3593}
3594
3595extern_class!(
3596 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3598 #[derive(Debug, PartialEq, Eq, Hash)]
3599 pub struct MPSNNReductionColumnMinNode;
3600);
3601
3602extern_conformance!(
3603 unsafe impl NSObjectProtocol for MPSNNReductionColumnMinNode {}
3604);
3605
3606impl MPSNNReductionColumnMinNode {
3607 extern_methods!();
3608}
3609
3610impl MPSNNReductionColumnMinNode {
3612 extern_methods!(
3613 #[unsafe(method(nodeWithSource:))]
3619 #[unsafe(method_family = none)]
3620 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3621
3622 #[unsafe(method(initWithSource:))]
3628 #[unsafe(method_family = init)]
3629 pub unsafe fn initWithSource(
3630 this: Allocated<Self>,
3631 source_node: &MPSNNImageNode,
3632 ) -> Retained<Self>;
3633 );
3634}
3635
3636impl MPSNNReductionColumnMinNode {
3638 extern_methods!(
3639 #[unsafe(method(init))]
3640 #[unsafe(method_family = init)]
3641 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3642 );
3643}
3644
3645impl MPSNNReductionColumnMinNode {
3647 extern_methods!(
3648 #[unsafe(method(new))]
3649 #[unsafe(method_family = new)]
3650 pub unsafe fn new() -> Retained<Self>;
3651 );
3652}
3653
3654extern_class!(
3655 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3657 #[derive(Debug, PartialEq, Eq, Hash)]
3658 pub struct MPSNNReductionFeatureChannelsMinNode;
3659);
3660
3661extern_conformance!(
3662 unsafe impl NSObjectProtocol for MPSNNReductionFeatureChannelsMinNode {}
3663);
3664
3665impl MPSNNReductionFeatureChannelsMinNode {
3666 extern_methods!();
3667}
3668
3669impl MPSNNReductionFeatureChannelsMinNode {
3671 extern_methods!(
3672 #[unsafe(method(nodeWithSource:))]
3678 #[unsafe(method_family = none)]
3679 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3680
3681 #[unsafe(method(initWithSource:))]
3687 #[unsafe(method_family = init)]
3688 pub unsafe fn initWithSource(
3689 this: Allocated<Self>,
3690 source_node: &MPSNNImageNode,
3691 ) -> Retained<Self>;
3692 );
3693}
3694
3695impl MPSNNReductionFeatureChannelsMinNode {
3697 extern_methods!(
3698 #[unsafe(method(init))]
3699 #[unsafe(method_family = init)]
3700 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3701 );
3702}
3703
3704impl MPSNNReductionFeatureChannelsMinNode {
3706 extern_methods!(
3707 #[unsafe(method(new))]
3708 #[unsafe(method_family = new)]
3709 pub unsafe fn new() -> Retained<Self>;
3710 );
3711}
3712
3713extern_class!(
3714 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3716 #[derive(Debug, PartialEq, Eq, Hash)]
3717 pub struct MPSNNReductionFeatureChannelsArgumentMinNode;
3718);
3719
3720extern_conformance!(
3721 unsafe impl NSObjectProtocol for MPSNNReductionFeatureChannelsArgumentMinNode {}
3722);
3723
3724impl MPSNNReductionFeatureChannelsArgumentMinNode {
3725 extern_methods!();
3726}
3727
3728impl MPSNNReductionFeatureChannelsArgumentMinNode {
3730 extern_methods!(
3731 #[unsafe(method(nodeWithSource:))]
3737 #[unsafe(method_family = none)]
3738 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3739
3740 #[unsafe(method(initWithSource:))]
3746 #[unsafe(method_family = init)]
3747 pub unsafe fn initWithSource(
3748 this: Allocated<Self>,
3749 source_node: &MPSNNImageNode,
3750 ) -> Retained<Self>;
3751 );
3752}
3753
3754impl MPSNNReductionFeatureChannelsArgumentMinNode {
3756 extern_methods!(
3757 #[unsafe(method(init))]
3758 #[unsafe(method_family = init)]
3759 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3760 );
3761}
3762
3763impl MPSNNReductionFeatureChannelsArgumentMinNode {
3765 extern_methods!(
3766 #[unsafe(method(new))]
3767 #[unsafe(method_family = new)]
3768 pub unsafe fn new() -> Retained<Self>;
3769 );
3770}
3771
3772extern_class!(
3773 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3775 #[derive(Debug, PartialEq, Eq, Hash)]
3776 pub struct MPSNNReductionRowMaxNode;
3777);
3778
3779extern_conformance!(
3780 unsafe impl NSObjectProtocol for MPSNNReductionRowMaxNode {}
3781);
3782
3783impl MPSNNReductionRowMaxNode {
3784 extern_methods!();
3785}
3786
3787impl MPSNNReductionRowMaxNode {
3789 extern_methods!(
3790 #[unsafe(method(nodeWithSource:))]
3796 #[unsafe(method_family = none)]
3797 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3798
3799 #[unsafe(method(initWithSource:))]
3805 #[unsafe(method_family = init)]
3806 pub unsafe fn initWithSource(
3807 this: Allocated<Self>,
3808 source_node: &MPSNNImageNode,
3809 ) -> Retained<Self>;
3810 );
3811}
3812
3813impl MPSNNReductionRowMaxNode {
3815 extern_methods!(
3816 #[unsafe(method(init))]
3817 #[unsafe(method_family = init)]
3818 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3819 );
3820}
3821
3822impl MPSNNReductionRowMaxNode {
3824 extern_methods!(
3825 #[unsafe(method(new))]
3826 #[unsafe(method_family = new)]
3827 pub unsafe fn new() -> Retained<Self>;
3828 );
3829}
3830
3831extern_class!(
3832 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3834 #[derive(Debug, PartialEq, Eq, Hash)]
3835 pub struct MPSNNReductionColumnMaxNode;
3836);
3837
3838extern_conformance!(
3839 unsafe impl NSObjectProtocol for MPSNNReductionColumnMaxNode {}
3840);
3841
3842impl MPSNNReductionColumnMaxNode {
3843 extern_methods!();
3844}
3845
3846impl MPSNNReductionColumnMaxNode {
3848 extern_methods!(
3849 #[unsafe(method(nodeWithSource:))]
3855 #[unsafe(method_family = none)]
3856 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3857
3858 #[unsafe(method(initWithSource:))]
3864 #[unsafe(method_family = init)]
3865 pub unsafe fn initWithSource(
3866 this: Allocated<Self>,
3867 source_node: &MPSNNImageNode,
3868 ) -> Retained<Self>;
3869 );
3870}
3871
3872impl MPSNNReductionColumnMaxNode {
3874 extern_methods!(
3875 #[unsafe(method(init))]
3876 #[unsafe(method_family = init)]
3877 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3878 );
3879}
3880
3881impl MPSNNReductionColumnMaxNode {
3883 extern_methods!(
3884 #[unsafe(method(new))]
3885 #[unsafe(method_family = new)]
3886 pub unsafe fn new() -> Retained<Self>;
3887 );
3888}
3889
3890extern_class!(
3891 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3893 #[derive(Debug, PartialEq, Eq, Hash)]
3894 pub struct MPSNNReductionFeatureChannelsMaxNode;
3895);
3896
3897extern_conformance!(
3898 unsafe impl NSObjectProtocol for MPSNNReductionFeatureChannelsMaxNode {}
3899);
3900
3901impl MPSNNReductionFeatureChannelsMaxNode {
3902 extern_methods!();
3903}
3904
3905impl MPSNNReductionFeatureChannelsMaxNode {
3907 extern_methods!(
3908 #[unsafe(method(nodeWithSource:))]
3914 #[unsafe(method_family = none)]
3915 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3916
3917 #[unsafe(method(initWithSource:))]
3923 #[unsafe(method_family = init)]
3924 pub unsafe fn initWithSource(
3925 this: Allocated<Self>,
3926 source_node: &MPSNNImageNode,
3927 ) -> Retained<Self>;
3928 );
3929}
3930
3931impl MPSNNReductionFeatureChannelsMaxNode {
3933 extern_methods!(
3934 #[unsafe(method(init))]
3935 #[unsafe(method_family = init)]
3936 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3937 );
3938}
3939
3940impl MPSNNReductionFeatureChannelsMaxNode {
3942 extern_methods!(
3943 #[unsafe(method(new))]
3944 #[unsafe(method_family = new)]
3945 pub unsafe fn new() -> Retained<Self>;
3946 );
3947}
3948
3949extern_class!(
3950 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
3952 #[derive(Debug, PartialEq, Eq, Hash)]
3953 pub struct MPSNNReductionFeatureChannelsArgumentMaxNode;
3954);
3955
3956extern_conformance!(
3957 unsafe impl NSObjectProtocol for MPSNNReductionFeatureChannelsArgumentMaxNode {}
3958);
3959
3960impl MPSNNReductionFeatureChannelsArgumentMaxNode {
3961 extern_methods!();
3962}
3963
3964impl MPSNNReductionFeatureChannelsArgumentMaxNode {
3966 extern_methods!(
3967 #[unsafe(method(nodeWithSource:))]
3973 #[unsafe(method_family = none)]
3974 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
3975
3976 #[unsafe(method(initWithSource:))]
3982 #[unsafe(method_family = init)]
3983 pub unsafe fn initWithSource(
3984 this: Allocated<Self>,
3985 source_node: &MPSNNImageNode,
3986 ) -> Retained<Self>;
3987 );
3988}
3989
3990impl MPSNNReductionFeatureChannelsArgumentMaxNode {
3992 extern_methods!(
3993 #[unsafe(method(init))]
3994 #[unsafe(method_family = init)]
3995 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
3996 );
3997}
3998
3999impl MPSNNReductionFeatureChannelsArgumentMaxNode {
4001 extern_methods!(
4002 #[unsafe(method(new))]
4003 #[unsafe(method_family = new)]
4004 pub unsafe fn new() -> Retained<Self>;
4005 );
4006}
4007
4008extern_class!(
4009 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4011 #[derive(Debug, PartialEq, Eq, Hash)]
4012 pub struct MPSNNReductionRowMeanNode;
4013);
4014
4015extern_conformance!(
4016 unsafe impl NSObjectProtocol for MPSNNReductionRowMeanNode {}
4017);
4018
4019impl MPSNNReductionRowMeanNode {
4020 extern_methods!();
4021}
4022
4023impl MPSNNReductionRowMeanNode {
4025 extern_methods!(
4026 #[unsafe(method(nodeWithSource:))]
4032 #[unsafe(method_family = none)]
4033 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4034
4035 #[unsafe(method(initWithSource:))]
4041 #[unsafe(method_family = init)]
4042 pub unsafe fn initWithSource(
4043 this: Allocated<Self>,
4044 source_node: &MPSNNImageNode,
4045 ) -> Retained<Self>;
4046 );
4047}
4048
4049impl MPSNNReductionRowMeanNode {
4051 extern_methods!(
4052 #[unsafe(method(init))]
4053 #[unsafe(method_family = init)]
4054 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4055 );
4056}
4057
4058impl MPSNNReductionRowMeanNode {
4060 extern_methods!(
4061 #[unsafe(method(new))]
4062 #[unsafe(method_family = new)]
4063 pub unsafe fn new() -> Retained<Self>;
4064 );
4065}
4066
4067extern_class!(
4068 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4070 #[derive(Debug, PartialEq, Eq, Hash)]
4071 pub struct MPSNNReductionColumnMeanNode;
4072);
4073
4074extern_conformance!(
4075 unsafe impl NSObjectProtocol for MPSNNReductionColumnMeanNode {}
4076);
4077
4078impl MPSNNReductionColumnMeanNode {
4079 extern_methods!();
4080}
4081
4082impl MPSNNReductionColumnMeanNode {
4084 extern_methods!(
4085 #[unsafe(method(nodeWithSource:))]
4091 #[unsafe(method_family = none)]
4092 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4093
4094 #[unsafe(method(initWithSource:))]
4100 #[unsafe(method_family = init)]
4101 pub unsafe fn initWithSource(
4102 this: Allocated<Self>,
4103 source_node: &MPSNNImageNode,
4104 ) -> Retained<Self>;
4105 );
4106}
4107
4108impl MPSNNReductionColumnMeanNode {
4110 extern_methods!(
4111 #[unsafe(method(init))]
4112 #[unsafe(method_family = init)]
4113 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4114 );
4115}
4116
4117impl MPSNNReductionColumnMeanNode {
4119 extern_methods!(
4120 #[unsafe(method(new))]
4121 #[unsafe(method_family = new)]
4122 pub unsafe fn new() -> Retained<Self>;
4123 );
4124}
4125
4126extern_class!(
4127 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4129 #[derive(Debug, PartialEq, Eq, Hash)]
4130 pub struct MPSNNReductionFeatureChannelsMeanNode;
4131);
4132
4133extern_conformance!(
4134 unsafe impl NSObjectProtocol for MPSNNReductionFeatureChannelsMeanNode {}
4135);
4136
4137impl MPSNNReductionFeatureChannelsMeanNode {
4138 extern_methods!();
4139}
4140
4141impl MPSNNReductionFeatureChannelsMeanNode {
4143 extern_methods!(
4144 #[unsafe(method(nodeWithSource:))]
4150 #[unsafe(method_family = none)]
4151 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4152
4153 #[unsafe(method(initWithSource:))]
4159 #[unsafe(method_family = init)]
4160 pub unsafe fn initWithSource(
4161 this: Allocated<Self>,
4162 source_node: &MPSNNImageNode,
4163 ) -> Retained<Self>;
4164 );
4165}
4166
4167impl MPSNNReductionFeatureChannelsMeanNode {
4169 extern_methods!(
4170 #[unsafe(method(init))]
4171 #[unsafe(method_family = init)]
4172 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4173 );
4174}
4175
4176impl MPSNNReductionFeatureChannelsMeanNode {
4178 extern_methods!(
4179 #[unsafe(method(new))]
4180 #[unsafe(method_family = new)]
4181 pub unsafe fn new() -> Retained<Self>;
4182 );
4183}
4184
4185extern_class!(
4186 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4188 #[derive(Debug, PartialEq, Eq, Hash)]
4189 pub struct MPSNNReductionSpatialMeanNode;
4190);
4191
4192extern_conformance!(
4193 unsafe impl NSObjectProtocol for MPSNNReductionSpatialMeanNode {}
4194);
4195
4196impl MPSNNReductionSpatialMeanNode {
4197 extern_methods!();
4198}
4199
4200impl MPSNNReductionSpatialMeanNode {
4202 extern_methods!(
4203 #[unsafe(method(nodeWithSource:))]
4209 #[unsafe(method_family = none)]
4210 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4211
4212 #[unsafe(method(initWithSource:))]
4218 #[unsafe(method_family = init)]
4219 pub unsafe fn initWithSource(
4220 this: Allocated<Self>,
4221 source_node: &MPSNNImageNode,
4222 ) -> Retained<Self>;
4223 );
4224}
4225
4226impl MPSNNReductionSpatialMeanNode {
4228 extern_methods!(
4229 #[unsafe(method(init))]
4230 #[unsafe(method_family = init)]
4231 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4232 );
4233}
4234
4235impl MPSNNReductionSpatialMeanNode {
4237 extern_methods!(
4238 #[unsafe(method(new))]
4239 #[unsafe(method_family = new)]
4240 pub unsafe fn new() -> Retained<Self>;
4241 );
4242}
4243
4244extern_class!(
4245 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4247 #[derive(Debug, PartialEq, Eq, Hash)]
4248 pub struct MPSNNReductionRowSumNode;
4249);
4250
4251extern_conformance!(
4252 unsafe impl NSObjectProtocol for MPSNNReductionRowSumNode {}
4253);
4254
4255impl MPSNNReductionRowSumNode {
4256 extern_methods!();
4257}
4258
4259impl MPSNNReductionRowSumNode {
4261 extern_methods!(
4262 #[unsafe(method(nodeWithSource:))]
4268 #[unsafe(method_family = none)]
4269 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4270
4271 #[unsafe(method(initWithSource:))]
4277 #[unsafe(method_family = init)]
4278 pub unsafe fn initWithSource(
4279 this: Allocated<Self>,
4280 source_node: &MPSNNImageNode,
4281 ) -> Retained<Self>;
4282 );
4283}
4284
4285impl MPSNNReductionRowSumNode {
4287 extern_methods!(
4288 #[unsafe(method(init))]
4289 #[unsafe(method_family = init)]
4290 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4291 );
4292}
4293
4294impl MPSNNReductionRowSumNode {
4296 extern_methods!(
4297 #[unsafe(method(new))]
4298 #[unsafe(method_family = new)]
4299 pub unsafe fn new() -> Retained<Self>;
4300 );
4301}
4302
4303extern_class!(
4304 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4306 #[derive(Debug, PartialEq, Eq, Hash)]
4307 pub struct MPSNNReductionColumnSumNode;
4308);
4309
4310extern_conformance!(
4311 unsafe impl NSObjectProtocol for MPSNNReductionColumnSumNode {}
4312);
4313
4314impl MPSNNReductionColumnSumNode {
4315 extern_methods!();
4316}
4317
4318impl MPSNNReductionColumnSumNode {
4320 extern_methods!(
4321 #[unsafe(method(nodeWithSource:))]
4327 #[unsafe(method_family = none)]
4328 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4329
4330 #[unsafe(method(initWithSource:))]
4336 #[unsafe(method_family = init)]
4337 pub unsafe fn initWithSource(
4338 this: Allocated<Self>,
4339 source_node: &MPSNNImageNode,
4340 ) -> Retained<Self>;
4341 );
4342}
4343
4344impl MPSNNReductionColumnSumNode {
4346 extern_methods!(
4347 #[unsafe(method(init))]
4348 #[unsafe(method_family = init)]
4349 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4350 );
4351}
4352
4353impl MPSNNReductionColumnSumNode {
4355 extern_methods!(
4356 #[unsafe(method(new))]
4357 #[unsafe(method_family = new)]
4358 pub unsafe fn new() -> Retained<Self>;
4359 );
4360}
4361
4362extern_class!(
4363 #[unsafe(super(MPSNNUnaryReductionNode, MPSNNFilterNode, NSObject))]
4365 #[derive(Debug, PartialEq, Eq, Hash)]
4366 pub struct MPSNNReductionFeatureChannelsSumNode;
4367);
4368
4369extern_conformance!(
4370 unsafe impl NSObjectProtocol for MPSNNReductionFeatureChannelsSumNode {}
4371);
4372
4373impl MPSNNReductionFeatureChannelsSumNode {
4374 extern_methods!(
4375 #[unsafe(method(weight))]
4377 #[unsafe(method_family = none)]
4378 pub unsafe fn weight(&self) -> c_float;
4379
4380 #[unsafe(method(setWeight:))]
4382 #[unsafe(method_family = none)]
4383 pub unsafe fn setWeight(&self, weight: c_float);
4384 );
4385}
4386
4387impl MPSNNReductionFeatureChannelsSumNode {
4389 extern_methods!(
4390 #[unsafe(method(nodeWithSource:))]
4396 #[unsafe(method_family = none)]
4397 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
4398
4399 #[unsafe(method(initWithSource:))]
4405 #[unsafe(method_family = init)]
4406 pub unsafe fn initWithSource(
4407 this: Allocated<Self>,
4408 source_node: &MPSNNImageNode,
4409 ) -> Retained<Self>;
4410 );
4411}
4412
4413impl MPSNNReductionFeatureChannelsSumNode {
4415 extern_methods!(
4416 #[unsafe(method(init))]
4417 #[unsafe(method_family = init)]
4418 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4419 );
4420}
4421
4422impl MPSNNReductionFeatureChannelsSumNode {
4424 extern_methods!(
4425 #[unsafe(method(new))]
4426 #[unsafe(method_family = new)]
4427 pub unsafe fn new() -> Retained<Self>;
4428 );
4429}
4430
4431extern_class!(
4432 #[unsafe(super(MPSNNFilterNode, NSObject))]
4440 #[derive(Debug, PartialEq, Eq, Hash)]
4441 pub struct MPSCNNPoolingNode;
4442);
4443
4444extern_conformance!(
4445 unsafe impl NSObjectProtocol for MPSCNNPoolingNode {}
4446);
4447
4448impl MPSCNNPoolingNode {
4449 extern_methods!(
4450 #[unsafe(method(kernelWidth))]
4451 #[unsafe(method_family = none)]
4452 pub unsafe fn kernelWidth(&self) -> NSUInteger;
4453
4454 #[unsafe(method(kernelHeight))]
4455 #[unsafe(method_family = none)]
4456 pub unsafe fn kernelHeight(&self) -> NSUInteger;
4457
4458 #[unsafe(method(strideInPixelsX))]
4459 #[unsafe(method_family = none)]
4460 pub unsafe fn strideInPixelsX(&self) -> NSUInteger;
4461
4462 #[unsafe(method(strideInPixelsY))]
4463 #[unsafe(method_family = none)]
4464 pub unsafe fn strideInPixelsY(&self) -> NSUInteger;
4465
4466 #[unsafe(method(nodeWithSource:filterSize:))]
4474 #[unsafe(method_family = none)]
4475 pub unsafe fn nodeWithSource_filterSize(
4476 source_node: &MPSNNImageNode,
4477 size: NSUInteger,
4478 ) -> Retained<Self>;
4479
4480 #[unsafe(method(nodeWithSource:filterSize:stride:))]
4490 #[unsafe(method_family = none)]
4491 pub unsafe fn nodeWithSource_filterSize_stride(
4492 source_node: &MPSNNImageNode,
4493 size: NSUInteger,
4494 stride: NSUInteger,
4495 ) -> Retained<Self>;
4496
4497 #[unsafe(method(initWithSource:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:))]
4511 #[unsafe(method_family = init)]
4512 pub unsafe fn initWithSource_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY(
4513 this: Allocated<Self>,
4514 source_node: &MPSNNImageNode,
4515 kernel_width: NSUInteger,
4516 kernel_height: NSUInteger,
4517 stride_in_pixels_x: NSUInteger,
4518 stride_in_pixels_y: NSUInteger,
4519 ) -> Retained<Self>;
4520
4521 #[unsafe(method(initWithSource:filterSize:stride:))]
4531 #[unsafe(method_family = init)]
4532 pub unsafe fn initWithSource_filterSize_stride(
4533 this: Allocated<Self>,
4534 source_node: &MPSNNImageNode,
4535 size: NSUInteger,
4536 stride: NSUInteger,
4537 ) -> Retained<Self>;
4538
4539 #[unsafe(method(initWithSource:filterSize:))]
4547 #[unsafe(method_family = init)]
4548 pub unsafe fn initWithSource_filterSize(
4549 this: Allocated<Self>,
4550 source_node: &MPSNNImageNode,
4551 size: NSUInteger,
4552 ) -> Retained<Self>;
4553 );
4554}
4555
4556impl MPSCNNPoolingNode {
4558 extern_methods!(
4559 #[unsafe(method(init))]
4560 #[unsafe(method_family = init)]
4561 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4562 );
4563}
4564
4565impl MPSCNNPoolingNode {
4567 extern_methods!(
4568 #[unsafe(method(new))]
4569 #[unsafe(method_family = new)]
4570 pub unsafe fn new() -> Retained<Self>;
4571 );
4572}
4573
4574extern_class!(
4575 #[unsafe(super(MPSCNNPoolingNode, MPSNNFilterNode, NSObject))]
4581 #[derive(Debug, PartialEq, Eq, Hash)]
4582 pub struct MPSCNNPoolingAverageNode;
4583);
4584
4585extern_conformance!(
4586 unsafe impl NSObjectProtocol for MPSCNNPoolingAverageNode {}
4587);
4588
4589impl MPSCNNPoolingAverageNode {
4590 extern_methods!();
4591}
4592
4593impl MPSCNNPoolingAverageNode {
4595 extern_methods!(
4596 #[unsafe(method(nodeWithSource:filterSize:))]
4604 #[unsafe(method_family = none)]
4605 pub unsafe fn nodeWithSource_filterSize(
4606 source_node: &MPSNNImageNode,
4607 size: NSUInteger,
4608 ) -> Retained<Self>;
4609
4610 #[unsafe(method(nodeWithSource:filterSize:stride:))]
4620 #[unsafe(method_family = none)]
4621 pub unsafe fn nodeWithSource_filterSize_stride(
4622 source_node: &MPSNNImageNode,
4623 size: NSUInteger,
4624 stride: NSUInteger,
4625 ) -> Retained<Self>;
4626
4627 #[unsafe(method(initWithSource:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:))]
4641 #[unsafe(method_family = init)]
4642 pub unsafe fn initWithSource_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY(
4643 this: Allocated<Self>,
4644 source_node: &MPSNNImageNode,
4645 kernel_width: NSUInteger,
4646 kernel_height: NSUInteger,
4647 stride_in_pixels_x: NSUInteger,
4648 stride_in_pixels_y: NSUInteger,
4649 ) -> Retained<Self>;
4650
4651 #[unsafe(method(initWithSource:filterSize:stride:))]
4661 #[unsafe(method_family = init)]
4662 pub unsafe fn initWithSource_filterSize_stride(
4663 this: Allocated<Self>,
4664 source_node: &MPSNNImageNode,
4665 size: NSUInteger,
4666 stride: NSUInteger,
4667 ) -> Retained<Self>;
4668
4669 #[unsafe(method(initWithSource:filterSize:))]
4677 #[unsafe(method_family = init)]
4678 pub unsafe fn initWithSource_filterSize(
4679 this: Allocated<Self>,
4680 source_node: &MPSNNImageNode,
4681 size: NSUInteger,
4682 ) -> Retained<Self>;
4683 );
4684}
4685
4686impl MPSCNNPoolingAverageNode {
4688 extern_methods!(
4689 #[unsafe(method(init))]
4690 #[unsafe(method_family = init)]
4691 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4692 );
4693}
4694
4695impl MPSCNNPoolingAverageNode {
4697 extern_methods!(
4698 #[unsafe(method(new))]
4699 #[unsafe(method_family = new)]
4700 pub unsafe fn new() -> Retained<Self>;
4701 );
4702}
4703
4704extern_class!(
4705 #[unsafe(super(MPSCNNPoolingNode, MPSNNFilterNode, NSObject))]
4711 #[derive(Debug, PartialEq, Eq, Hash)]
4712 pub struct MPSCNNPoolingL2NormNode;
4713);
4714
4715extern_conformance!(
4716 unsafe impl NSObjectProtocol for MPSCNNPoolingL2NormNode {}
4717);
4718
4719impl MPSCNNPoolingL2NormNode {
4720 extern_methods!();
4721}
4722
4723impl MPSCNNPoolingL2NormNode {
4725 extern_methods!(
4726 #[unsafe(method(nodeWithSource:filterSize:))]
4734 #[unsafe(method_family = none)]
4735 pub unsafe fn nodeWithSource_filterSize(
4736 source_node: &MPSNNImageNode,
4737 size: NSUInteger,
4738 ) -> Retained<Self>;
4739
4740 #[unsafe(method(nodeWithSource:filterSize:stride:))]
4750 #[unsafe(method_family = none)]
4751 pub unsafe fn nodeWithSource_filterSize_stride(
4752 source_node: &MPSNNImageNode,
4753 size: NSUInteger,
4754 stride: NSUInteger,
4755 ) -> Retained<Self>;
4756
4757 #[unsafe(method(initWithSource:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:))]
4771 #[unsafe(method_family = init)]
4772 pub unsafe fn initWithSource_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY(
4773 this: Allocated<Self>,
4774 source_node: &MPSNNImageNode,
4775 kernel_width: NSUInteger,
4776 kernel_height: NSUInteger,
4777 stride_in_pixels_x: NSUInteger,
4778 stride_in_pixels_y: NSUInteger,
4779 ) -> Retained<Self>;
4780
4781 #[unsafe(method(initWithSource:filterSize:stride:))]
4791 #[unsafe(method_family = init)]
4792 pub unsafe fn initWithSource_filterSize_stride(
4793 this: Allocated<Self>,
4794 source_node: &MPSNNImageNode,
4795 size: NSUInteger,
4796 stride: NSUInteger,
4797 ) -> Retained<Self>;
4798
4799 #[unsafe(method(initWithSource:filterSize:))]
4807 #[unsafe(method_family = init)]
4808 pub unsafe fn initWithSource_filterSize(
4809 this: Allocated<Self>,
4810 source_node: &MPSNNImageNode,
4811 size: NSUInteger,
4812 ) -> Retained<Self>;
4813 );
4814}
4815
4816impl MPSCNNPoolingL2NormNode {
4818 extern_methods!(
4819 #[unsafe(method(init))]
4820 #[unsafe(method_family = init)]
4821 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4822 );
4823}
4824
4825impl MPSCNNPoolingL2NormNode {
4827 extern_methods!(
4828 #[unsafe(method(new))]
4829 #[unsafe(method_family = new)]
4830 pub unsafe fn new() -> Retained<Self>;
4831 );
4832}
4833
4834extern_class!(
4835 #[unsafe(super(MPSCNNPoolingNode, MPSNNFilterNode, NSObject))]
4841 #[derive(Debug, PartialEq, Eq, Hash)]
4842 pub struct MPSCNNPoolingMaxNode;
4843);
4844
4845extern_conformance!(
4846 unsafe impl NSObjectProtocol for MPSCNNPoolingMaxNode {}
4847);
4848
4849impl MPSCNNPoolingMaxNode {
4850 extern_methods!();
4851}
4852
4853impl MPSCNNPoolingMaxNode {
4855 extern_methods!(
4856 #[unsafe(method(nodeWithSource:filterSize:))]
4864 #[unsafe(method_family = none)]
4865 pub unsafe fn nodeWithSource_filterSize(
4866 source_node: &MPSNNImageNode,
4867 size: NSUInteger,
4868 ) -> Retained<Self>;
4869
4870 #[unsafe(method(nodeWithSource:filterSize:stride:))]
4880 #[unsafe(method_family = none)]
4881 pub unsafe fn nodeWithSource_filterSize_stride(
4882 source_node: &MPSNNImageNode,
4883 size: NSUInteger,
4884 stride: NSUInteger,
4885 ) -> Retained<Self>;
4886
4887 #[unsafe(method(initWithSource:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:))]
4901 #[unsafe(method_family = init)]
4902 pub unsafe fn initWithSource_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY(
4903 this: Allocated<Self>,
4904 source_node: &MPSNNImageNode,
4905 kernel_width: NSUInteger,
4906 kernel_height: NSUInteger,
4907 stride_in_pixels_x: NSUInteger,
4908 stride_in_pixels_y: NSUInteger,
4909 ) -> Retained<Self>;
4910
4911 #[unsafe(method(initWithSource:filterSize:stride:))]
4921 #[unsafe(method_family = init)]
4922 pub unsafe fn initWithSource_filterSize_stride(
4923 this: Allocated<Self>,
4924 source_node: &MPSNNImageNode,
4925 size: NSUInteger,
4926 stride: NSUInteger,
4927 ) -> Retained<Self>;
4928
4929 #[unsafe(method(initWithSource:filterSize:))]
4937 #[unsafe(method_family = init)]
4938 pub unsafe fn initWithSource_filterSize(
4939 this: Allocated<Self>,
4940 source_node: &MPSNNImageNode,
4941 size: NSUInteger,
4942 ) -> Retained<Self>;
4943 );
4944}
4945
4946impl MPSCNNPoolingMaxNode {
4948 extern_methods!(
4949 #[unsafe(method(init))]
4950 #[unsafe(method_family = init)]
4951 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
4952 );
4953}
4954
4955impl MPSCNNPoolingMaxNode {
4957 extern_methods!(
4958 #[unsafe(method(new))]
4959 #[unsafe(method_family = new)]
4960 pub unsafe fn new() -> Retained<Self>;
4961 );
4962}
4963
4964extern_class!(
4965 #[unsafe(super(MPSNNFilterNode, NSObject))]
4971 #[derive(Debug, PartialEq, Eq, Hash)]
4972 pub struct MPSCNNDilatedPoolingMaxNode;
4973);
4974
4975extern_conformance!(
4976 unsafe impl NSObjectProtocol for MPSCNNDilatedPoolingMaxNode {}
4977);
4978
4979impl MPSCNNDilatedPoolingMaxNode {
4980 extern_methods!(
4981 #[unsafe(method(dilationRateX))]
4982 #[unsafe(method_family = none)]
4983 pub unsafe fn dilationRateX(&self) -> NSUInteger;
4984
4985 #[unsafe(method(dilationRateY))]
4986 #[unsafe(method_family = none)]
4987 pub unsafe fn dilationRateY(&self) -> NSUInteger;
4988
4989 #[unsafe(method(nodeWithSource:filterSize:))]
4997 #[unsafe(method_family = none)]
4998 pub unsafe fn nodeWithSource_filterSize(
4999 source_node: &MPSNNImageNode,
5000 size: NSUInteger,
5001 ) -> Retained<Self>;
5002
5003 #[unsafe(method(nodeWithSource:filterSize:stride:dilationRate:))]
5015 #[unsafe(method_family = none)]
5016 pub unsafe fn nodeWithSource_filterSize_stride_dilationRate(
5017 source_node: &MPSNNImageNode,
5018 size: NSUInteger,
5019 stride: NSUInteger,
5020 dilation_rate: NSUInteger,
5021 ) -> Retained<Self>;
5022
5023 #[unsafe(method(initWithSource:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:dilationRateX:dilationRateY:))]
5041 #[unsafe(method_family = init)]
5042 pub unsafe fn initWithSource_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_dilationRateX_dilationRateY(
5043 this: Allocated<Self>,
5044 source_node: &MPSNNImageNode,
5045 kernel_width: NSUInteger,
5046 kernel_height: NSUInteger,
5047 stride_in_pixels_x: NSUInteger,
5048 stride_in_pixels_y: NSUInteger,
5049 dilation_rate_x: NSUInteger,
5050 dilation_rate_y: NSUInteger,
5051 ) -> Retained<Self>;
5052
5053 #[unsafe(method(initWithSource:filterSize:stride:dilationRate:))]
5065 #[unsafe(method_family = init)]
5066 pub unsafe fn initWithSource_filterSize_stride_dilationRate(
5067 this: Allocated<Self>,
5068 source_node: &MPSNNImageNode,
5069 size: NSUInteger,
5070 stride: NSUInteger,
5071 dilation_rate: NSUInteger,
5072 ) -> Retained<Self>;
5073
5074 #[unsafe(method(initWithSource:filterSize:))]
5082 #[unsafe(method_family = init)]
5083 pub unsafe fn initWithSource_filterSize(
5084 this: Allocated<Self>,
5085 source_node: &MPSNNImageNode,
5086 size: NSUInteger,
5087 ) -> Retained<Self>;
5088 );
5089}
5090
5091impl MPSCNNDilatedPoolingMaxNode {
5093 extern_methods!(
5094 #[unsafe(method(init))]
5095 #[unsafe(method_family = init)]
5096 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5097 );
5098}
5099
5100impl MPSCNNDilatedPoolingMaxNode {
5102 extern_methods!(
5103 #[unsafe(method(new))]
5104 #[unsafe(method_family = new)]
5105 pub unsafe fn new() -> Retained<Self>;
5106 );
5107}
5108
5109extern_class!(
5110 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
5112 #[derive(Debug, PartialEq, Eq, Hash)]
5113 pub struct MPSCNNPoolingGradientNode;
5114);
5115
5116extern_conformance!(
5117 unsafe impl NSObjectProtocol for MPSCNNPoolingGradientNode {}
5118);
5119
5120impl MPSCNNPoolingGradientNode {
5121 extern_methods!(
5122 #[cfg(feature = "MPSNeuralNetworkTypes")]
5123 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5141 #[unsafe(method_family = none)]
5142 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5143 source_gradient: &MPSNNImageNode,
5144 source_image: &MPSNNImageNode,
5145 gradient_state: &MPSNNGradientStateNode,
5146 kernel_width: NSUInteger,
5147 kernel_height: NSUInteger,
5148 stride_in_pixels_x: NSUInteger,
5149 stride_in_pixels_y: NSUInteger,
5150 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5151 ) -> Retained<Self>;
5152
5153 #[cfg(feature = "MPSNeuralNetworkTypes")]
5154 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5172 #[unsafe(method_family = init)]
5173 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5174 this: Allocated<Self>,
5175 source_gradient: &MPSNNImageNode,
5176 source_image: &MPSNNImageNode,
5177 gradient_state: &MPSNNGradientStateNode,
5178 kernel_width: NSUInteger,
5179 kernel_height: NSUInteger,
5180 stride_in_pixels_x: NSUInteger,
5181 stride_in_pixels_y: NSUInteger,
5182 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5183 ) -> Retained<Self>;
5184
5185 #[unsafe(method(kernelWidth))]
5186 #[unsafe(method_family = none)]
5187 pub unsafe fn kernelWidth(&self) -> NSUInteger;
5188
5189 #[unsafe(method(kernelHeight))]
5190 #[unsafe(method_family = none)]
5191 pub unsafe fn kernelHeight(&self) -> NSUInteger;
5192
5193 #[unsafe(method(strideInPixelsX))]
5194 #[unsafe(method_family = none)]
5195 pub unsafe fn strideInPixelsX(&self) -> NSUInteger;
5196
5197 #[unsafe(method(strideInPixelsY))]
5198 #[unsafe(method_family = none)]
5199 pub unsafe fn strideInPixelsY(&self) -> NSUInteger;
5200 );
5201}
5202
5203impl MPSCNNPoolingGradientNode {
5205 extern_methods!(
5206 #[unsafe(method(init))]
5207 #[unsafe(method_family = init)]
5208 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5209 );
5210}
5211
5212impl MPSCNNPoolingGradientNode {
5214 extern_methods!(
5215 #[unsafe(method(new))]
5216 #[unsafe(method_family = new)]
5217 pub unsafe fn new() -> Retained<Self>;
5218 );
5219}
5220
5221extern_class!(
5222 #[unsafe(super(
5224 MPSCNNPoolingGradientNode,
5225 MPSNNGradientFilterNode,
5226 MPSNNFilterNode,
5227 NSObject
5228 ))]
5229 #[derive(Debug, PartialEq, Eq, Hash)]
5230 pub struct MPSCNNPoolingMaxGradientNode;
5231);
5232
5233extern_conformance!(
5234 unsafe impl NSObjectProtocol for MPSCNNPoolingMaxGradientNode {}
5235);
5236
5237impl MPSCNNPoolingMaxGradientNode {
5238 extern_methods!();
5239}
5240
5241impl MPSCNNPoolingMaxGradientNode {
5243 extern_methods!(
5244 #[cfg(feature = "MPSNeuralNetworkTypes")]
5245 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5263 #[unsafe(method_family = none)]
5264 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5265 source_gradient: &MPSNNImageNode,
5266 source_image: &MPSNNImageNode,
5267 gradient_state: &MPSNNGradientStateNode,
5268 kernel_width: NSUInteger,
5269 kernel_height: NSUInteger,
5270 stride_in_pixels_x: NSUInteger,
5271 stride_in_pixels_y: NSUInteger,
5272 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5273 ) -> Retained<Self>;
5274
5275 #[cfg(feature = "MPSNeuralNetworkTypes")]
5276 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5294 #[unsafe(method_family = init)]
5295 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5296 this: Allocated<Self>,
5297 source_gradient: &MPSNNImageNode,
5298 source_image: &MPSNNImageNode,
5299 gradient_state: &MPSNNGradientStateNode,
5300 kernel_width: NSUInteger,
5301 kernel_height: NSUInteger,
5302 stride_in_pixels_x: NSUInteger,
5303 stride_in_pixels_y: NSUInteger,
5304 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5305 ) -> Retained<Self>;
5306 );
5307}
5308
5309impl MPSCNNPoolingMaxGradientNode {
5311 extern_methods!(
5312 #[unsafe(method(init))]
5313 #[unsafe(method_family = init)]
5314 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5315 );
5316}
5317
5318impl MPSCNNPoolingMaxGradientNode {
5320 extern_methods!(
5321 #[unsafe(method(new))]
5322 #[unsafe(method_family = new)]
5323 pub unsafe fn new() -> Retained<Self>;
5324 );
5325}
5326
5327extern_class!(
5328 #[unsafe(super(
5330 MPSCNNPoolingGradientNode,
5331 MPSNNGradientFilterNode,
5332 MPSNNFilterNode,
5333 NSObject
5334 ))]
5335 #[derive(Debug, PartialEq, Eq, Hash)]
5336 pub struct MPSCNNPoolingAverageGradientNode;
5337);
5338
5339extern_conformance!(
5340 unsafe impl NSObjectProtocol for MPSCNNPoolingAverageGradientNode {}
5341);
5342
5343impl MPSCNNPoolingAverageGradientNode {
5344 extern_methods!();
5345}
5346
5347impl MPSCNNPoolingAverageGradientNode {
5349 extern_methods!(
5350 #[cfg(feature = "MPSNeuralNetworkTypes")]
5351 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5369 #[unsafe(method_family = none)]
5370 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5371 source_gradient: &MPSNNImageNode,
5372 source_image: &MPSNNImageNode,
5373 gradient_state: &MPSNNGradientStateNode,
5374 kernel_width: NSUInteger,
5375 kernel_height: NSUInteger,
5376 stride_in_pixels_x: NSUInteger,
5377 stride_in_pixels_y: NSUInteger,
5378 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5379 ) -> Retained<Self>;
5380
5381 #[cfg(feature = "MPSNeuralNetworkTypes")]
5382 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5400 #[unsafe(method_family = init)]
5401 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5402 this: Allocated<Self>,
5403 source_gradient: &MPSNNImageNode,
5404 source_image: &MPSNNImageNode,
5405 gradient_state: &MPSNNGradientStateNode,
5406 kernel_width: NSUInteger,
5407 kernel_height: NSUInteger,
5408 stride_in_pixels_x: NSUInteger,
5409 stride_in_pixels_y: NSUInteger,
5410 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5411 ) -> Retained<Self>;
5412 );
5413}
5414
5415impl MPSCNNPoolingAverageGradientNode {
5417 extern_methods!(
5418 #[unsafe(method(init))]
5419 #[unsafe(method_family = init)]
5420 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5421 );
5422}
5423
5424impl MPSCNNPoolingAverageGradientNode {
5426 extern_methods!(
5427 #[unsafe(method(new))]
5428 #[unsafe(method_family = new)]
5429 pub unsafe fn new() -> Retained<Self>;
5430 );
5431}
5432
5433extern_class!(
5434 #[unsafe(super(
5436 MPSCNNPoolingGradientNode,
5437 MPSNNGradientFilterNode,
5438 MPSNNFilterNode,
5439 NSObject
5440 ))]
5441 #[derive(Debug, PartialEq, Eq, Hash)]
5442 pub struct MPSCNNPoolingL2NormGradientNode;
5443);
5444
5445extern_conformance!(
5446 unsafe impl NSObjectProtocol for MPSCNNPoolingL2NormGradientNode {}
5447);
5448
5449impl MPSCNNPoolingL2NormGradientNode {
5450 extern_methods!();
5451}
5452
5453impl MPSCNNPoolingL2NormGradientNode {
5455 extern_methods!(
5456 #[cfg(feature = "MPSNeuralNetworkTypes")]
5457 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5475 #[unsafe(method_family = none)]
5476 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5477 source_gradient: &MPSNNImageNode,
5478 source_image: &MPSNNImageNode,
5479 gradient_state: &MPSNNGradientStateNode,
5480 kernel_width: NSUInteger,
5481 kernel_height: NSUInteger,
5482 stride_in_pixels_x: NSUInteger,
5483 stride_in_pixels_y: NSUInteger,
5484 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5485 ) -> Retained<Self>;
5486
5487 #[cfg(feature = "MPSNeuralNetworkTypes")]
5488 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5506 #[unsafe(method_family = init)]
5507 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5508 this: Allocated<Self>,
5509 source_gradient: &MPSNNImageNode,
5510 source_image: &MPSNNImageNode,
5511 gradient_state: &MPSNNGradientStateNode,
5512 kernel_width: NSUInteger,
5513 kernel_height: NSUInteger,
5514 stride_in_pixels_x: NSUInteger,
5515 stride_in_pixels_y: NSUInteger,
5516 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5517 ) -> Retained<Self>;
5518 );
5519}
5520
5521impl MPSCNNPoolingL2NormGradientNode {
5523 extern_methods!(
5524 #[unsafe(method(init))]
5525 #[unsafe(method_family = init)]
5526 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5527 );
5528}
5529
5530impl MPSCNNPoolingL2NormGradientNode {
5532 extern_methods!(
5533 #[unsafe(method(new))]
5534 #[unsafe(method_family = new)]
5535 pub unsafe fn new() -> Retained<Self>;
5536 );
5537}
5538
5539extern_class!(
5540 #[unsafe(super(
5542 MPSCNNPoolingGradientNode,
5543 MPSNNGradientFilterNode,
5544 MPSNNFilterNode,
5545 NSObject
5546 ))]
5547 #[derive(Debug, PartialEq, Eq, Hash)]
5548 pub struct MPSCNNDilatedPoolingMaxGradientNode;
5549);
5550
5551extern_conformance!(
5552 unsafe impl NSObjectProtocol for MPSCNNDilatedPoolingMaxGradientNode {}
5553);
5554
5555impl MPSCNNDilatedPoolingMaxGradientNode {
5556 extern_methods!(
5557 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:dilationRateX:dilationRateY:))]
5575 #[unsafe(method_family = none)]
5576 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_dilationRateX_dilationRateY(
5577 source_gradient: &MPSNNImageNode,
5578 source_image: &MPSNNImageNode,
5579 gradient_state: &MPSNNGradientStateNode,
5580 kernel_width: NSUInteger,
5581 kernel_height: NSUInteger,
5582 stride_in_pixels_x: NSUInteger,
5583 stride_in_pixels_y: NSUInteger,
5584 dilation_rate_x: NSUInteger,
5585 dilation_rate_y: NSUInteger,
5586 ) -> Retained<Self>;
5587
5588 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:dilationRateX:dilationRateY:))]
5606 #[unsafe(method_family = init)]
5607 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_dilationRateX_dilationRateY(
5608 this: Allocated<Self>,
5609 source_gradient: &MPSNNImageNode,
5610 source_image: &MPSNNImageNode,
5611 gradient_state: &MPSNNGradientStateNode,
5612 kernel_width: NSUInteger,
5613 kernel_height: NSUInteger,
5614 stride_in_pixels_x: NSUInteger,
5615 stride_in_pixels_y: NSUInteger,
5616 dilation_rate_x: NSUInteger,
5617 dilation_rate_y: NSUInteger,
5618 ) -> Retained<Self>;
5619
5620 #[unsafe(method(dilationRateX))]
5621 #[unsafe(method_family = none)]
5622 pub unsafe fn dilationRateX(&self) -> NSUInteger;
5623
5624 #[unsafe(method(dilationRateY))]
5625 #[unsafe(method_family = none)]
5626 pub unsafe fn dilationRateY(&self) -> NSUInteger;
5627 );
5628}
5629
5630impl MPSCNNDilatedPoolingMaxGradientNode {
5632 extern_methods!(
5633 #[cfg(feature = "MPSNeuralNetworkTypes")]
5634 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5652 #[unsafe(method_family = none)]
5653 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5654 source_gradient: &MPSNNImageNode,
5655 source_image: &MPSNNImageNode,
5656 gradient_state: &MPSNNGradientStateNode,
5657 kernel_width: NSUInteger,
5658 kernel_height: NSUInteger,
5659 stride_in_pixels_x: NSUInteger,
5660 stride_in_pixels_y: NSUInteger,
5661 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5662 ) -> Retained<Self>;
5663
5664 #[cfg(feature = "MPSNeuralNetworkTypes")]
5665 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:strideInPixelsX:strideInPixelsY:paddingPolicy:))]
5683 #[unsafe(method_family = init)]
5684 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight_strideInPixelsX_strideInPixelsY_paddingPolicy(
5685 this: Allocated<Self>,
5686 source_gradient: &MPSNNImageNode,
5687 source_image: &MPSNNImageNode,
5688 gradient_state: &MPSNNGradientStateNode,
5689 kernel_width: NSUInteger,
5690 kernel_height: NSUInteger,
5691 stride_in_pixels_x: NSUInteger,
5692 stride_in_pixels_y: NSUInteger,
5693 padding_policy: Option<&ProtocolObject<dyn MPSNNPadding>>,
5694 ) -> Retained<Self>;
5695 );
5696}
5697
5698impl MPSCNNDilatedPoolingMaxGradientNode {
5700 extern_methods!(
5701 #[unsafe(method(init))]
5702 #[unsafe(method_family = init)]
5703 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5704 );
5705}
5706
5707impl MPSCNNDilatedPoolingMaxGradientNode {
5709 extern_methods!(
5710 #[unsafe(method(new))]
5711 #[unsafe(method_family = new)]
5712 pub unsafe fn new() -> Retained<Self>;
5713 );
5714}
5715
5716extern_class!(
5717 #[unsafe(super(MPSNNFilterNode, NSObject))]
5721 #[derive(Debug, PartialEq, Eq, Hash)]
5722 pub struct MPSCNNNormalizationNode;
5723);
5724
5725extern_conformance!(
5726 unsafe impl NSObjectProtocol for MPSCNNNormalizationNode {}
5727);
5728
5729impl MPSCNNNormalizationNode {
5730 extern_methods!(
5731 #[unsafe(method(alpha))]
5733 #[unsafe(method_family = none)]
5734 pub unsafe fn alpha(&self) -> c_float;
5735
5736 #[unsafe(method(setAlpha:))]
5738 #[unsafe(method_family = none)]
5739 pub unsafe fn setAlpha(&self, alpha: c_float);
5740
5741 #[unsafe(method(beta))]
5743 #[unsafe(method_family = none)]
5744 pub unsafe fn beta(&self) -> c_float;
5745
5746 #[unsafe(method(setBeta:))]
5748 #[unsafe(method_family = none)]
5749 pub unsafe fn setBeta(&self, beta: c_float);
5750
5751 #[unsafe(method(delta))]
5753 #[unsafe(method_family = none)]
5754 pub unsafe fn delta(&self) -> c_float;
5755
5756 #[unsafe(method(setDelta:))]
5758 #[unsafe(method_family = none)]
5759 pub unsafe fn setDelta(&self, delta: c_float);
5760
5761 #[unsafe(method(nodeWithSource:))]
5762 #[unsafe(method_family = none)]
5763 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
5764
5765 #[unsafe(method(initWithSource:))]
5766 #[unsafe(method_family = init)]
5767 pub unsafe fn initWithSource(
5768 this: Allocated<Self>,
5769 source_node: &MPSNNImageNode,
5770 ) -> Retained<Self>;
5771 );
5772}
5773
5774impl MPSCNNNormalizationNode {
5776 extern_methods!(
5777 #[unsafe(method(init))]
5778 #[unsafe(method_family = init)]
5779 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5780 );
5781}
5782
5783impl MPSCNNNormalizationNode {
5785 extern_methods!(
5786 #[unsafe(method(new))]
5787 #[unsafe(method_family = new)]
5788 pub unsafe fn new() -> Retained<Self>;
5789 );
5790}
5791
5792extern_class!(
5793 #[unsafe(super(MPSCNNNormalizationNode, MPSNNFilterNode, NSObject))]
5811 #[derive(Debug, PartialEq, Eq, Hash)]
5812 pub struct MPSCNNSpatialNormalizationNode;
5813);
5814
5815extern_conformance!(
5816 unsafe impl NSObjectProtocol for MPSCNNSpatialNormalizationNode {}
5817);
5818
5819impl MPSCNNSpatialNormalizationNode {
5820 extern_methods!(
5821 #[unsafe(method(kernelWidth))]
5822 #[unsafe(method_family = none)]
5823 pub unsafe fn kernelWidth(&self) -> NSUInteger;
5824
5825 #[unsafe(method(setKernelWidth:))]
5827 #[unsafe(method_family = none)]
5828 pub unsafe fn setKernelWidth(&self, kernel_width: NSUInteger);
5829
5830 #[unsafe(method(kernelHeight))]
5831 #[unsafe(method_family = none)]
5832 pub unsafe fn kernelHeight(&self) -> NSUInteger;
5833
5834 #[unsafe(method(setKernelHeight:))]
5836 #[unsafe(method_family = none)]
5837 pub unsafe fn setKernelHeight(&self, kernel_height: NSUInteger);
5838
5839 #[unsafe(method(nodeWithSource:kernelSize:))]
5840 #[unsafe(method_family = none)]
5841 pub unsafe fn nodeWithSource_kernelSize(
5842 source_node: &MPSNNImageNode,
5843 kernel_size: NSUInteger,
5844 ) -> Retained<Self>;
5845
5846 #[unsafe(method(initWithSource:kernelSize:))]
5847 #[unsafe(method_family = init)]
5848 pub unsafe fn initWithSource_kernelSize(
5849 this: Allocated<Self>,
5850 source_node: &MPSNNImageNode,
5851 kernel_size: NSUInteger,
5852 ) -> Retained<Self>;
5853
5854 #[unsafe(method(initWithSource:))]
5855 #[unsafe(method_family = init)]
5856 pub unsafe fn initWithSource(
5857 this: Allocated<Self>,
5858 source_node: &MPSNNImageNode,
5859 ) -> Retained<Self>;
5860 );
5861}
5862
5863impl MPSCNNSpatialNormalizationNode {
5865 extern_methods!(
5866 #[unsafe(method(nodeWithSource:))]
5867 #[unsafe(method_family = none)]
5868 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
5869 );
5870}
5871
5872impl MPSCNNSpatialNormalizationNode {
5874 extern_methods!(
5875 #[unsafe(method(init))]
5876 #[unsafe(method_family = init)]
5877 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5878 );
5879}
5880
5881impl MPSCNNSpatialNormalizationNode {
5883 extern_methods!(
5884 #[unsafe(method(new))]
5885 #[unsafe(method_family = new)]
5886 pub unsafe fn new() -> Retained<Self>;
5887 );
5888}
5889
5890extern_class!(
5891 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
5893 #[derive(Debug, PartialEq, Eq, Hash)]
5894 pub struct MPSCNNSpatialNormalizationGradientNode;
5895);
5896
5897extern_conformance!(
5898 unsafe impl NSObjectProtocol for MPSCNNSpatialNormalizationGradientNode {}
5899);
5900
5901impl MPSCNNSpatialNormalizationGradientNode {
5902 extern_methods!(
5903 #[unsafe(method(kernelWidth))]
5904 #[unsafe(method_family = none)]
5905 pub unsafe fn kernelWidth(&self) -> NSUInteger;
5906
5907 #[unsafe(method(setKernelWidth:))]
5909 #[unsafe(method_family = none)]
5910 pub unsafe fn setKernelWidth(&self, kernel_width: NSUInteger);
5911
5912 #[unsafe(method(kernelHeight))]
5913 #[unsafe(method_family = none)]
5914 pub unsafe fn kernelHeight(&self) -> NSUInteger;
5915
5916 #[unsafe(method(setKernelHeight:))]
5918 #[unsafe(method_family = none)]
5919 pub unsafe fn setKernelHeight(&self, kernel_height: NSUInteger);
5920
5921 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelSize:))]
5922 #[unsafe(method_family = none)]
5923 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelSize(
5924 source_gradient: &MPSNNImageNode,
5925 source_image: &MPSNNImageNode,
5926 gradient_state: &MPSNNGradientStateNode,
5927 kernel_size: NSUInteger,
5928 ) -> Retained<Self>;
5929
5930 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelSize:))]
5931 #[unsafe(method_family = init)]
5932 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelSize(
5933 this: Allocated<Self>,
5934 source_gradient: &MPSNNImageNode,
5935 source_image: &MPSNNImageNode,
5936 gradient_state: &MPSNNGradientStateNode,
5937 kernel_size: NSUInteger,
5938 ) -> Retained<Self>;
5939
5940 #[unsafe(method(alpha))]
5942 #[unsafe(method_family = none)]
5943 pub unsafe fn alpha(&self) -> c_float;
5944
5945 #[unsafe(method(setAlpha:))]
5947 #[unsafe(method_family = none)]
5948 pub unsafe fn setAlpha(&self, alpha: c_float);
5949
5950 #[unsafe(method(beta))]
5952 #[unsafe(method_family = none)]
5953 pub unsafe fn beta(&self) -> c_float;
5954
5955 #[unsafe(method(setBeta:))]
5957 #[unsafe(method_family = none)]
5958 pub unsafe fn setBeta(&self, beta: c_float);
5959
5960 #[unsafe(method(delta))]
5962 #[unsafe(method_family = none)]
5963 pub unsafe fn delta(&self) -> c_float;
5964
5965 #[unsafe(method(setDelta:))]
5967 #[unsafe(method_family = none)]
5968 pub unsafe fn setDelta(&self, delta: c_float);
5969 );
5970}
5971
5972impl MPSCNNSpatialNormalizationGradientNode {
5974 extern_methods!(
5975 #[unsafe(method(init))]
5976 #[unsafe(method_family = init)]
5977 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
5978 );
5979}
5980
5981impl MPSCNNSpatialNormalizationGradientNode {
5983 extern_methods!(
5984 #[unsafe(method(new))]
5985 #[unsafe(method_family = new)]
5986 pub unsafe fn new() -> Retained<Self>;
5987 );
5988}
5989
5990extern_class!(
5991 #[unsafe(super(MPSCNNNormalizationNode, MPSNNFilterNode, NSObject))]
6013 #[derive(Debug, PartialEq, Eq, Hash)]
6014 pub struct MPSCNNLocalContrastNormalizationNode;
6015);
6016
6017extern_conformance!(
6018 unsafe impl NSObjectProtocol for MPSCNNLocalContrastNormalizationNode {}
6019);
6020
6021impl MPSCNNLocalContrastNormalizationNode {
6022 extern_methods!(
6023 #[unsafe(method(pm))]
6024 #[unsafe(method_family = none)]
6025 pub unsafe fn pm(&self) -> c_float;
6026
6027 #[unsafe(method(setPm:))]
6029 #[unsafe(method_family = none)]
6030 pub unsafe fn setPm(&self, pm: c_float);
6031
6032 #[unsafe(method(ps))]
6033 #[unsafe(method_family = none)]
6034 pub unsafe fn ps(&self) -> c_float;
6035
6036 #[unsafe(method(setPs:))]
6038 #[unsafe(method_family = none)]
6039 pub unsafe fn setPs(&self, ps: c_float);
6040
6041 #[unsafe(method(p0))]
6042 #[unsafe(method_family = none)]
6043 pub unsafe fn p0(&self) -> c_float;
6044
6045 #[unsafe(method(setP0:))]
6047 #[unsafe(method_family = none)]
6048 pub unsafe fn setP0(&self, p0: c_float);
6049
6050 #[unsafe(method(kernelWidth))]
6051 #[unsafe(method_family = none)]
6052 pub unsafe fn kernelWidth(&self) -> NSUInteger;
6053
6054 #[unsafe(method(setKernelWidth:))]
6056 #[unsafe(method_family = none)]
6057 pub unsafe fn setKernelWidth(&self, kernel_width: NSUInteger);
6058
6059 #[unsafe(method(kernelHeight))]
6060 #[unsafe(method_family = none)]
6061 pub unsafe fn kernelHeight(&self) -> NSUInteger;
6062
6063 #[unsafe(method(setKernelHeight:))]
6065 #[unsafe(method_family = none)]
6066 pub unsafe fn setKernelHeight(&self, kernel_height: NSUInteger);
6067
6068 #[unsafe(method(nodeWithSource:kernelSize:))]
6069 #[unsafe(method_family = none)]
6070 pub unsafe fn nodeWithSource_kernelSize(
6071 source_node: &MPSNNImageNode,
6072 kernel_size: NSUInteger,
6073 ) -> Retained<Self>;
6074
6075 #[unsafe(method(initWithSource:kernelSize:))]
6076 #[unsafe(method_family = init)]
6077 pub unsafe fn initWithSource_kernelSize(
6078 this: Allocated<Self>,
6079 source_node: &MPSNNImageNode,
6080 kernel_size: NSUInteger,
6081 ) -> Retained<Self>;
6082
6083 #[unsafe(method(initWithSource:))]
6084 #[unsafe(method_family = init)]
6085 pub unsafe fn initWithSource(
6086 this: Allocated<Self>,
6087 source_node: &MPSNNImageNode,
6088 ) -> Retained<Self>;
6089 );
6090}
6091
6092impl MPSCNNLocalContrastNormalizationNode {
6094 extern_methods!(
6095 #[unsafe(method(nodeWithSource:))]
6096 #[unsafe(method_family = none)]
6097 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
6098 );
6099}
6100
6101impl MPSCNNLocalContrastNormalizationNode {
6103 extern_methods!(
6104 #[unsafe(method(init))]
6105 #[unsafe(method_family = init)]
6106 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6107 );
6108}
6109
6110impl MPSCNNLocalContrastNormalizationNode {
6112 extern_methods!(
6113 #[unsafe(method(new))]
6114 #[unsafe(method_family = new)]
6115 pub unsafe fn new() -> Retained<Self>;
6116 );
6117}
6118
6119extern_class!(
6120 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
6122 #[derive(Debug, PartialEq, Eq, Hash)]
6123 pub struct MPSCNNLocalContrastNormalizationGradientNode;
6124);
6125
6126extern_conformance!(
6127 unsafe impl NSObjectProtocol for MPSCNNLocalContrastNormalizationGradientNode {}
6128);
6129
6130impl MPSCNNLocalContrastNormalizationGradientNode {
6131 extern_methods!(
6132 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:))]
6133 #[unsafe(method_family = none)]
6134 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight(
6135 source_gradient: &MPSNNImageNode,
6136 source_image: &MPSNNImageNode,
6137 gradient_state: &MPSNNGradientStateNode,
6138 kernel_width: NSUInteger,
6139 kernel_height: NSUInteger,
6140 ) -> Retained<Self>;
6141
6142 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelWidth:kernelHeight:))]
6143 #[unsafe(method_family = init)]
6144 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelWidth_kernelHeight(
6145 this: Allocated<Self>,
6146 source_gradient: &MPSNNImageNode,
6147 source_image: &MPSNNImageNode,
6148 gradient_state: &MPSNNGradientStateNode,
6149 kernel_width: NSUInteger,
6150 kernel_height: NSUInteger,
6151 ) -> Retained<Self>;
6152
6153 #[unsafe(method(alpha))]
6161 #[unsafe(method_family = none)]
6162 pub unsafe fn alpha(&self) -> c_float;
6163
6164 #[unsafe(method(setAlpha:))]
6166 #[unsafe(method_family = none)]
6167 pub unsafe fn setAlpha(&self, alpha: c_float);
6168
6169 #[unsafe(method(beta))]
6171 #[unsafe(method_family = none)]
6172 pub unsafe fn beta(&self) -> c_float;
6173
6174 #[unsafe(method(setBeta:))]
6176 #[unsafe(method_family = none)]
6177 pub unsafe fn setBeta(&self, beta: c_float);
6178
6179 #[unsafe(method(delta))]
6181 #[unsafe(method_family = none)]
6182 pub unsafe fn delta(&self) -> c_float;
6183
6184 #[unsafe(method(setDelta:))]
6186 #[unsafe(method_family = none)]
6187 pub unsafe fn setDelta(&self, delta: c_float);
6188
6189 #[unsafe(method(p0))]
6191 #[unsafe(method_family = none)]
6192 pub unsafe fn p0(&self) -> c_float;
6193
6194 #[unsafe(method(setP0:))]
6196 #[unsafe(method_family = none)]
6197 pub unsafe fn setP0(&self, p0: c_float);
6198
6199 #[unsafe(method(pm))]
6201 #[unsafe(method_family = none)]
6202 pub unsafe fn pm(&self) -> c_float;
6203
6204 #[unsafe(method(setPm:))]
6206 #[unsafe(method_family = none)]
6207 pub unsafe fn setPm(&self, pm: c_float);
6208
6209 #[unsafe(method(ps))]
6211 #[unsafe(method_family = none)]
6212 pub unsafe fn ps(&self) -> c_float;
6213
6214 #[unsafe(method(setPs:))]
6216 #[unsafe(method_family = none)]
6217 pub unsafe fn setPs(&self, ps: c_float);
6218
6219 #[unsafe(method(kernelWidth))]
6220 #[unsafe(method_family = none)]
6221 pub unsafe fn kernelWidth(&self) -> NSUInteger;
6222
6223 #[unsafe(method(kernelHeight))]
6224 #[unsafe(method_family = none)]
6225 pub unsafe fn kernelHeight(&self) -> NSUInteger;
6226 );
6227}
6228
6229impl MPSCNNLocalContrastNormalizationGradientNode {
6231 extern_methods!(
6232 #[unsafe(method(init))]
6233 #[unsafe(method_family = init)]
6234 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6235 );
6236}
6237
6238impl MPSCNNLocalContrastNormalizationGradientNode {
6240 extern_methods!(
6241 #[unsafe(method(new))]
6242 #[unsafe(method_family = new)]
6243 pub unsafe fn new() -> Retained<Self>;
6244 );
6245}
6246
6247extern_class!(
6248 #[unsafe(super(MPSCNNNormalizationNode, MPSNNFilterNode, NSObject))]
6270 #[derive(Debug, PartialEq, Eq, Hash)]
6271 pub struct MPSCNNCrossChannelNormalizationNode;
6272);
6273
6274extern_conformance!(
6275 unsafe impl NSObjectProtocol for MPSCNNCrossChannelNormalizationNode {}
6276);
6277
6278impl MPSCNNCrossChannelNormalizationNode {
6279 extern_methods!(
6280 #[unsafe(method(kernelSizeInFeatureChannels))]
6281 #[unsafe(method_family = none)]
6282 pub unsafe fn kernelSizeInFeatureChannels(&self) -> NSUInteger;
6283
6284 #[unsafe(method(setKernelSizeInFeatureChannels:))]
6286 #[unsafe(method_family = none)]
6287 pub unsafe fn setKernelSizeInFeatureChannels(
6288 &self,
6289 kernel_size_in_feature_channels: NSUInteger,
6290 );
6291
6292 #[unsafe(method(nodeWithSource:kernelSize:))]
6293 #[unsafe(method_family = none)]
6294 pub unsafe fn nodeWithSource_kernelSize(
6295 source_node: &MPSNNImageNode,
6296 kernel_size: NSUInteger,
6297 ) -> Retained<Self>;
6298
6299 #[unsafe(method(initWithSource:kernelSize:))]
6300 #[unsafe(method_family = init)]
6301 pub unsafe fn initWithSource_kernelSize(
6302 this: Allocated<Self>,
6303 source_node: &MPSNNImageNode,
6304 kernel_size: NSUInteger,
6305 ) -> Retained<Self>;
6306
6307 #[unsafe(method(initWithSource:))]
6308 #[unsafe(method_family = init)]
6309 pub unsafe fn initWithSource(
6310 this: Allocated<Self>,
6311 source_node: &MPSNNImageNode,
6312 ) -> Retained<Self>;
6313 );
6314}
6315
6316impl MPSCNNCrossChannelNormalizationNode {
6318 extern_methods!(
6319 #[unsafe(method(nodeWithSource:))]
6320 #[unsafe(method_family = none)]
6321 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
6322 );
6323}
6324
6325impl MPSCNNCrossChannelNormalizationNode {
6327 extern_methods!(
6328 #[unsafe(method(init))]
6329 #[unsafe(method_family = init)]
6330 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6331 );
6332}
6333
6334impl MPSCNNCrossChannelNormalizationNode {
6336 extern_methods!(
6337 #[unsafe(method(new))]
6338 #[unsafe(method_family = new)]
6339 pub unsafe fn new() -> Retained<Self>;
6340 );
6341}
6342
6343extern_class!(
6344 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
6346 #[derive(Debug, PartialEq, Eq, Hash)]
6347 pub struct MPSCNNCrossChannelNormalizationGradientNode;
6348);
6349
6350extern_conformance!(
6351 unsafe impl NSObjectProtocol for MPSCNNCrossChannelNormalizationGradientNode {}
6352);
6353
6354impl MPSCNNCrossChannelNormalizationGradientNode {
6355 extern_methods!(
6356 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:kernelSize:))]
6357 #[unsafe(method_family = none)]
6358 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_kernelSize(
6359 source_gradient: &MPSNNImageNode,
6360 source_image: &MPSNNImageNode,
6361 gradient_state: &MPSNNGradientStateNode,
6362 kernel_size: NSUInteger,
6363 ) -> Retained<Self>;
6364
6365 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:kernelSize:))]
6366 #[unsafe(method_family = init)]
6367 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_kernelSize(
6368 this: Allocated<Self>,
6369 source_gradient: &MPSNNImageNode,
6370 source_image: &MPSNNImageNode,
6371 gradient_state: &MPSNNGradientStateNode,
6372 kernel_size: NSUInteger,
6373 ) -> Retained<Self>;
6374
6375 #[unsafe(method(kernelSize))]
6376 #[unsafe(method_family = none)]
6377 pub unsafe fn kernelSize(&self) -> NSUInteger;
6378 );
6379}
6380
6381impl MPSCNNCrossChannelNormalizationGradientNode {
6383 extern_methods!(
6384 #[unsafe(method(init))]
6385 #[unsafe(method_family = init)]
6386 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6387 );
6388}
6389
6390impl MPSCNNCrossChannelNormalizationGradientNode {
6392 extern_methods!(
6393 #[unsafe(method(new))]
6394 #[unsafe(method_family = new)]
6395 pub unsafe fn new() -> Retained<Self>;
6396 );
6397}
6398
6399extern_class!(
6400 #[unsafe(super(MPSNNFilterNode, NSObject))]
6402 #[derive(Debug, PartialEq, Eq, Hash)]
6403 pub struct MPSCNNInstanceNormalizationNode;
6404);
6405
6406extern_conformance!(
6407 unsafe impl MPSNNTrainableNode for MPSCNNInstanceNormalizationNode {}
6408);
6409
6410extern_conformance!(
6411 unsafe impl NSObjectProtocol for MPSCNNInstanceNormalizationNode {}
6412);
6413
6414impl MPSCNNInstanceNormalizationNode {
6415 extern_methods!(
6416 #[cfg(feature = "MPSNeuralNetworkTypes")]
6417 #[unsafe(method(trainingStyle))]
6419 #[unsafe(method_family = none)]
6420 pub unsafe fn trainingStyle(&self) -> MPSNNTrainingStyle;
6421
6422 #[cfg(feature = "MPSNeuralNetworkTypes")]
6423 #[unsafe(method(setTrainingStyle:))]
6425 #[unsafe(method_family = none)]
6426 pub unsafe fn setTrainingStyle(&self, training_style: MPSNNTrainingStyle);
6427
6428 #[cfg(feature = "MPSCNNInstanceNormalization")]
6429 #[unsafe(method(nodeWithSource:dataSource:))]
6430 #[unsafe(method_family = none)]
6431 pub unsafe fn nodeWithSource_dataSource(
6432 source: &MPSNNImageNode,
6433 data_source: &ProtocolObject<dyn MPSCNNInstanceNormalizationDataSource>,
6434 ) -> Retained<Self>;
6435
6436 #[cfg(feature = "MPSCNNInstanceNormalization")]
6437 #[unsafe(method(initWithSource:dataSource:))]
6438 #[unsafe(method_family = init)]
6439 pub unsafe fn initWithSource_dataSource(
6440 this: Allocated<Self>,
6441 source: &MPSNNImageNode,
6442 data_source: &ProtocolObject<dyn MPSCNNInstanceNormalizationDataSource>,
6443 ) -> Retained<Self>;
6444 );
6445}
6446
6447impl MPSCNNInstanceNormalizationNode {
6449 extern_methods!(
6450 #[unsafe(method(init))]
6451 #[unsafe(method_family = init)]
6452 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6453 );
6454}
6455
6456impl MPSCNNInstanceNormalizationNode {
6458 extern_methods!(
6459 #[unsafe(method(new))]
6460 #[unsafe(method_family = new)]
6461 pub unsafe fn new() -> Retained<Self>;
6462 );
6463}
6464
6465extern_class!(
6466 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
6468 #[derive(Debug, PartialEq, Eq, Hash)]
6469 pub struct MPSCNNInstanceNormalizationGradientNode;
6470);
6471
6472extern_conformance!(
6473 unsafe impl MPSNNTrainableNode for MPSCNNInstanceNormalizationGradientNode {}
6474);
6475
6476extern_conformance!(
6477 unsafe impl NSObjectProtocol for MPSCNNInstanceNormalizationGradientNode {}
6478);
6479
6480impl MPSCNNInstanceNormalizationGradientNode {
6481 extern_methods!(
6482 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
6483 #[unsafe(method_family = none)]
6484 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
6485 source_gradient: &MPSNNImageNode,
6486 source_image: &MPSNNImageNode,
6487 gradient_state: &MPSNNGradientStateNode,
6488 ) -> Retained<Self>;
6489
6490 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
6491 #[unsafe(method_family = init)]
6492 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
6493 this: Allocated<Self>,
6494 source_gradient: &MPSNNImageNode,
6495 source_image: &MPSNNImageNode,
6496 gradient_state: &MPSNNGradientStateNode,
6497 ) -> Retained<Self>;
6498 );
6499}
6500
6501impl MPSCNNInstanceNormalizationGradientNode {
6503 extern_methods!(
6504 #[unsafe(method(init))]
6505 #[unsafe(method_family = init)]
6506 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6507 );
6508}
6509
6510impl MPSCNNInstanceNormalizationGradientNode {
6512 extern_methods!(
6513 #[unsafe(method(new))]
6514 #[unsafe(method_family = new)]
6515 pub unsafe fn new() -> Retained<Self>;
6516 );
6517}
6518
6519extern_class!(
6520 #[unsafe(super(MPSNNFilterNode, NSObject))]
6522 #[derive(Debug, PartialEq, Eq, Hash)]
6523 pub struct MPSCNNGroupNormalizationNode;
6524);
6525
6526extern_conformance!(
6527 unsafe impl MPSNNTrainableNode for MPSCNNGroupNormalizationNode {}
6528);
6529
6530extern_conformance!(
6531 unsafe impl NSObjectProtocol for MPSCNNGroupNormalizationNode {}
6532);
6533
6534impl MPSCNNGroupNormalizationNode {
6535 extern_methods!(
6536 #[cfg(feature = "MPSNeuralNetworkTypes")]
6537 #[unsafe(method(trainingStyle))]
6539 #[unsafe(method_family = none)]
6540 pub unsafe fn trainingStyle(&self) -> MPSNNTrainingStyle;
6541
6542 #[cfg(feature = "MPSNeuralNetworkTypes")]
6543 #[unsafe(method(setTrainingStyle:))]
6545 #[unsafe(method_family = none)]
6546 pub unsafe fn setTrainingStyle(&self, training_style: MPSNNTrainingStyle);
6547
6548 #[cfg(feature = "MPSCNNGroupNormalization")]
6549 #[unsafe(method(nodeWithSource:dataSource:))]
6550 #[unsafe(method_family = none)]
6551 pub unsafe fn nodeWithSource_dataSource(
6552 source: &MPSNNImageNode,
6553 data_source: &ProtocolObject<dyn MPSCNNGroupNormalizationDataSource>,
6554 ) -> Retained<Self>;
6555
6556 #[cfg(feature = "MPSCNNGroupNormalization")]
6557 #[unsafe(method(initWithSource:dataSource:))]
6558 #[unsafe(method_family = init)]
6559 pub unsafe fn initWithSource_dataSource(
6560 this: Allocated<Self>,
6561 source: &MPSNNImageNode,
6562 data_source: &ProtocolObject<dyn MPSCNNGroupNormalizationDataSource>,
6563 ) -> Retained<Self>;
6564 );
6565}
6566
6567impl MPSCNNGroupNormalizationNode {
6569 extern_methods!(
6570 #[unsafe(method(init))]
6571 #[unsafe(method_family = init)]
6572 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6573 );
6574}
6575
6576impl MPSCNNGroupNormalizationNode {
6578 extern_methods!(
6579 #[unsafe(method(new))]
6580 #[unsafe(method_family = new)]
6581 pub unsafe fn new() -> Retained<Self>;
6582 );
6583}
6584
6585extern_class!(
6586 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
6588 #[derive(Debug, PartialEq, Eq, Hash)]
6589 pub struct MPSCNNGroupNormalizationGradientNode;
6590);
6591
6592extern_conformance!(
6593 unsafe impl MPSNNTrainableNode for MPSCNNGroupNormalizationGradientNode {}
6594);
6595
6596extern_conformance!(
6597 unsafe impl NSObjectProtocol for MPSCNNGroupNormalizationGradientNode {}
6598);
6599
6600impl MPSCNNGroupNormalizationGradientNode {
6601 extern_methods!(
6602 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
6603 #[unsafe(method_family = none)]
6604 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
6605 source_gradient: &MPSNNImageNode,
6606 source_image: &MPSNNImageNode,
6607 gradient_state: &MPSNNGradientStateNode,
6608 ) -> Retained<Self>;
6609
6610 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
6611 #[unsafe(method_family = init)]
6612 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
6613 this: Allocated<Self>,
6614 source_gradient: &MPSNNImageNode,
6615 source_image: &MPSNNImageNode,
6616 gradient_state: &MPSNNGradientStateNode,
6617 ) -> Retained<Self>;
6618 );
6619}
6620
6621impl MPSCNNGroupNormalizationGradientNode {
6623 extern_methods!(
6624 #[unsafe(method(init))]
6625 #[unsafe(method_family = init)]
6626 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6627 );
6628}
6629
6630impl MPSCNNGroupNormalizationGradientNode {
6632 extern_methods!(
6633 #[unsafe(method(new))]
6634 #[unsafe(method_family = new)]
6635 pub unsafe fn new() -> Retained<Self>;
6636 );
6637}
6638
6639extern_class!(
6640 #[unsafe(super(MPSNNFilterNode, NSObject))]
6665 #[derive(Debug, PartialEq, Eq, Hash)]
6666 pub struct MPSCNNBatchNormalizationNode;
6667);
6668
6669extern_conformance!(
6670 unsafe impl MPSNNTrainableNode for MPSCNNBatchNormalizationNode {}
6671);
6672
6673extern_conformance!(
6674 unsafe impl NSObjectProtocol for MPSCNNBatchNormalizationNode {}
6675);
6676
6677impl MPSCNNBatchNormalizationNode {
6678 extern_methods!(
6679 #[cfg(feature = "MPSNeuralNetworkTypes")]
6680 #[unsafe(method(flags))]
6684 #[unsafe(method_family = none)]
6685 pub unsafe fn flags(&self) -> MPSCNNBatchNormalizationFlags;
6686
6687 #[cfg(feature = "MPSNeuralNetworkTypes")]
6688 #[unsafe(method(setFlags:))]
6690 #[unsafe(method_family = none)]
6691 pub unsafe fn setFlags(&self, flags: MPSCNNBatchNormalizationFlags);
6692
6693 #[cfg(feature = "MPSNeuralNetworkTypes")]
6694 #[unsafe(method(trainingStyle))]
6696 #[unsafe(method_family = none)]
6697 pub unsafe fn trainingStyle(&self) -> MPSNNTrainingStyle;
6698
6699 #[cfg(feature = "MPSNeuralNetworkTypes")]
6700 #[unsafe(method(setTrainingStyle:))]
6702 #[unsafe(method_family = none)]
6703 pub unsafe fn setTrainingStyle(&self, training_style: MPSNNTrainingStyle);
6704
6705 #[cfg(feature = "MPSCNNBatchNormalization")]
6706 #[unsafe(method(nodeWithSource:dataSource:))]
6707 #[unsafe(method_family = none)]
6708 pub unsafe fn nodeWithSource_dataSource(
6709 source: &MPSNNImageNode,
6710 data_source: &ProtocolObject<dyn MPSCNNBatchNormalizationDataSource>,
6711 ) -> Retained<Self>;
6712
6713 #[cfg(feature = "MPSCNNBatchNormalization")]
6714 #[unsafe(method(initWithSource:dataSource:))]
6715 #[unsafe(method_family = init)]
6716 pub unsafe fn initWithSource_dataSource(
6717 this: Allocated<Self>,
6718 source: &MPSNNImageNode,
6719 data_source: &ProtocolObject<dyn MPSCNNBatchNormalizationDataSource>,
6720 ) -> Retained<Self>;
6721 );
6722}
6723
6724impl MPSCNNBatchNormalizationNode {
6726 extern_methods!(
6727 #[unsafe(method(init))]
6728 #[unsafe(method_family = init)]
6729 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6730 );
6731}
6732
6733impl MPSCNNBatchNormalizationNode {
6735 extern_methods!(
6736 #[unsafe(method(new))]
6737 #[unsafe(method_family = new)]
6738 pub unsafe fn new() -> Retained<Self>;
6739 );
6740}
6741
6742extern_class!(
6743 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
6752 #[derive(Debug, PartialEq, Eq, Hash)]
6753 pub struct MPSCNNBatchNormalizationGradientNode;
6754);
6755
6756extern_conformance!(
6757 unsafe impl MPSNNTrainableNode for MPSCNNBatchNormalizationGradientNode {}
6758);
6759
6760extern_conformance!(
6761 unsafe impl NSObjectProtocol for MPSCNNBatchNormalizationGradientNode {}
6762);
6763
6764impl MPSCNNBatchNormalizationGradientNode {
6765 extern_methods!(
6766 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
6767 #[unsafe(method_family = none)]
6768 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
6769 source_gradient: &MPSNNImageNode,
6770 source_image: &MPSNNImageNode,
6771 gradient_state: &MPSNNGradientStateNode,
6772 ) -> Retained<Self>;
6773
6774 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
6775 #[unsafe(method_family = init)]
6776 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
6777 this: Allocated<Self>,
6778 source_gradient: &MPSNNImageNode,
6779 source_image: &MPSNNImageNode,
6780 gradient_state: &MPSNNGradientStateNode,
6781 ) -> Retained<Self>;
6782 );
6783}
6784
6785impl MPSCNNBatchNormalizationGradientNode {
6787 extern_methods!(
6788 #[unsafe(method(init))]
6789 #[unsafe(method_family = init)]
6790 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6791 );
6792}
6793
6794impl MPSCNNBatchNormalizationGradientNode {
6796 extern_methods!(
6797 #[unsafe(method(new))]
6798 #[unsafe(method_family = new)]
6799 pub unsafe fn new() -> Retained<Self>;
6800 );
6801}
6802
6803extern_protocol!(
6804 pub unsafe trait MPSImageTransformProvider: NSSecureCoding + NSObjectProtocol {
6806 #[cfg(all(feature = "MPSCore", feature = "MPSCoreTypes", feature = "MPSImage"))]
6807 #[unsafe(method(transformForSourceImage:handle:))]
6808 #[unsafe(method_family = none)]
6809 unsafe fn transformForSourceImage_handle(
6810 &self,
6811 image: &MPSImage,
6812 handle: Option<&ProtocolObject<dyn MPSHandle>>,
6813 ) -> MPSScaleTransform;
6814 }
6815);
6816
6817extern_class!(
6818 #[unsafe(super(MPSNNFilterNode, NSObject))]
6824 #[derive(Debug, PartialEq, Eq, Hash)]
6825 pub struct MPSNNScaleNode;
6826);
6827
6828extern_conformance!(
6829 unsafe impl NSObjectProtocol for MPSNNScaleNode {}
6830);
6831
6832impl MPSNNScaleNode {
6833 extern_methods!(
6834 #[unsafe(method(nodeWithSource:outputSize:))]
6840 #[unsafe(method_family = none)]
6841 pub unsafe fn nodeWithSource_outputSize(
6842 source_node: &MPSNNImageNode,
6843 size: MTLSize,
6844 ) -> Retained<Self>;
6845
6846 #[unsafe(method(nodeWithSource:transformProvider:outputSize:))]
6854 #[unsafe(method_family = none)]
6855 pub unsafe fn nodeWithSource_transformProvider_outputSize(
6856 source_node: &MPSNNImageNode,
6857 transform_provider: Option<&ProtocolObject<dyn MPSImageTransformProvider>>,
6858 size: MTLSize,
6859 ) -> Retained<Self>;
6860
6861 #[unsafe(method(initWithSource:outputSize:))]
6867 #[unsafe(method_family = init)]
6868 pub unsafe fn initWithSource_outputSize(
6869 this: Allocated<Self>,
6870 source_node: &MPSNNImageNode,
6871 size: MTLSize,
6872 ) -> Retained<Self>;
6873
6874 #[unsafe(method(initWithSource:transformProvider:outputSize:))]
6882 #[unsafe(method_family = init)]
6883 pub unsafe fn initWithSource_transformProvider_outputSize(
6884 this: Allocated<Self>,
6885 source_node: &MPSNNImageNode,
6886 transform_provider: Option<&ProtocolObject<dyn MPSImageTransformProvider>>,
6887 size: MTLSize,
6888 ) -> Retained<Self>;
6889 );
6890}
6891
6892impl MPSNNScaleNode {
6894 extern_methods!(
6895 #[unsafe(method(init))]
6896 #[unsafe(method_family = init)]
6897 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6898 );
6899}
6900
6901impl MPSNNScaleNode {
6903 extern_methods!(
6904 #[unsafe(method(new))]
6905 #[unsafe(method_family = new)]
6906 pub unsafe fn new() -> Retained<Self>;
6907 );
6908}
6909
6910extern_class!(
6911 #[unsafe(super(MPSNNScaleNode, MPSNNFilterNode, NSObject))]
6920 #[derive(Debug, PartialEq, Eq, Hash)]
6921 pub struct MPSNNBilinearScaleNode;
6922);
6923
6924extern_conformance!(
6925 unsafe impl NSObjectProtocol for MPSNNBilinearScaleNode {}
6926);
6927
6928impl MPSNNBilinearScaleNode {
6929 extern_methods!();
6930}
6931
6932impl MPSNNBilinearScaleNode {
6934 extern_methods!(
6935 #[unsafe(method(nodeWithSource:outputSize:))]
6941 #[unsafe(method_family = none)]
6942 pub unsafe fn nodeWithSource_outputSize(
6943 source_node: &MPSNNImageNode,
6944 size: MTLSize,
6945 ) -> Retained<Self>;
6946
6947 #[unsafe(method(nodeWithSource:transformProvider:outputSize:))]
6955 #[unsafe(method_family = none)]
6956 pub unsafe fn nodeWithSource_transformProvider_outputSize(
6957 source_node: &MPSNNImageNode,
6958 transform_provider: Option<&ProtocolObject<dyn MPSImageTransformProvider>>,
6959 size: MTLSize,
6960 ) -> Retained<Self>;
6961
6962 #[unsafe(method(initWithSource:outputSize:))]
6968 #[unsafe(method_family = init)]
6969 pub unsafe fn initWithSource_outputSize(
6970 this: Allocated<Self>,
6971 source_node: &MPSNNImageNode,
6972 size: MTLSize,
6973 ) -> Retained<Self>;
6974
6975 #[unsafe(method(initWithSource:transformProvider:outputSize:))]
6983 #[unsafe(method_family = init)]
6984 pub unsafe fn initWithSource_transformProvider_outputSize(
6985 this: Allocated<Self>,
6986 source_node: &MPSNNImageNode,
6987 transform_provider: Option<&ProtocolObject<dyn MPSImageTransformProvider>>,
6988 size: MTLSize,
6989 ) -> Retained<Self>;
6990 );
6991}
6992
6993impl MPSNNBilinearScaleNode {
6995 extern_methods!(
6996 #[unsafe(method(init))]
6997 #[unsafe(method_family = init)]
6998 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
6999 );
7000}
7001
7002impl MPSNNBilinearScaleNode {
7004 extern_methods!(
7005 #[unsafe(method(new))]
7006 #[unsafe(method_family = new)]
7007 pub unsafe fn new() -> Retained<Self>;
7008 );
7009}
7010
7011extern_class!(
7012 #[unsafe(super(MPSNNScaleNode, MPSNNFilterNode, NSObject))]
7022 #[derive(Debug, PartialEq, Eq, Hash)]
7023 pub struct MPSNNLanczosScaleNode;
7024);
7025
7026extern_conformance!(
7027 unsafe impl NSObjectProtocol for MPSNNLanczosScaleNode {}
7028);
7029
7030impl MPSNNLanczosScaleNode {
7031 extern_methods!();
7032}
7033
7034impl MPSNNLanczosScaleNode {
7036 extern_methods!(
7037 #[unsafe(method(nodeWithSource:outputSize:))]
7043 #[unsafe(method_family = none)]
7044 pub unsafe fn nodeWithSource_outputSize(
7045 source_node: &MPSNNImageNode,
7046 size: MTLSize,
7047 ) -> Retained<Self>;
7048
7049 #[unsafe(method(nodeWithSource:transformProvider:outputSize:))]
7057 #[unsafe(method_family = none)]
7058 pub unsafe fn nodeWithSource_transformProvider_outputSize(
7059 source_node: &MPSNNImageNode,
7060 transform_provider: Option<&ProtocolObject<dyn MPSImageTransformProvider>>,
7061 size: MTLSize,
7062 ) -> Retained<Self>;
7063
7064 #[unsafe(method(initWithSource:outputSize:))]
7070 #[unsafe(method_family = init)]
7071 pub unsafe fn initWithSource_outputSize(
7072 this: Allocated<Self>,
7073 source_node: &MPSNNImageNode,
7074 size: MTLSize,
7075 ) -> Retained<Self>;
7076
7077 #[unsafe(method(initWithSource:transformProvider:outputSize:))]
7085 #[unsafe(method_family = init)]
7086 pub unsafe fn initWithSource_transformProvider_outputSize(
7087 this: Allocated<Self>,
7088 source_node: &MPSNNImageNode,
7089 transform_provider: Option<&ProtocolObject<dyn MPSImageTransformProvider>>,
7090 size: MTLSize,
7091 ) -> Retained<Self>;
7092 );
7093}
7094
7095impl MPSNNLanczosScaleNode {
7097 extern_methods!(
7098 #[unsafe(method(init))]
7099 #[unsafe(method_family = init)]
7100 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7101 );
7102}
7103
7104impl MPSNNLanczosScaleNode {
7106 extern_methods!(
7107 #[unsafe(method(new))]
7108 #[unsafe(method_family = new)]
7109 pub unsafe fn new() -> Retained<Self>;
7110 );
7111}
7112
7113extern_class!(
7114 #[unsafe(super(MPSNNFilterNode, NSObject))]
7118 #[derive(Debug, PartialEq, Eq, Hash)]
7119 pub struct MPSNNBinaryArithmeticNode;
7120);
7121
7122extern_conformance!(
7123 unsafe impl NSObjectProtocol for MPSNNBinaryArithmeticNode {}
7124);
7125
7126impl MPSNNBinaryArithmeticNode {
7127 extern_methods!(
7128 #[unsafe(method(nodeWithSources:))]
7132 #[unsafe(method_family = none)]
7133 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
7134
7135 #[unsafe(method(nodeWithLeftSource:rightSource:))]
7141 #[unsafe(method_family = none)]
7142 pub unsafe fn nodeWithLeftSource_rightSource(
7143 left: &MPSNNImageNode,
7144 right: &MPSNNImageNode,
7145 ) -> Retained<Self>;
7146
7147 #[unsafe(method(initWithSources:))]
7151 #[unsafe(method_family = init)]
7152 pub unsafe fn initWithSources(
7153 this: Allocated<Self>,
7154 source_nodes: &NSArray<MPSNNImageNode>,
7155 ) -> Retained<Self>;
7156
7157 #[unsafe(method(initWithLeftSource:rightSource:))]
7163 #[unsafe(method_family = init)]
7164 pub unsafe fn initWithLeftSource_rightSource(
7165 this: Allocated<Self>,
7166 left: &MPSNNImageNode,
7167 right: &MPSNNImageNode,
7168 ) -> Retained<Self>;
7169
7170 #[unsafe(method(gradientClass))]
7171 #[unsafe(method_family = none)]
7172 pub unsafe fn gradientClass(&self) -> &'static AnyClass;
7173
7174 #[unsafe(method(gradientFilterWithSources:))]
7175 #[unsafe(method_family = none)]
7176 pub unsafe fn gradientFilterWithSources(
7177 &self,
7178 gradient_images: &NSArray<MPSNNImageNode>,
7179 ) -> Retained<MPSNNGradientFilterNode>;
7180
7181 #[unsafe(method(gradientFiltersWithSources:))]
7186 #[unsafe(method_family = none)]
7187 pub unsafe fn gradientFiltersWithSources(
7188 &self,
7189 gradient_images: &NSArray<MPSNNImageNode>,
7190 ) -> Retained<NSArray<MPSNNGradientFilterNode>>;
7191
7192 #[unsafe(method(primaryScale))]
7193 #[unsafe(method_family = none)]
7194 pub unsafe fn primaryScale(&self) -> c_float;
7195
7196 #[unsafe(method(setPrimaryScale:))]
7198 #[unsafe(method_family = none)]
7199 pub unsafe fn setPrimaryScale(&self, primary_scale: c_float);
7200
7201 #[unsafe(method(secondaryScale))]
7202 #[unsafe(method_family = none)]
7203 pub unsafe fn secondaryScale(&self) -> c_float;
7204
7205 #[unsafe(method(setSecondaryScale:))]
7207 #[unsafe(method_family = none)]
7208 pub unsafe fn setSecondaryScale(&self, secondary_scale: c_float);
7209
7210 #[unsafe(method(bias))]
7211 #[unsafe(method_family = none)]
7212 pub unsafe fn bias(&self) -> c_float;
7213
7214 #[unsafe(method(setBias:))]
7216 #[unsafe(method_family = none)]
7217 pub unsafe fn setBias(&self, bias: c_float);
7218
7219 #[unsafe(method(primaryStrideInPixelsX))]
7220 #[unsafe(method_family = none)]
7221 pub unsafe fn primaryStrideInPixelsX(&self) -> NSUInteger;
7222
7223 #[unsafe(method(setPrimaryStrideInPixelsX:))]
7225 #[unsafe(method_family = none)]
7226 pub unsafe fn setPrimaryStrideInPixelsX(&self, primary_stride_in_pixels_x: NSUInteger);
7227
7228 #[unsafe(method(primaryStrideInPixelsY))]
7229 #[unsafe(method_family = none)]
7230 pub unsafe fn primaryStrideInPixelsY(&self) -> NSUInteger;
7231
7232 #[unsafe(method(setPrimaryStrideInPixelsY:))]
7234 #[unsafe(method_family = none)]
7235 pub unsafe fn setPrimaryStrideInPixelsY(&self, primary_stride_in_pixels_y: NSUInteger);
7236
7237 #[unsafe(method(primaryStrideInFeatureChannels))]
7238 #[unsafe(method_family = none)]
7239 pub unsafe fn primaryStrideInFeatureChannels(&self) -> NSUInteger;
7240
7241 #[unsafe(method(setPrimaryStrideInFeatureChannels:))]
7243 #[unsafe(method_family = none)]
7244 pub unsafe fn setPrimaryStrideInFeatureChannels(
7245 &self,
7246 primary_stride_in_feature_channels: NSUInteger,
7247 );
7248
7249 #[unsafe(method(secondaryStrideInPixelsX))]
7250 #[unsafe(method_family = none)]
7251 pub unsafe fn secondaryStrideInPixelsX(&self) -> NSUInteger;
7252
7253 #[unsafe(method(setSecondaryStrideInPixelsX:))]
7255 #[unsafe(method_family = none)]
7256 pub unsafe fn setSecondaryStrideInPixelsX(&self, secondary_stride_in_pixels_x: NSUInteger);
7257
7258 #[unsafe(method(secondaryStrideInPixelsY))]
7259 #[unsafe(method_family = none)]
7260 pub unsafe fn secondaryStrideInPixelsY(&self) -> NSUInteger;
7261
7262 #[unsafe(method(setSecondaryStrideInPixelsY:))]
7264 #[unsafe(method_family = none)]
7265 pub unsafe fn setSecondaryStrideInPixelsY(&self, secondary_stride_in_pixels_y: NSUInteger);
7266
7267 #[unsafe(method(secondaryStrideInFeatureChannels))]
7268 #[unsafe(method_family = none)]
7269 pub unsafe fn secondaryStrideInFeatureChannels(&self) -> NSUInteger;
7270
7271 #[unsafe(method(setSecondaryStrideInFeatureChannels:))]
7273 #[unsafe(method_family = none)]
7274 pub unsafe fn setSecondaryStrideInFeatureChannels(
7275 &self,
7276 secondary_stride_in_feature_channels: NSUInteger,
7277 );
7278
7279 #[unsafe(method(minimumValue))]
7280 #[unsafe(method_family = none)]
7281 pub unsafe fn minimumValue(&self) -> c_float;
7282
7283 #[unsafe(method(setMinimumValue:))]
7285 #[unsafe(method_family = none)]
7286 pub unsafe fn setMinimumValue(&self, minimum_value: c_float);
7287
7288 #[unsafe(method(maximumValue))]
7289 #[unsafe(method_family = none)]
7290 pub unsafe fn maximumValue(&self) -> c_float;
7291
7292 #[unsafe(method(setMaximumValue:))]
7294 #[unsafe(method_family = none)]
7295 pub unsafe fn setMaximumValue(&self, maximum_value: c_float);
7296 );
7297}
7298
7299impl MPSNNBinaryArithmeticNode {
7301 extern_methods!(
7302 #[unsafe(method(init))]
7303 #[unsafe(method_family = init)]
7304 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7305 );
7306}
7307
7308impl MPSNNBinaryArithmeticNode {
7310 extern_methods!(
7311 #[unsafe(method(new))]
7312 #[unsafe(method_family = new)]
7313 pub unsafe fn new() -> Retained<Self>;
7314 );
7315}
7316
7317extern_class!(
7318 #[unsafe(super(MPSNNBinaryArithmeticNode, MPSNNFilterNode, NSObject))]
7322 #[derive(Debug, PartialEq, Eq, Hash)]
7323 pub struct MPSNNAdditionNode;
7324);
7325
7326extern_conformance!(
7327 unsafe impl NSObjectProtocol for MPSNNAdditionNode {}
7328);
7329
7330impl MPSNNAdditionNode {
7331 extern_methods!();
7332}
7333
7334impl MPSNNAdditionNode {
7336 extern_methods!(
7337 #[unsafe(method(nodeWithSources:))]
7341 #[unsafe(method_family = none)]
7342 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
7343
7344 #[unsafe(method(nodeWithLeftSource:rightSource:))]
7350 #[unsafe(method_family = none)]
7351 pub unsafe fn nodeWithLeftSource_rightSource(
7352 left: &MPSNNImageNode,
7353 right: &MPSNNImageNode,
7354 ) -> Retained<Self>;
7355
7356 #[unsafe(method(initWithSources:))]
7360 #[unsafe(method_family = init)]
7361 pub unsafe fn initWithSources(
7362 this: Allocated<Self>,
7363 source_nodes: &NSArray<MPSNNImageNode>,
7364 ) -> Retained<Self>;
7365
7366 #[unsafe(method(initWithLeftSource:rightSource:))]
7372 #[unsafe(method_family = init)]
7373 pub unsafe fn initWithLeftSource_rightSource(
7374 this: Allocated<Self>,
7375 left: &MPSNNImageNode,
7376 right: &MPSNNImageNode,
7377 ) -> Retained<Self>;
7378 );
7379}
7380
7381impl MPSNNAdditionNode {
7383 extern_methods!(
7384 #[unsafe(method(init))]
7385 #[unsafe(method_family = init)]
7386 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7387 );
7388}
7389
7390impl MPSNNAdditionNode {
7392 extern_methods!(
7393 #[unsafe(method(new))]
7394 #[unsafe(method_family = new)]
7395 pub unsafe fn new() -> Retained<Self>;
7396 );
7397}
7398
7399extern_class!(
7400 #[unsafe(super(MPSNNBinaryArithmeticNode, MPSNNFilterNode, NSObject))]
7404 #[derive(Debug, PartialEq, Eq, Hash)]
7405 pub struct MPSNNSubtractionNode;
7406);
7407
7408extern_conformance!(
7409 unsafe impl NSObjectProtocol for MPSNNSubtractionNode {}
7410);
7411
7412impl MPSNNSubtractionNode {
7413 extern_methods!();
7414}
7415
7416impl MPSNNSubtractionNode {
7418 extern_methods!(
7419 #[unsafe(method(nodeWithSources:))]
7423 #[unsafe(method_family = none)]
7424 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
7425
7426 #[unsafe(method(nodeWithLeftSource:rightSource:))]
7432 #[unsafe(method_family = none)]
7433 pub unsafe fn nodeWithLeftSource_rightSource(
7434 left: &MPSNNImageNode,
7435 right: &MPSNNImageNode,
7436 ) -> Retained<Self>;
7437
7438 #[unsafe(method(initWithSources:))]
7442 #[unsafe(method_family = init)]
7443 pub unsafe fn initWithSources(
7444 this: Allocated<Self>,
7445 source_nodes: &NSArray<MPSNNImageNode>,
7446 ) -> Retained<Self>;
7447
7448 #[unsafe(method(initWithLeftSource:rightSource:))]
7454 #[unsafe(method_family = init)]
7455 pub unsafe fn initWithLeftSource_rightSource(
7456 this: Allocated<Self>,
7457 left: &MPSNNImageNode,
7458 right: &MPSNNImageNode,
7459 ) -> Retained<Self>;
7460 );
7461}
7462
7463impl MPSNNSubtractionNode {
7465 extern_methods!(
7466 #[unsafe(method(init))]
7467 #[unsafe(method_family = init)]
7468 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7469 );
7470}
7471
7472impl MPSNNSubtractionNode {
7474 extern_methods!(
7475 #[unsafe(method(new))]
7476 #[unsafe(method_family = new)]
7477 pub unsafe fn new() -> Retained<Self>;
7478 );
7479}
7480
7481extern_class!(
7482 #[unsafe(super(MPSNNBinaryArithmeticNode, MPSNNFilterNode, NSObject))]
7486 #[derive(Debug, PartialEq, Eq, Hash)]
7487 pub struct MPSNNMultiplicationNode;
7488);
7489
7490extern_conformance!(
7491 unsafe impl NSObjectProtocol for MPSNNMultiplicationNode {}
7492);
7493
7494impl MPSNNMultiplicationNode {
7495 extern_methods!();
7496}
7497
7498impl MPSNNMultiplicationNode {
7500 extern_methods!(
7501 #[unsafe(method(nodeWithSources:))]
7505 #[unsafe(method_family = none)]
7506 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
7507
7508 #[unsafe(method(nodeWithLeftSource:rightSource:))]
7514 #[unsafe(method_family = none)]
7515 pub unsafe fn nodeWithLeftSource_rightSource(
7516 left: &MPSNNImageNode,
7517 right: &MPSNNImageNode,
7518 ) -> Retained<Self>;
7519
7520 #[unsafe(method(initWithSources:))]
7524 #[unsafe(method_family = init)]
7525 pub unsafe fn initWithSources(
7526 this: Allocated<Self>,
7527 source_nodes: &NSArray<MPSNNImageNode>,
7528 ) -> Retained<Self>;
7529
7530 #[unsafe(method(initWithLeftSource:rightSource:))]
7536 #[unsafe(method_family = init)]
7537 pub unsafe fn initWithLeftSource_rightSource(
7538 this: Allocated<Self>,
7539 left: &MPSNNImageNode,
7540 right: &MPSNNImageNode,
7541 ) -> Retained<Self>;
7542 );
7543}
7544
7545impl MPSNNMultiplicationNode {
7547 extern_methods!(
7548 #[unsafe(method(init))]
7549 #[unsafe(method_family = init)]
7550 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7551 );
7552}
7553
7554impl MPSNNMultiplicationNode {
7556 extern_methods!(
7557 #[unsafe(method(new))]
7558 #[unsafe(method_family = new)]
7559 pub unsafe fn new() -> Retained<Self>;
7560 );
7561}
7562
7563extern_class!(
7564 #[unsafe(super(MPSNNBinaryArithmeticNode, MPSNNFilterNode, NSObject))]
7568 #[derive(Debug, PartialEq, Eq, Hash)]
7569 pub struct MPSNNDivisionNode;
7570);
7571
7572extern_conformance!(
7573 unsafe impl NSObjectProtocol for MPSNNDivisionNode {}
7574);
7575
7576impl MPSNNDivisionNode {
7577 extern_methods!();
7578}
7579
7580impl MPSNNDivisionNode {
7582 extern_methods!(
7583 #[unsafe(method(nodeWithSources:))]
7587 #[unsafe(method_family = none)]
7588 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
7589
7590 #[unsafe(method(nodeWithLeftSource:rightSource:))]
7596 #[unsafe(method_family = none)]
7597 pub unsafe fn nodeWithLeftSource_rightSource(
7598 left: &MPSNNImageNode,
7599 right: &MPSNNImageNode,
7600 ) -> Retained<Self>;
7601
7602 #[unsafe(method(initWithSources:))]
7606 #[unsafe(method_family = init)]
7607 pub unsafe fn initWithSources(
7608 this: Allocated<Self>,
7609 source_nodes: &NSArray<MPSNNImageNode>,
7610 ) -> Retained<Self>;
7611
7612 #[unsafe(method(initWithLeftSource:rightSource:))]
7618 #[unsafe(method_family = init)]
7619 pub unsafe fn initWithLeftSource_rightSource(
7620 this: Allocated<Self>,
7621 left: &MPSNNImageNode,
7622 right: &MPSNNImageNode,
7623 ) -> Retained<Self>;
7624 );
7625}
7626
7627impl MPSNNDivisionNode {
7629 extern_methods!(
7630 #[unsafe(method(init))]
7631 #[unsafe(method_family = init)]
7632 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7633 );
7634}
7635
7636impl MPSNNDivisionNode {
7638 extern_methods!(
7639 #[unsafe(method(new))]
7640 #[unsafe(method_family = new)]
7641 pub unsafe fn new() -> Retained<Self>;
7642 );
7643}
7644
7645extern_class!(
7646 #[unsafe(super(MPSNNBinaryArithmeticNode, MPSNNFilterNode, NSObject))]
7650 #[derive(Debug, PartialEq, Eq, Hash)]
7651 pub struct MPSNNComparisonNode;
7652);
7653
7654extern_conformance!(
7655 unsafe impl NSObjectProtocol for MPSNNComparisonNode {}
7656);
7657
7658impl MPSNNComparisonNode {
7659 extern_methods!(
7660 #[cfg(feature = "MPSCNNMath")]
7661 #[unsafe(method(comparisonType))]
7664 #[unsafe(method_family = none)]
7665 pub unsafe fn comparisonType(&self) -> MPSNNComparisonType;
7666
7667 #[cfg(feature = "MPSCNNMath")]
7668 #[unsafe(method(setComparisonType:))]
7670 #[unsafe(method_family = none)]
7671 pub unsafe fn setComparisonType(&self, comparison_type: MPSNNComparisonType);
7672 );
7673}
7674
7675impl MPSNNComparisonNode {
7677 extern_methods!(
7678 #[unsafe(method(nodeWithSources:))]
7682 #[unsafe(method_family = none)]
7683 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
7684
7685 #[unsafe(method(nodeWithLeftSource:rightSource:))]
7691 #[unsafe(method_family = none)]
7692 pub unsafe fn nodeWithLeftSource_rightSource(
7693 left: &MPSNNImageNode,
7694 right: &MPSNNImageNode,
7695 ) -> Retained<Self>;
7696
7697 #[unsafe(method(initWithSources:))]
7701 #[unsafe(method_family = init)]
7702 pub unsafe fn initWithSources(
7703 this: Allocated<Self>,
7704 source_nodes: &NSArray<MPSNNImageNode>,
7705 ) -> Retained<Self>;
7706
7707 #[unsafe(method(initWithLeftSource:rightSource:))]
7713 #[unsafe(method_family = init)]
7714 pub unsafe fn initWithLeftSource_rightSource(
7715 this: Allocated<Self>,
7716 left: &MPSNNImageNode,
7717 right: &MPSNNImageNode,
7718 ) -> Retained<Self>;
7719 );
7720}
7721
7722impl MPSNNComparisonNode {
7724 extern_methods!(
7725 #[unsafe(method(init))]
7726 #[unsafe(method_family = init)]
7727 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7728 );
7729}
7730
7731impl MPSNNComparisonNode {
7733 extern_methods!(
7734 #[unsafe(method(new))]
7735 #[unsafe(method_family = new)]
7736 pub unsafe fn new() -> Retained<Self>;
7737 );
7738}
7739
7740extern_class!(
7741 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
7743 #[derive(Debug, PartialEq, Eq, Hash)]
7744 pub struct MPSNNArithmeticGradientNode;
7745);
7746
7747extern_conformance!(
7748 unsafe impl NSObjectProtocol for MPSNNArithmeticGradientNode {}
7749);
7750
7751impl MPSNNArithmeticGradientNode {
7752 extern_methods!(
7753 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
7764 #[unsafe(method_family = none)]
7765 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
7766 source_gradient: &MPSNNImageNode,
7767 source_image: &MPSNNImageNode,
7768 gradient_state: &MPSNNBinaryGradientStateNode,
7769 is_secondary_source_filter: bool,
7770 ) -> Retained<Self>;
7771
7772 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
7783 #[unsafe(method_family = init)]
7784 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
7785 this: Allocated<Self>,
7786 source_gradient: &MPSNNImageNode,
7787 source_image: &MPSNNImageNode,
7788 gradient_state: &MPSNNBinaryGradientStateNode,
7789 is_secondary_source_filter: bool,
7790 ) -> Retained<Self>;
7791
7792 #[unsafe(method(initWithGradientImages:forwardFilter:isSecondarySourceFilter:))]
7806 #[unsafe(method_family = init)]
7807 pub unsafe fn initWithGradientImages_forwardFilter_isSecondarySourceFilter(
7808 this: Allocated<Self>,
7809 gradient_images: &NSArray<MPSNNImageNode>,
7810 filter: &MPSNNFilterNode,
7811 is_secondary_source_filter: bool,
7812 ) -> Retained<Self>;
7813
7814 #[unsafe(method(primaryScale))]
7815 #[unsafe(method_family = none)]
7816 pub unsafe fn primaryScale(&self) -> c_float;
7817
7818 #[unsafe(method(setPrimaryScale:))]
7820 #[unsafe(method_family = none)]
7821 pub unsafe fn setPrimaryScale(&self, primary_scale: c_float);
7822
7823 #[unsafe(method(secondaryScale))]
7824 #[unsafe(method_family = none)]
7825 pub unsafe fn secondaryScale(&self) -> c_float;
7826
7827 #[unsafe(method(setSecondaryScale:))]
7829 #[unsafe(method_family = none)]
7830 pub unsafe fn setSecondaryScale(&self, secondary_scale: c_float);
7831
7832 #[unsafe(method(bias))]
7833 #[unsafe(method_family = none)]
7834 pub unsafe fn bias(&self) -> c_float;
7835
7836 #[unsafe(method(setBias:))]
7838 #[unsafe(method_family = none)]
7839 pub unsafe fn setBias(&self, bias: c_float);
7840
7841 #[unsafe(method(secondaryStrideInPixelsX))]
7842 #[unsafe(method_family = none)]
7843 pub unsafe fn secondaryStrideInPixelsX(&self) -> NSUInteger;
7844
7845 #[unsafe(method(setSecondaryStrideInPixelsX:))]
7847 #[unsafe(method_family = none)]
7848 pub unsafe fn setSecondaryStrideInPixelsX(&self, secondary_stride_in_pixels_x: NSUInteger);
7849
7850 #[unsafe(method(secondaryStrideInPixelsY))]
7851 #[unsafe(method_family = none)]
7852 pub unsafe fn secondaryStrideInPixelsY(&self) -> NSUInteger;
7853
7854 #[unsafe(method(setSecondaryStrideInPixelsY:))]
7856 #[unsafe(method_family = none)]
7857 pub unsafe fn setSecondaryStrideInPixelsY(&self, secondary_stride_in_pixels_y: NSUInteger);
7858
7859 #[unsafe(method(secondaryStrideInFeatureChannels))]
7860 #[unsafe(method_family = none)]
7861 pub unsafe fn secondaryStrideInFeatureChannels(&self) -> NSUInteger;
7862
7863 #[unsafe(method(setSecondaryStrideInFeatureChannels:))]
7865 #[unsafe(method_family = none)]
7866 pub unsafe fn setSecondaryStrideInFeatureChannels(
7867 &self,
7868 secondary_stride_in_feature_channels: NSUInteger,
7869 );
7870
7871 #[unsafe(method(minimumValue))]
7872 #[unsafe(method_family = none)]
7873 pub unsafe fn minimumValue(&self) -> c_float;
7874
7875 #[unsafe(method(setMinimumValue:))]
7877 #[unsafe(method_family = none)]
7878 pub unsafe fn setMinimumValue(&self, minimum_value: c_float);
7879
7880 #[unsafe(method(maximumValue))]
7881 #[unsafe(method_family = none)]
7882 pub unsafe fn maximumValue(&self) -> c_float;
7883
7884 #[unsafe(method(setMaximumValue:))]
7886 #[unsafe(method_family = none)]
7887 pub unsafe fn setMaximumValue(&self, maximum_value: c_float);
7888
7889 #[unsafe(method(isSecondarySourceFilter))]
7890 #[unsafe(method_family = none)]
7891 pub unsafe fn isSecondarySourceFilter(&self) -> bool;
7892 );
7893}
7894
7895impl MPSNNArithmeticGradientNode {
7897 extern_methods!(
7898 #[unsafe(method(init))]
7899 #[unsafe(method_family = init)]
7900 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
7901 );
7902}
7903
7904impl MPSNNArithmeticGradientNode {
7906 extern_methods!(
7907 #[unsafe(method(new))]
7908 #[unsafe(method_family = new)]
7909 pub unsafe fn new() -> Retained<Self>;
7910 );
7911}
7912
7913extern_class!(
7914 #[unsafe(super(
7920 MPSNNArithmeticGradientNode,
7921 MPSNNGradientFilterNode,
7922 MPSNNFilterNode,
7923 NSObject
7924 ))]
7925 #[derive(Debug, PartialEq, Eq, Hash)]
7926 pub struct MPSNNAdditionGradientNode;
7927);
7928
7929extern_conformance!(
7930 unsafe impl NSObjectProtocol for MPSNNAdditionGradientNode {}
7931);
7932
7933impl MPSNNAdditionGradientNode {
7934 extern_methods!();
7935}
7936
7937impl MPSNNAdditionGradientNode {
7939 extern_methods!(
7940 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
7951 #[unsafe(method_family = none)]
7952 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
7953 source_gradient: &MPSNNImageNode,
7954 source_image: &MPSNNImageNode,
7955 gradient_state: &MPSNNBinaryGradientStateNode,
7956 is_secondary_source_filter: bool,
7957 ) -> Retained<Self>;
7958
7959 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
7970 #[unsafe(method_family = init)]
7971 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
7972 this: Allocated<Self>,
7973 source_gradient: &MPSNNImageNode,
7974 source_image: &MPSNNImageNode,
7975 gradient_state: &MPSNNBinaryGradientStateNode,
7976 is_secondary_source_filter: bool,
7977 ) -> Retained<Self>;
7978
7979 #[unsafe(method(initWithGradientImages:forwardFilter:isSecondarySourceFilter:))]
7993 #[unsafe(method_family = init)]
7994 pub unsafe fn initWithGradientImages_forwardFilter_isSecondarySourceFilter(
7995 this: Allocated<Self>,
7996 gradient_images: &NSArray<MPSNNImageNode>,
7997 filter: &MPSNNFilterNode,
7998 is_secondary_source_filter: bool,
7999 ) -> Retained<Self>;
8000 );
8001}
8002
8003impl MPSNNAdditionGradientNode {
8005 extern_methods!(
8006 #[unsafe(method(init))]
8007 #[unsafe(method_family = init)]
8008 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8009 );
8010}
8011
8012impl MPSNNAdditionGradientNode {
8014 extern_methods!(
8015 #[unsafe(method(new))]
8016 #[unsafe(method_family = new)]
8017 pub unsafe fn new() -> Retained<Self>;
8018 );
8019}
8020
8021extern_class!(
8022 #[unsafe(super(
8028 MPSNNArithmeticGradientNode,
8029 MPSNNGradientFilterNode,
8030 MPSNNFilterNode,
8031 NSObject
8032 ))]
8033 #[derive(Debug, PartialEq, Eq, Hash)]
8034 pub struct MPSNNSubtractionGradientNode;
8035);
8036
8037extern_conformance!(
8038 unsafe impl NSObjectProtocol for MPSNNSubtractionGradientNode {}
8039);
8040
8041impl MPSNNSubtractionGradientNode {
8042 extern_methods!();
8043}
8044
8045impl MPSNNSubtractionGradientNode {
8047 extern_methods!(
8048 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
8059 #[unsafe(method_family = none)]
8060 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
8061 source_gradient: &MPSNNImageNode,
8062 source_image: &MPSNNImageNode,
8063 gradient_state: &MPSNNBinaryGradientStateNode,
8064 is_secondary_source_filter: bool,
8065 ) -> Retained<Self>;
8066
8067 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
8078 #[unsafe(method_family = init)]
8079 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
8080 this: Allocated<Self>,
8081 source_gradient: &MPSNNImageNode,
8082 source_image: &MPSNNImageNode,
8083 gradient_state: &MPSNNBinaryGradientStateNode,
8084 is_secondary_source_filter: bool,
8085 ) -> Retained<Self>;
8086
8087 #[unsafe(method(initWithGradientImages:forwardFilter:isSecondarySourceFilter:))]
8101 #[unsafe(method_family = init)]
8102 pub unsafe fn initWithGradientImages_forwardFilter_isSecondarySourceFilter(
8103 this: Allocated<Self>,
8104 gradient_images: &NSArray<MPSNNImageNode>,
8105 filter: &MPSNNFilterNode,
8106 is_secondary_source_filter: bool,
8107 ) -> Retained<Self>;
8108 );
8109}
8110
8111impl MPSNNSubtractionGradientNode {
8113 extern_methods!(
8114 #[unsafe(method(init))]
8115 #[unsafe(method_family = init)]
8116 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8117 );
8118}
8119
8120impl MPSNNSubtractionGradientNode {
8122 extern_methods!(
8123 #[unsafe(method(new))]
8124 #[unsafe(method_family = new)]
8125 pub unsafe fn new() -> Retained<Self>;
8126 );
8127}
8128
8129extern_class!(
8130 #[unsafe(super(
8136 MPSNNArithmeticGradientNode,
8137 MPSNNGradientFilterNode,
8138 MPSNNFilterNode,
8139 NSObject
8140 ))]
8141 #[derive(Debug, PartialEq, Eq, Hash)]
8142 pub struct MPSNNMultiplicationGradientNode;
8143);
8144
8145extern_conformance!(
8146 unsafe impl NSObjectProtocol for MPSNNMultiplicationGradientNode {}
8147);
8148
8149impl MPSNNMultiplicationGradientNode {
8150 extern_methods!();
8151}
8152
8153impl MPSNNMultiplicationGradientNode {
8155 extern_methods!(
8156 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
8167 #[unsafe(method_family = none)]
8168 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
8169 source_gradient: &MPSNNImageNode,
8170 source_image: &MPSNNImageNode,
8171 gradient_state: &MPSNNBinaryGradientStateNode,
8172 is_secondary_source_filter: bool,
8173 ) -> Retained<Self>;
8174
8175 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:isSecondarySourceFilter:))]
8186 #[unsafe(method_family = init)]
8187 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_isSecondarySourceFilter(
8188 this: Allocated<Self>,
8189 source_gradient: &MPSNNImageNode,
8190 source_image: &MPSNNImageNode,
8191 gradient_state: &MPSNNBinaryGradientStateNode,
8192 is_secondary_source_filter: bool,
8193 ) -> Retained<Self>;
8194
8195 #[unsafe(method(initWithGradientImages:forwardFilter:isSecondarySourceFilter:))]
8209 #[unsafe(method_family = init)]
8210 pub unsafe fn initWithGradientImages_forwardFilter_isSecondarySourceFilter(
8211 this: Allocated<Self>,
8212 gradient_images: &NSArray<MPSNNImageNode>,
8213 filter: &MPSNNFilterNode,
8214 is_secondary_source_filter: bool,
8215 ) -> Retained<Self>;
8216 );
8217}
8218
8219impl MPSNNMultiplicationGradientNode {
8221 extern_methods!(
8222 #[unsafe(method(init))]
8223 #[unsafe(method_family = init)]
8224 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8225 );
8226}
8227
8228impl MPSNNMultiplicationGradientNode {
8230 extern_methods!(
8231 #[unsafe(method(new))]
8232 #[unsafe(method_family = new)]
8233 pub unsafe fn new() -> Retained<Self>;
8234 );
8235}
8236
8237extern_class!(
8238 #[unsafe(super(MPSNNFilterNode, NSObject))]
8240 #[derive(Debug, PartialEq, Eq, Hash)]
8241 pub struct MPSCNNDropoutNode;
8242);
8243
8244extern_conformance!(
8245 unsafe impl NSObjectProtocol for MPSCNNDropoutNode {}
8246);
8247
8248impl MPSCNNDropoutNode {
8249 extern_methods!(
8250 #[unsafe(method(nodeWithSource:))]
8251 #[unsafe(method_family = none)]
8252 pub unsafe fn nodeWithSource(source: &MPSNNImageNode) -> Retained<Self>;
8253
8254 #[unsafe(method(initWithSource:))]
8255 #[unsafe(method_family = init)]
8256 pub unsafe fn initWithSource(
8257 this: Allocated<Self>,
8258 source: &MPSNNImageNode,
8259 ) -> Retained<Self>;
8260
8261 #[unsafe(method(nodeWithSource:keepProbability:))]
8262 #[unsafe(method_family = none)]
8263 pub unsafe fn nodeWithSource_keepProbability(
8264 source: &MPSNNImageNode,
8265 keep_probability: c_float,
8266 ) -> Retained<Self>;
8267
8268 #[unsafe(method(initWithSource:keepProbability:))]
8269 #[unsafe(method_family = init)]
8270 pub unsafe fn initWithSource_keepProbability(
8271 this: Allocated<Self>,
8272 source: &MPSNNImageNode,
8273 keep_probability: c_float,
8274 ) -> Retained<Self>;
8275
8276 #[unsafe(method(nodeWithSource:keepProbability:seed:maskStrideInPixels:))]
8277 #[unsafe(method_family = none)]
8278 pub unsafe fn nodeWithSource_keepProbability_seed_maskStrideInPixels(
8279 source: &MPSNNImageNode,
8280 keep_probability: c_float,
8281 seed: NSUInteger,
8282 mask_stride_in_pixels: MTLSize,
8283 ) -> Retained<Self>;
8284
8285 #[unsafe(method(initWithSource:keepProbability:seed:maskStrideInPixels:))]
8286 #[unsafe(method_family = init)]
8287 pub unsafe fn initWithSource_keepProbability_seed_maskStrideInPixels(
8288 this: Allocated<Self>,
8289 source: &MPSNNImageNode,
8290 keep_probability: c_float,
8291 seed: NSUInteger,
8292 mask_stride_in_pixels: MTLSize,
8293 ) -> Retained<Self>;
8294
8295 #[unsafe(method(keepProbability))]
8296 #[unsafe(method_family = none)]
8297 pub unsafe fn keepProbability(&self) -> c_float;
8298
8299 #[unsafe(method(seed))]
8300 #[unsafe(method_family = none)]
8301 pub unsafe fn seed(&self) -> NSUInteger;
8302
8303 #[unsafe(method(maskStrideInPixels))]
8304 #[unsafe(method_family = none)]
8305 pub unsafe fn maskStrideInPixels(&self) -> MTLSize;
8306 );
8307}
8308
8309impl MPSCNNDropoutNode {
8311 extern_methods!(
8312 #[unsafe(method(init))]
8313 #[unsafe(method_family = init)]
8314 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8315 );
8316}
8317
8318impl MPSCNNDropoutNode {
8320 extern_methods!(
8321 #[unsafe(method(new))]
8322 #[unsafe(method_family = new)]
8323 pub unsafe fn new() -> Retained<Self>;
8324 );
8325}
8326
8327extern_class!(
8328 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
8330 #[derive(Debug, PartialEq, Eq, Hash)]
8331 pub struct MPSCNNDropoutGradientNode;
8332);
8333
8334extern_conformance!(
8335 unsafe impl NSObjectProtocol for MPSCNNDropoutGradientNode {}
8336);
8337
8338impl MPSCNNDropoutGradientNode {
8339 extern_methods!(
8340 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:keepProbability:seed:maskStrideInPixels:))]
8345 #[unsafe(method_family = none)]
8346 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_keepProbability_seed_maskStrideInPixels(
8347 source_gradient: &MPSNNImageNode,
8348 source_image: &MPSNNImageNode,
8349 gradient_state: &MPSNNGradientStateNode,
8350 keep_probability: c_float,
8351 seed: NSUInteger,
8352 mask_stride_in_pixels: MTLSize,
8353 ) -> Retained<Self>;
8354
8355 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:keepProbability:seed:maskStrideInPixels:))]
8360 #[unsafe(method_family = init)]
8361 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_keepProbability_seed_maskStrideInPixels(
8362 this: Allocated<Self>,
8363 source_gradient: &MPSNNImageNode,
8364 source_image: &MPSNNImageNode,
8365 gradient_state: &MPSNNGradientStateNode,
8366 keep_probability: c_float,
8367 seed: NSUInteger,
8368 mask_stride_in_pixels: MTLSize,
8369 ) -> Retained<Self>;
8370
8371 #[unsafe(method(keepProbability))]
8372 #[unsafe(method_family = none)]
8373 pub unsafe fn keepProbability(&self) -> c_float;
8374
8375 #[unsafe(method(seed))]
8376 #[unsafe(method_family = none)]
8377 pub unsafe fn seed(&self) -> NSUInteger;
8378
8379 #[unsafe(method(maskStrideInPixels))]
8380 #[unsafe(method_family = none)]
8381 pub unsafe fn maskStrideInPixels(&self) -> MTLSize;
8382 );
8383}
8384
8385impl MPSCNNDropoutGradientNode {
8387 extern_methods!(
8388 #[unsafe(method(init))]
8389 #[unsafe(method_family = init)]
8390 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8391 );
8392}
8393
8394impl MPSCNNDropoutGradientNode {
8396 extern_methods!(
8397 #[unsafe(method(new))]
8398 #[unsafe(method_family = new)]
8399 pub unsafe fn new() -> Retained<Self>;
8400 );
8401}
8402
8403extern_class!(
8404 #[unsafe(super(MPSNNStateNode, NSObject))]
8414 #[derive(Debug, PartialEq, Eq, Hash)]
8415 pub struct MPSNNLabelsNode;
8416);
8417
8418extern_conformance!(
8419 unsafe impl NSObjectProtocol for MPSNNLabelsNode {}
8420);
8421
8422impl MPSNNLabelsNode {
8423 extern_methods!();
8424}
8425
8426impl MPSNNLabelsNode {
8428 extern_methods!(
8429 #[unsafe(method(init))]
8430 #[unsafe(method_family = init)]
8431 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8432 );
8433}
8434
8435impl MPSNNLabelsNode {
8437 extern_methods!(
8438 #[unsafe(method(new))]
8439 #[unsafe(method_family = new)]
8440 pub unsafe fn new() -> Retained<Self>;
8441 );
8442}
8443
8444extern_class!(
8445 #[unsafe(super(MPSNNFilterNode, NSObject))]
8456 #[derive(Debug, PartialEq, Eq, Hash)]
8457 pub struct MPSCNNLossNode;
8458);
8459
8460extern_conformance!(
8461 unsafe impl NSObjectProtocol for MPSCNNLossNode {}
8462);
8463
8464impl MPSCNNLossNode {
8465 extern_methods!(
8466 #[cfg(feature = "MPSCNNLoss")]
8467 #[unsafe(method(nodeWithSource:lossDescriptor:))]
8468 #[unsafe(method_family = none)]
8469 pub unsafe fn nodeWithSource_lossDescriptor(
8470 source: &MPSNNImageNode,
8471 descriptor: &MPSCNNLossDescriptor,
8472 ) -> Retained<Self>;
8473
8474 #[cfg(feature = "MPSCNNLoss")]
8475 #[unsafe(method(initWithSource:lossDescriptor:))]
8476 #[unsafe(method_family = init)]
8477 pub unsafe fn initWithSource_lossDescriptor(
8478 this: Allocated<Self>,
8479 source: &MPSNNImageNode,
8480 descriptor: &MPSCNNLossDescriptor,
8481 ) -> Retained<Self>;
8482
8483 #[unsafe(method(inputLabels))]
8485 #[unsafe(method_family = none)]
8486 pub unsafe fn inputLabels(&self) -> Retained<MPSNNLabelsNode>;
8487
8488 #[unsafe(method(gradientFilterWithSources:))]
8493 #[unsafe(method_family = none)]
8494 pub unsafe fn gradientFilterWithSources(
8495 &self,
8496 gradient_images: &NSArray<MPSNNImageNode>,
8497 ) -> Retained<MPSNNGradientFilterNode>;
8498 );
8499}
8500
8501impl MPSCNNLossNode {
8503 extern_methods!(
8504 #[unsafe(method(init))]
8505 #[unsafe(method_family = init)]
8506 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8507 );
8508}
8509
8510impl MPSCNNLossNode {
8512 extern_methods!(
8513 #[unsafe(method(new))]
8514 #[unsafe(method_family = new)]
8515 pub unsafe fn new() -> Retained<Self>;
8516 );
8517}
8518
8519extern_class!(
8520 #[unsafe(super(MPSNNFilterNode, NSObject))]
8531 #[derive(Debug, PartialEq, Eq, Hash)]
8532 pub struct MPSCNNYOLOLossNode;
8533);
8534
8535extern_conformance!(
8536 unsafe impl NSObjectProtocol for MPSCNNYOLOLossNode {}
8537);
8538
8539impl MPSCNNYOLOLossNode {
8540 extern_methods!(
8541 #[cfg(feature = "MPSCNNLoss")]
8542 #[unsafe(method(nodeWithSource:lossDescriptor:))]
8543 #[unsafe(method_family = none)]
8544 pub unsafe fn nodeWithSource_lossDescriptor(
8545 source: &MPSNNImageNode,
8546 descriptor: &MPSCNNYOLOLossDescriptor,
8547 ) -> Retained<Self>;
8548
8549 #[cfg(feature = "MPSCNNLoss")]
8550 #[unsafe(method(initWithSource:lossDescriptor:))]
8551 #[unsafe(method_family = init)]
8552 pub unsafe fn initWithSource_lossDescriptor(
8553 this: Allocated<Self>,
8554 source: &MPSNNImageNode,
8555 descriptor: &MPSCNNYOLOLossDescriptor,
8556 ) -> Retained<Self>;
8557
8558 #[unsafe(method(inputLabels))]
8560 #[unsafe(method_family = none)]
8561 pub unsafe fn inputLabels(&self) -> Retained<MPSNNLabelsNode>;
8562
8563 #[unsafe(method(gradientFilterWithSources:))]
8568 #[unsafe(method_family = none)]
8569 pub unsafe fn gradientFilterWithSources(
8570 &self,
8571 gradient_images: &NSArray<MPSNNImageNode>,
8572 ) -> Retained<MPSNNGradientFilterNode>;
8573 );
8574}
8575
8576impl MPSCNNYOLOLossNode {
8578 extern_methods!(
8579 #[unsafe(method(init))]
8580 #[unsafe(method_family = init)]
8581 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8582 );
8583}
8584
8585impl MPSCNNYOLOLossNode {
8587 extern_methods!(
8588 #[unsafe(method(new))]
8589 #[unsafe(method_family = new)]
8590 pub unsafe fn new() -> Retained<Self>;
8591 );
8592}
8593
8594extern_class!(
8595 #[unsafe(super(MPSNNFilterNode, NSObject))]
8599 #[derive(Debug, PartialEq, Eq, Hash)]
8600 pub struct MPSNNConcatenationNode;
8601);
8602
8603extern_conformance!(
8604 unsafe impl NSObjectProtocol for MPSNNConcatenationNode {}
8605);
8606
8607impl MPSNNConcatenationNode {
8608 extern_methods!(
8609 #[unsafe(method(nodeWithSources:))]
8643 #[unsafe(method_family = none)]
8644 pub unsafe fn nodeWithSources(source_nodes: &NSArray<MPSNNImageNode>) -> Retained<Self>;
8645
8646 #[unsafe(method(initWithSources:))]
8680 #[unsafe(method_family = init)]
8681 pub unsafe fn initWithSources(
8682 this: Allocated<Self>,
8683 source_nodes: &NSArray<MPSNNImageNode>,
8684 ) -> Retained<Self>;
8685
8686 #[unsafe(method(gradientFilterWithSources:))]
8688 #[unsafe(method_family = none)]
8689 pub unsafe fn gradientFilterWithSources(
8690 &self,
8691 gradient_images: &NSArray<MPSNNImageNode>,
8692 ) -> Retained<MPSNNGradientFilterNode>;
8693 );
8694}
8695
8696impl MPSNNConcatenationNode {
8698 extern_methods!(
8699 #[unsafe(method(init))]
8700 #[unsafe(method_family = init)]
8701 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8702 );
8703}
8704
8705impl MPSNNConcatenationNode {
8707 extern_methods!(
8708 #[unsafe(method(new))]
8709 #[unsafe(method_family = new)]
8710 pub unsafe fn new() -> Retained<Self>;
8711 );
8712}
8713
8714extern_class!(
8715 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
8724 #[derive(Debug, PartialEq, Eq, Hash)]
8725 pub struct MPSNNConcatenationGradientNode;
8726);
8727
8728extern_conformance!(
8729 unsafe impl NSObjectProtocol for MPSNNConcatenationGradientNode {}
8730);
8731
8732impl MPSNNConcatenationGradientNode {
8733 extern_methods!(
8734 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
8744 #[unsafe(method_family = none)]
8745 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
8746 gradient_source_node: &MPSNNImageNode,
8747 source_image: &MPSNNImageNode,
8748 gradient_state: &MPSNNGradientStateNode,
8749 ) -> Retained<Self>;
8750
8751 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
8761 #[unsafe(method_family = init)]
8762 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
8763 this: Allocated<Self>,
8764 gradient_source_node: &MPSNNImageNode,
8765 source_image: &MPSNNImageNode,
8766 gradient_state: &MPSNNGradientStateNode,
8767 ) -> Retained<Self>;
8768 );
8769}
8770
8771impl MPSNNConcatenationGradientNode {
8773 extern_methods!(
8774 #[unsafe(method(init))]
8775 #[unsafe(method_family = init)]
8776 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8777 );
8778}
8779
8780impl MPSNNConcatenationGradientNode {
8782 extern_methods!(
8783 #[unsafe(method(new))]
8784 #[unsafe(method_family = new)]
8785 pub unsafe fn new() -> Retained<Self>;
8786 );
8787}
8788
8789extern_class!(
8790 #[unsafe(super(MPSNNFilterNode, NSObject))]
8794 #[derive(Debug, PartialEq, Eq, Hash)]
8795 pub struct MPSNNReshapeNode;
8796);
8797
8798extern_conformance!(
8799 unsafe impl NSObjectProtocol for MPSNNReshapeNode {}
8800);
8801
8802impl MPSNNReshapeNode {
8803 extern_methods!(
8804 #[unsafe(method(nodeWithSource:resultWidth:resultHeight:resultFeatureChannels:))]
8816 #[unsafe(method_family = none)]
8817 pub unsafe fn nodeWithSource_resultWidth_resultHeight_resultFeatureChannels(
8818 source: &MPSNNImageNode,
8819 result_width: NSUInteger,
8820 result_height: NSUInteger,
8821 result_feature_channels: NSUInteger,
8822 ) -> Retained<Self>;
8823
8824 #[unsafe(method(initWithSource:resultWidth:resultHeight:resultFeatureChannels:))]
8836 #[unsafe(method_family = init)]
8837 pub unsafe fn initWithSource_resultWidth_resultHeight_resultFeatureChannels(
8838 this: Allocated<Self>,
8839 source: &MPSNNImageNode,
8840 result_width: NSUInteger,
8841 result_height: NSUInteger,
8842 result_feature_channels: NSUInteger,
8843 ) -> Retained<Self>;
8844 );
8845}
8846
8847impl MPSNNReshapeNode {
8849 extern_methods!(
8850 #[unsafe(method(init))]
8851 #[unsafe(method_family = init)]
8852 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8853 );
8854}
8855
8856impl MPSNNReshapeNode {
8858 extern_methods!(
8859 #[unsafe(method(new))]
8860 #[unsafe(method_family = new)]
8861 pub unsafe fn new() -> Retained<Self>;
8862 );
8863}
8864
8865extern_class!(
8866 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
8868 #[derive(Debug, PartialEq, Eq, Hash)]
8869 pub struct MPSNNReshapeGradientNode;
8870);
8871
8872extern_conformance!(
8873 unsafe impl NSObjectProtocol for MPSNNReshapeGradientNode {}
8874);
8875
8876impl MPSNNReshapeGradientNode {
8877 extern_methods!(
8878 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
8886 #[unsafe(method_family = none)]
8887 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
8888 source_gradient: &MPSNNImageNode,
8889 source_image: &MPSNNImageNode,
8890 gradient_state: &MPSNNGradientStateNode,
8891 ) -> Retained<Self>;
8892
8893 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
8901 #[unsafe(method_family = init)]
8902 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
8903 this: Allocated<Self>,
8904 source_gradient: &MPSNNImageNode,
8905 source_image: &MPSNNImageNode,
8906 gradient_state: &MPSNNGradientStateNode,
8907 ) -> Retained<Self>;
8908 );
8909}
8910
8911impl MPSNNReshapeGradientNode {
8913 extern_methods!(
8914 #[unsafe(method(init))]
8915 #[unsafe(method_family = init)]
8916 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8917 );
8918}
8919
8920impl MPSNNReshapeGradientNode {
8922 extern_methods!(
8923 #[unsafe(method(new))]
8924 #[unsafe(method_family = new)]
8925 pub unsafe fn new() -> Retained<Self>;
8926 );
8927}
8928
8929extern_class!(
8930 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
8932 #[derive(Debug, PartialEq, Eq, Hash)]
8933 pub struct MPSNNReductionSpatialMeanGradientNode;
8934);
8935
8936extern_conformance!(
8937 unsafe impl NSObjectProtocol for MPSNNReductionSpatialMeanGradientNode {}
8938);
8939
8940impl MPSNNReductionSpatialMeanGradientNode {
8941 extern_methods!(
8942 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
8950 #[unsafe(method_family = none)]
8951 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
8952 source_gradient: &MPSNNImageNode,
8953 source_image: &MPSNNImageNode,
8954 gradient_state: &MPSNNGradientStateNode,
8955 ) -> Retained<Self>;
8956
8957 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
8965 #[unsafe(method_family = init)]
8966 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
8967 this: Allocated<Self>,
8968 source_gradient: &MPSNNImageNode,
8969 source_image: &MPSNNImageNode,
8970 gradient_state: &MPSNNGradientStateNode,
8971 ) -> Retained<Self>;
8972 );
8973}
8974
8975impl MPSNNReductionSpatialMeanGradientNode {
8977 extern_methods!(
8978 #[unsafe(method(init))]
8979 #[unsafe(method_family = init)]
8980 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
8981 );
8982}
8983
8984impl MPSNNReductionSpatialMeanGradientNode {
8986 extern_methods!(
8987 #[unsafe(method(new))]
8988 #[unsafe(method_family = new)]
8989 pub unsafe fn new() -> Retained<Self>;
8990 );
8991}
8992
8993extern_class!(
8994 #[unsafe(super(MPSNNFilterNode, NSObject))]
9009 #[derive(Debug, PartialEq, Eq, Hash)]
9010 pub struct MPSNNPadNode;
9011);
9012
9013extern_conformance!(
9014 unsafe impl NSObjectProtocol for MPSNNPadNode {}
9015);
9016
9017impl MPSNNPadNode {
9018 extern_methods!(
9019 #[unsafe(method(fillValue))]
9022 #[unsafe(method_family = none)]
9023 pub unsafe fn fillValue(&self) -> c_float;
9024
9025 #[unsafe(method(setFillValue:))]
9027 #[unsafe(method_family = none)]
9028 pub unsafe fn setFillValue(&self, fill_value: c_float);
9029
9030 #[cfg(all(feature = "MPSCore", feature = "MPSCoreTypes"))]
9031 #[unsafe(method(nodeWithSource:paddingSizeBefore:paddingSizeAfter:edgeMode:))]
9046 #[unsafe(method_family = none)]
9047 pub unsafe fn nodeWithSource_paddingSizeBefore_paddingSizeAfter_edgeMode(
9048 source: &MPSNNImageNode,
9049 padding_size_before: MPSImageCoordinate,
9050 padding_size_after: MPSImageCoordinate,
9051 edge_mode: MPSImageEdgeMode,
9052 ) -> Retained<Self>;
9053
9054 #[cfg(all(feature = "MPSCore", feature = "MPSCoreTypes"))]
9055 #[unsafe(method(initWithSource:paddingSizeBefore:paddingSizeAfter:edgeMode:))]
9070 #[unsafe(method_family = init)]
9071 pub unsafe fn initWithSource_paddingSizeBefore_paddingSizeAfter_edgeMode(
9072 this: Allocated<Self>,
9073 source: &MPSNNImageNode,
9074 padding_size_before: MPSImageCoordinate,
9075 padding_size_after: MPSImageCoordinate,
9076 edge_mode: MPSImageEdgeMode,
9077 ) -> Retained<Self>;
9078 );
9079}
9080
9081impl MPSNNPadNode {
9083 extern_methods!(
9084 #[unsafe(method(init))]
9085 #[unsafe(method_family = init)]
9086 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9087 );
9088}
9089
9090impl MPSNNPadNode {
9092 extern_methods!(
9093 #[unsafe(method(new))]
9094 #[unsafe(method_family = new)]
9095 pub unsafe fn new() -> Retained<Self>;
9096 );
9097}
9098
9099extern_class!(
9100 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
9102 #[derive(Debug, PartialEq, Eq, Hash)]
9103 pub struct MPSNNPadGradientNode;
9104);
9105
9106extern_conformance!(
9107 unsafe impl NSObjectProtocol for MPSNNPadGradientNode {}
9108);
9109
9110impl MPSNNPadGradientNode {
9111 extern_methods!(
9112 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
9120 #[unsafe(method_family = none)]
9121 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
9122 source_gradient: &MPSNNImageNode,
9123 source_image: &MPSNNImageNode,
9124 gradient_state: &MPSNNGradientStateNode,
9125 ) -> Retained<Self>;
9126
9127 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
9135 #[unsafe(method_family = init)]
9136 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
9137 this: Allocated<Self>,
9138 source_gradient: &MPSNNImageNode,
9139 source_image: &MPSNNImageNode,
9140 gradient_state: &MPSNNGradientStateNode,
9141 ) -> Retained<Self>;
9142 );
9143}
9144
9145impl MPSNNPadGradientNode {
9147 extern_methods!(
9148 #[unsafe(method(init))]
9149 #[unsafe(method_family = init)]
9150 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9151 );
9152}
9153
9154impl MPSNNPadGradientNode {
9156 extern_methods!(
9157 #[unsafe(method(new))]
9158 #[unsafe(method_family = new)]
9159 pub unsafe fn new() -> Retained<Self>;
9160 );
9161}
9162
9163extern_class!(
9164 #[unsafe(super(MPSNNFilterNode, NSObject))]
9168 #[derive(Debug, PartialEq, Eq, Hash)]
9169 pub struct MPSCNNSoftMaxNode;
9170);
9171
9172extern_conformance!(
9173 unsafe impl NSObjectProtocol for MPSCNNSoftMaxNode {}
9174);
9175
9176impl MPSCNNSoftMaxNode {
9177 extern_methods!(
9178 #[unsafe(method(nodeWithSource:))]
9184 #[unsafe(method_family = none)]
9185 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
9186
9187 #[unsafe(method(initWithSource:))]
9193 #[unsafe(method_family = init)]
9194 pub unsafe fn initWithSource(
9195 this: Allocated<Self>,
9196 source_node: &MPSNNImageNode,
9197 ) -> Retained<Self>;
9198 );
9199}
9200
9201impl MPSCNNSoftMaxNode {
9203 extern_methods!(
9204 #[unsafe(method(init))]
9205 #[unsafe(method_family = init)]
9206 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9207 );
9208}
9209
9210impl MPSCNNSoftMaxNode {
9212 extern_methods!(
9213 #[unsafe(method(new))]
9214 #[unsafe(method_family = new)]
9215 pub unsafe fn new() -> Retained<Self>;
9216 );
9217}
9218
9219extern_class!(
9220 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
9224 #[derive(Debug, PartialEq, Eq, Hash)]
9225 pub struct MPSCNNSoftMaxGradientNode;
9226);
9227
9228extern_conformance!(
9229 unsafe impl NSObjectProtocol for MPSCNNSoftMaxGradientNode {}
9230);
9231
9232impl MPSCNNSoftMaxGradientNode {
9233 extern_methods!(
9234 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
9235 #[unsafe(method_family = none)]
9236 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
9237 source_gradient: &MPSNNImageNode,
9238 source_image: &MPSNNImageNode,
9239 gradient_state: &MPSNNGradientStateNode,
9240 ) -> Retained<Self>;
9241
9242 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
9243 #[unsafe(method_family = init)]
9244 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
9245 this: Allocated<Self>,
9246 source_gradient: &MPSNNImageNode,
9247 source_image: &MPSNNImageNode,
9248 gradient_state: &MPSNNGradientStateNode,
9249 ) -> Retained<Self>;
9250 );
9251}
9252
9253impl MPSCNNSoftMaxGradientNode {
9255 extern_methods!(
9256 #[unsafe(method(init))]
9257 #[unsafe(method_family = init)]
9258 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9259 );
9260}
9261
9262impl MPSCNNSoftMaxGradientNode {
9264 extern_methods!(
9265 #[unsafe(method(new))]
9266 #[unsafe(method_family = new)]
9267 pub unsafe fn new() -> Retained<Self>;
9268 );
9269}
9270
9271extern_class!(
9272 #[unsafe(super(MPSNNFilterNode, NSObject))]
9276 #[derive(Debug, PartialEq, Eq, Hash)]
9277 pub struct MPSCNNLogSoftMaxNode;
9278);
9279
9280extern_conformance!(
9281 unsafe impl NSObjectProtocol for MPSCNNLogSoftMaxNode {}
9282);
9283
9284impl MPSCNNLogSoftMaxNode {
9285 extern_methods!(
9286 #[unsafe(method(nodeWithSource:))]
9292 #[unsafe(method_family = none)]
9293 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
9294
9295 #[unsafe(method(initWithSource:))]
9301 #[unsafe(method_family = init)]
9302 pub unsafe fn initWithSource(
9303 this: Allocated<Self>,
9304 source_node: &MPSNNImageNode,
9305 ) -> Retained<Self>;
9306 );
9307}
9308
9309impl MPSCNNLogSoftMaxNode {
9311 extern_methods!(
9312 #[unsafe(method(init))]
9313 #[unsafe(method_family = init)]
9314 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9315 );
9316}
9317
9318impl MPSCNNLogSoftMaxNode {
9320 extern_methods!(
9321 #[unsafe(method(new))]
9322 #[unsafe(method_family = new)]
9323 pub unsafe fn new() -> Retained<Self>;
9324 );
9325}
9326
9327extern_class!(
9328 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
9332 #[derive(Debug, PartialEq, Eq, Hash)]
9333 pub struct MPSCNNLogSoftMaxGradientNode;
9334);
9335
9336extern_conformance!(
9337 unsafe impl NSObjectProtocol for MPSCNNLogSoftMaxGradientNode {}
9338);
9339
9340impl MPSCNNLogSoftMaxGradientNode {
9341 extern_methods!(
9342 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
9343 #[unsafe(method_family = none)]
9344 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
9345 source_gradient: &MPSNNImageNode,
9346 source_image: &MPSNNImageNode,
9347 gradient_state: &MPSNNGradientStateNode,
9348 ) -> Retained<Self>;
9349
9350 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
9351 #[unsafe(method_family = init)]
9352 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
9353 this: Allocated<Self>,
9354 source_gradient: &MPSNNImageNode,
9355 source_image: &MPSNNImageNode,
9356 gradient_state: &MPSNNGradientStateNode,
9357 ) -> Retained<Self>;
9358 );
9359}
9360
9361impl MPSCNNLogSoftMaxGradientNode {
9363 extern_methods!(
9364 #[unsafe(method(init))]
9365 #[unsafe(method_family = init)]
9366 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9367 );
9368}
9369
9370impl MPSCNNLogSoftMaxGradientNode {
9372 extern_methods!(
9373 #[unsafe(method(new))]
9374 #[unsafe(method_family = new)]
9375 pub unsafe fn new() -> Retained<Self>;
9376 );
9377}
9378
9379extern_class!(
9380 #[unsafe(super(MPSNNFilterNode, NSObject))]
9384 #[derive(Debug, PartialEq, Eq, Hash)]
9385 pub struct MPSCNNUpsamplingNearestNode;
9386);
9387
9388extern_conformance!(
9389 unsafe impl NSObjectProtocol for MPSCNNUpsamplingNearestNode {}
9390);
9391
9392impl MPSCNNUpsamplingNearestNode {
9393 extern_methods!(
9394 #[unsafe(method(nodeWithSource:integerScaleFactorX:integerScaleFactorY:))]
9404 #[unsafe(method_family = none)]
9405 pub unsafe fn nodeWithSource_integerScaleFactorX_integerScaleFactorY(
9406 source_node: &MPSNNImageNode,
9407 integer_scale_factor_x: NSUInteger,
9408 integer_scale_factor_y: NSUInteger,
9409 ) -> Retained<Self>;
9410
9411 #[unsafe(method(initWithSource:integerScaleFactorX:integerScaleFactorY:))]
9421 #[unsafe(method_family = init)]
9422 pub unsafe fn initWithSource_integerScaleFactorX_integerScaleFactorY(
9423 this: Allocated<Self>,
9424 source_node: &MPSNNImageNode,
9425 integer_scale_factor_x: NSUInteger,
9426 integer_scale_factor_y: NSUInteger,
9427 ) -> Retained<Self>;
9428
9429 #[unsafe(method(scaleFactorX))]
9430 #[unsafe(method_family = none)]
9431 pub unsafe fn scaleFactorX(&self) -> c_double;
9432
9433 #[unsafe(method(scaleFactorY))]
9434 #[unsafe(method_family = none)]
9435 pub unsafe fn scaleFactorY(&self) -> c_double;
9436 );
9437}
9438
9439impl MPSCNNUpsamplingNearestNode {
9441 extern_methods!(
9442 #[unsafe(method(init))]
9443 #[unsafe(method_family = init)]
9444 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9445 );
9446}
9447
9448impl MPSCNNUpsamplingNearestNode {
9450 extern_methods!(
9451 #[unsafe(method(new))]
9452 #[unsafe(method_family = new)]
9453 pub unsafe fn new() -> Retained<Self>;
9454 );
9455}
9456
9457extern_class!(
9458 #[unsafe(super(MPSNNFilterNode, NSObject))]
9462 #[derive(Debug, PartialEq, Eq, Hash)]
9463 pub struct MPSCNNUpsamplingBilinearNode;
9464);
9465
9466extern_conformance!(
9467 unsafe impl NSObjectProtocol for MPSCNNUpsamplingBilinearNode {}
9468);
9469
9470impl MPSCNNUpsamplingBilinearNode {
9471 extern_methods!(
9472 #[unsafe(method(nodeWithSource:integerScaleFactorX:integerScaleFactorY:))]
9482 #[unsafe(method_family = none)]
9483 pub unsafe fn nodeWithSource_integerScaleFactorX_integerScaleFactorY(
9484 source_node: &MPSNNImageNode,
9485 integer_scale_factor_x: NSUInteger,
9486 integer_scale_factor_y: NSUInteger,
9487 ) -> Retained<Self>;
9488
9489 #[unsafe(method(nodeWithSource:integerScaleFactorX:integerScaleFactorY:alignCorners:))]
9501 #[unsafe(method_family = none)]
9502 pub unsafe fn nodeWithSource_integerScaleFactorX_integerScaleFactorY_alignCorners(
9503 source_node: &MPSNNImageNode,
9504 integer_scale_factor_x: NSUInteger,
9505 integer_scale_factor_y: NSUInteger,
9506 align_corners: bool,
9507 ) -> Retained<Self>;
9508
9509 #[unsafe(method(initWithSource:integerScaleFactorX:integerScaleFactorY:))]
9519 #[unsafe(method_family = init)]
9520 pub unsafe fn initWithSource_integerScaleFactorX_integerScaleFactorY(
9521 this: Allocated<Self>,
9522 source_node: &MPSNNImageNode,
9523 integer_scale_factor_x: NSUInteger,
9524 integer_scale_factor_y: NSUInteger,
9525 ) -> Retained<Self>;
9526
9527 #[unsafe(method(initWithSource:integerScaleFactorX:integerScaleFactorY:alignCorners:))]
9539 #[unsafe(method_family = init)]
9540 pub unsafe fn initWithSource_integerScaleFactorX_integerScaleFactorY_alignCorners(
9541 this: Allocated<Self>,
9542 source_node: &MPSNNImageNode,
9543 integer_scale_factor_x: NSUInteger,
9544 integer_scale_factor_y: NSUInteger,
9545 align_corners: bool,
9546 ) -> Retained<Self>;
9547
9548 #[unsafe(method(scaleFactorX))]
9549 #[unsafe(method_family = none)]
9550 pub unsafe fn scaleFactorX(&self) -> c_double;
9551
9552 #[unsafe(method(scaleFactorY))]
9553 #[unsafe(method_family = none)]
9554 pub unsafe fn scaleFactorY(&self) -> c_double;
9555
9556 #[unsafe(method(alignCorners))]
9557 #[unsafe(method_family = none)]
9558 pub unsafe fn alignCorners(&self) -> bool;
9559 );
9560}
9561
9562impl MPSCNNUpsamplingBilinearNode {
9564 extern_methods!(
9565 #[unsafe(method(init))]
9566 #[unsafe(method_family = init)]
9567 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9568 );
9569}
9570
9571impl MPSCNNUpsamplingBilinearNode {
9573 extern_methods!(
9574 #[unsafe(method(new))]
9575 #[unsafe(method_family = new)]
9576 pub unsafe fn new() -> Retained<Self>;
9577 );
9578}
9579
9580extern_class!(
9581 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
9585 #[derive(Debug, PartialEq, Eq, Hash)]
9586 pub struct MPSCNNUpsamplingNearestGradientNode;
9587);
9588
9589extern_conformance!(
9590 unsafe impl NSObjectProtocol for MPSCNNUpsamplingNearestGradientNode {}
9591);
9592
9593impl MPSCNNUpsamplingNearestGradientNode {
9594 extern_methods!(
9595 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:scaleFactorX:scaleFactorY:))]
9611 #[unsafe(method_family = none)]
9612 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_scaleFactorX_scaleFactorY(
9613 source_gradient: &MPSNNImageNode,
9614 source_image: &MPSNNImageNode,
9615 gradient_state: &MPSNNGradientStateNode,
9616 scale_factor_x: c_double,
9617 scale_factor_y: c_double,
9618 ) -> Retained<Self>;
9619
9620 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:scaleFactorX:scaleFactorY:))]
9636 #[unsafe(method_family = init)]
9637 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_scaleFactorX_scaleFactorY(
9638 this: Allocated<Self>,
9639 source_gradient: &MPSNNImageNode,
9640 source_image: &MPSNNImageNode,
9641 gradient_state: &MPSNNGradientStateNode,
9642 scale_factor_x: c_double,
9643 scale_factor_y: c_double,
9644 ) -> Retained<Self>;
9645
9646 #[unsafe(method(scaleFactorX))]
9647 #[unsafe(method_family = none)]
9648 pub unsafe fn scaleFactorX(&self) -> c_double;
9649
9650 #[unsafe(method(scaleFactorY))]
9651 #[unsafe(method_family = none)]
9652 pub unsafe fn scaleFactorY(&self) -> c_double;
9653 );
9654}
9655
9656impl MPSCNNUpsamplingNearestGradientNode {
9658 extern_methods!(
9659 #[unsafe(method(init))]
9660 #[unsafe(method_family = init)]
9661 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9662 );
9663}
9664
9665impl MPSCNNUpsamplingNearestGradientNode {
9667 extern_methods!(
9668 #[unsafe(method(new))]
9669 #[unsafe(method_family = new)]
9670 pub unsafe fn new() -> Retained<Self>;
9671 );
9672}
9673
9674extern_class!(
9675 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
9679 #[derive(Debug, PartialEq, Eq, Hash)]
9680 pub struct MPSCNNUpsamplingBilinearGradientNode;
9681);
9682
9683extern_conformance!(
9684 unsafe impl NSObjectProtocol for MPSCNNUpsamplingBilinearGradientNode {}
9685);
9686
9687impl MPSCNNUpsamplingBilinearGradientNode {
9688 extern_methods!(
9689 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:scaleFactorX:scaleFactorY:))]
9705 #[unsafe(method_family = none)]
9706 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_scaleFactorX_scaleFactorY(
9707 source_gradient: &MPSNNImageNode,
9708 source_image: &MPSNNImageNode,
9709 gradient_state: &MPSNNGradientStateNode,
9710 scale_factor_x: c_double,
9711 scale_factor_y: c_double,
9712 ) -> Retained<Self>;
9713
9714 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:scaleFactorX:scaleFactorY:))]
9730 #[unsafe(method_family = init)]
9731 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_scaleFactorX_scaleFactorY(
9732 this: Allocated<Self>,
9733 source_gradient: &MPSNNImageNode,
9734 source_image: &MPSNNImageNode,
9735 gradient_state: &MPSNNGradientStateNode,
9736 scale_factor_x: c_double,
9737 scale_factor_y: c_double,
9738 ) -> Retained<Self>;
9739
9740 #[unsafe(method(scaleFactorX))]
9741 #[unsafe(method_family = none)]
9742 pub unsafe fn scaleFactorX(&self) -> c_double;
9743
9744 #[unsafe(method(scaleFactorY))]
9745 #[unsafe(method_family = none)]
9746 pub unsafe fn scaleFactorY(&self) -> c_double;
9747 );
9748}
9749
9750impl MPSCNNUpsamplingBilinearGradientNode {
9752 extern_methods!(
9753 #[unsafe(method(init))]
9754 #[unsafe(method_family = init)]
9755 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9756 );
9757}
9758
9759impl MPSCNNUpsamplingBilinearGradientNode {
9761 extern_methods!(
9762 #[unsafe(method(new))]
9763 #[unsafe(method_family = new)]
9764 pub unsafe fn new() -> Retained<Self>;
9765 );
9766}
9767
9768extern_protocol!(
9769 pub unsafe trait MPSNNGramMatrixCallback:
9775 NSObjectProtocol + NSSecureCoding + NSCopying
9776 {
9777 #[cfg(all(feature = "MPSCore", feature = "MPSImage"))]
9778 #[unsafe(method(alphaForSourceImage:destinationImage:))]
9786 #[unsafe(method_family = none)]
9787 unsafe fn alphaForSourceImage_destinationImage(
9788 &self,
9789 source_image: &MPSImage,
9790 destination_image: &MPSImage,
9791 ) -> c_float;
9792 }
9793);
9794
9795extern_class!(
9796 #[unsafe(super(MPSNNFilterNode, NSObject))]
9801 #[derive(Debug, PartialEq, Eq, Hash)]
9802 pub struct MPSNNGramMatrixCalculationNode;
9803);
9804
9805extern_conformance!(
9806 unsafe impl NSObjectProtocol for MPSNNGramMatrixCalculationNode {}
9807);
9808
9809impl MPSNNGramMatrixCalculationNode {
9810 extern_methods!(
9811 #[unsafe(method(alpha))]
9813 #[unsafe(method_family = none)]
9814 pub unsafe fn alpha(&self) -> c_float;
9815
9816 #[unsafe(method(propertyCallBack))]
9819 #[unsafe(method_family = none)]
9820 pub unsafe fn propertyCallBack(
9821 &self,
9822 ) -> Option<Retained<ProtocolObject<dyn MPSNNGramMatrixCallback>>>;
9823
9824 #[unsafe(method(setPropertyCallBack:))]
9826 #[unsafe(method_family = none)]
9827 pub unsafe fn setPropertyCallBack(
9828 &self,
9829 property_call_back: Option<&ProtocolObject<dyn MPSNNGramMatrixCallback>>,
9830 );
9831
9832 #[unsafe(method(nodeWithSource:))]
9838 #[unsafe(method_family = none)]
9839 pub unsafe fn nodeWithSource(source_node: &MPSNNImageNode) -> Retained<Self>;
9840
9841 #[unsafe(method(initWithSource:))]
9847 #[unsafe(method_family = init)]
9848 pub unsafe fn initWithSource(
9849 this: Allocated<Self>,
9850 source_node: &MPSNNImageNode,
9851 ) -> Retained<Self>;
9852
9853 #[unsafe(method(nodeWithSource:alpha:))]
9861 #[unsafe(method_family = none)]
9862 pub unsafe fn nodeWithSource_alpha(
9863 source_node: &MPSNNImageNode,
9864 alpha: c_float,
9865 ) -> Retained<Self>;
9866
9867 #[unsafe(method(initWithSource:alpha:))]
9875 #[unsafe(method_family = init)]
9876 pub unsafe fn initWithSource_alpha(
9877 this: Allocated<Self>,
9878 source_node: &MPSNNImageNode,
9879 alpha: c_float,
9880 ) -> Retained<Self>;
9881 );
9882}
9883
9884impl MPSNNGramMatrixCalculationNode {
9886 extern_methods!(
9887 #[unsafe(method(init))]
9888 #[unsafe(method_family = init)]
9889 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9890 );
9891}
9892
9893impl MPSNNGramMatrixCalculationNode {
9895 extern_methods!(
9896 #[unsafe(method(new))]
9897 #[unsafe(method_family = new)]
9898 pub unsafe fn new() -> Retained<Self>;
9899 );
9900}
9901
9902extern_class!(
9903 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
9908 #[derive(Debug, PartialEq, Eq, Hash)]
9909 pub struct MPSNNGramMatrixCalculationGradientNode;
9910);
9911
9912extern_conformance!(
9913 unsafe impl NSObjectProtocol for MPSNNGramMatrixCalculationGradientNode {}
9914);
9915
9916impl MPSNNGramMatrixCalculationGradientNode {
9917 extern_methods!(
9918 #[unsafe(method(alpha))]
9920 #[unsafe(method_family = none)]
9921 pub unsafe fn alpha(&self) -> c_float;
9922
9923 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:))]
9924 #[unsafe(method_family = none)]
9925 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState(
9926 source_gradient: &MPSNNImageNode,
9927 source_image: &MPSNNImageNode,
9928 gradient_state: &MPSNNGradientStateNode,
9929 ) -> Retained<Self>;
9930
9931 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:))]
9932 #[unsafe(method_family = init)]
9933 pub unsafe fn initWithSourceGradient_sourceImage_gradientState(
9934 this: Allocated<Self>,
9935 source_gradient: &MPSNNImageNode,
9936 source_image: &MPSNNImageNode,
9937 gradient_state: &MPSNNGradientStateNode,
9938 ) -> Retained<Self>;
9939
9940 #[unsafe(method(nodeWithSourceGradient:sourceImage:gradientState:alpha:))]
9941 #[unsafe(method_family = none)]
9942 pub unsafe fn nodeWithSourceGradient_sourceImage_gradientState_alpha(
9943 source_gradient: &MPSNNImageNode,
9944 source_image: &MPSNNImageNode,
9945 gradient_state: &MPSNNGradientStateNode,
9946 alpha: c_float,
9947 ) -> Retained<Self>;
9948
9949 #[unsafe(method(initWithSourceGradient:sourceImage:gradientState:alpha:))]
9950 #[unsafe(method_family = init)]
9951 pub unsafe fn initWithSourceGradient_sourceImage_gradientState_alpha(
9952 this: Allocated<Self>,
9953 source_gradient: &MPSNNImageNode,
9954 source_image: &MPSNNImageNode,
9955 gradient_state: &MPSNNGradientStateNode,
9956 alpha: c_float,
9957 ) -> Retained<Self>;
9958 );
9959}
9960
9961impl MPSNNGramMatrixCalculationGradientNode {
9963 extern_methods!(
9964 #[unsafe(method(init))]
9965 #[unsafe(method_family = init)]
9966 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
9967 );
9968}
9969
9970impl MPSNNGramMatrixCalculationGradientNode {
9972 extern_methods!(
9973 #[unsafe(method(new))]
9974 #[unsafe(method_family = new)]
9975 pub unsafe fn new() -> Retained<Self>;
9976 );
9977}
9978
9979extern_protocol!(
9980 pub unsafe trait MPSNNLossCallback:
9986 NSObjectProtocol + NSSecureCoding + NSCopying
9987 {
9988 #[cfg(all(feature = "MPSCore", feature = "MPSImage"))]
9989 #[unsafe(method(scalarWeightForSourceImage:destinationImage:))]
9997 #[unsafe(method_family = none)]
9998 unsafe fn scalarWeightForSourceImage_destinationImage(
9999 &self,
10000 source_image: &MPSImage,
10001 destination_image: &MPSImage,
10002 ) -> c_float;
10003 }
10004);
10005
10006extern_class!(
10007 #[unsafe(super(MPSNNFilterNode, NSObject))]
10012 #[derive(Debug, PartialEq, Eq, Hash)]
10013 pub struct MPSNNForwardLossNode;
10014);
10015
10016extern_conformance!(
10017 unsafe impl NSObjectProtocol for MPSNNForwardLossNode {}
10018);
10019
10020impl MPSNNForwardLossNode {
10021 extern_methods!(
10022 #[cfg(feature = "MPSCNNTypes")]
10023 #[unsafe(method(lossType))]
10024 #[unsafe(method_family = none)]
10025 pub unsafe fn lossType(&self) -> MPSCNNLossType;
10026
10027 #[cfg(feature = "MPSCNNTypes")]
10028 #[unsafe(method(reductionType))]
10029 #[unsafe(method_family = none)]
10030 pub unsafe fn reductionType(&self) -> MPSCNNReductionType;
10031
10032 #[unsafe(method(numberOfClasses))]
10033 #[unsafe(method_family = none)]
10034 pub unsafe fn numberOfClasses(&self) -> NSUInteger;
10035
10036 #[unsafe(method(reduceAcrossBatch))]
10037 #[unsafe(method_family = none)]
10038 pub unsafe fn reduceAcrossBatch(&self) -> bool;
10039
10040 #[unsafe(method(weight))]
10041 #[unsafe(method_family = none)]
10042 pub unsafe fn weight(&self) -> c_float;
10043
10044 #[unsafe(method(labelSmoothing))]
10045 #[unsafe(method_family = none)]
10046 pub unsafe fn labelSmoothing(&self) -> c_float;
10047
10048 #[unsafe(method(epsilon))]
10049 #[unsafe(method_family = none)]
10050 pub unsafe fn epsilon(&self) -> c_float;
10051
10052 #[unsafe(method(delta))]
10053 #[unsafe(method_family = none)]
10054 pub unsafe fn delta(&self) -> c_float;
10055
10056 #[unsafe(method(propertyCallBack))]
10059 #[unsafe(method_family = none)]
10060 pub unsafe fn propertyCallBack(
10061 &self,
10062 ) -> Option<Retained<ProtocolObject<dyn MPSNNLossCallback>>>;
10063
10064 #[unsafe(method(setPropertyCallBack:))]
10066 #[unsafe(method_family = none)]
10067 pub unsafe fn setPropertyCallBack(
10068 &self,
10069 property_call_back: Option<&ProtocolObject<dyn MPSNNLossCallback>>,
10070 );
10071
10072 #[cfg(feature = "MPSCNNLoss")]
10073 #[unsafe(method(nodeWithSource:labels:weights:lossDescriptor:))]
10074 #[unsafe(method_family = none)]
10075 pub unsafe fn nodeWithSource_labels_weights_lossDescriptor(
10076 source: &MPSNNImageNode,
10077 labels: &MPSNNImageNode,
10078 weights: &MPSNNImageNode,
10079 descriptor: &MPSCNNLossDescriptor,
10080 ) -> Retained<Self>;
10081
10082 #[cfg(feature = "MPSCNNLoss")]
10083 #[unsafe(method(nodeWithSource:labels:lossDescriptor:))]
10084 #[unsafe(method_family = none)]
10085 pub unsafe fn nodeWithSource_labels_lossDescriptor(
10086 source: &MPSNNImageNode,
10087 labels: &MPSNNImageNode,
10088 descriptor: &MPSCNNLossDescriptor,
10089 ) -> Retained<Self>;
10090
10091 #[cfg(feature = "MPSCNNLoss")]
10092 #[unsafe(method(nodeWithSources:lossDescriptor:))]
10099 #[unsafe(method_family = none)]
10100 pub unsafe fn nodeWithSources_lossDescriptor(
10101 source_nodes: &NSArray<MPSNNImageNode>,
10102 descriptor: &MPSCNNLossDescriptor,
10103 ) -> Retained<Self>;
10104
10105 #[cfg(feature = "MPSCNNLoss")]
10106 #[unsafe(method(initWithSource:labels:weights:lossDescriptor:))]
10107 #[unsafe(method_family = init)]
10108 pub unsafe fn initWithSource_labels_weights_lossDescriptor(
10109 this: Allocated<Self>,
10110 source: &MPSNNImageNode,
10111 labels: &MPSNNImageNode,
10112 weights: Option<&MPSNNImageNode>,
10113 descriptor: &MPSCNNLossDescriptor,
10114 ) -> Retained<Self>;
10115
10116 #[cfg(feature = "MPSCNNLoss")]
10117 #[unsafe(method(initWithSource:labels:lossDescriptor:))]
10118 #[unsafe(method_family = init)]
10119 pub unsafe fn initWithSource_labels_lossDescriptor(
10120 this: Allocated<Self>,
10121 source: &MPSNNImageNode,
10122 labels: &MPSNNImageNode,
10123 descriptor: &MPSCNNLossDescriptor,
10124 ) -> Retained<Self>;
10125
10126 #[cfg(feature = "MPSCNNLoss")]
10127 #[unsafe(method(initWithSources:lossDescriptor:))]
10134 #[unsafe(method_family = init)]
10135 pub unsafe fn initWithSources_lossDescriptor(
10136 this: Allocated<Self>,
10137 source_nodes: &NSArray<MPSNNImageNode>,
10138 descriptor: &MPSCNNLossDescriptor,
10139 ) -> Retained<Self>;
10140
10141 #[unsafe(method(gradientFilterWithSources:))]
10143 #[unsafe(method_family = none)]
10144 pub unsafe fn gradientFilterWithSources(
10145 &self,
10146 source_gradient: &NSArray<MPSNNImageNode>,
10147 ) -> Retained<MPSNNLossGradientNode>;
10148
10149 #[unsafe(method(gradientFiltersWithSources:))]
10150 #[unsafe(method_family = none)]
10151 pub unsafe fn gradientFiltersWithSources(
10152 &self,
10153 source_gradient: &NSArray<MPSNNImageNode>,
10154 ) -> Retained<NSArray<MPSNNLossGradientNode>>;
10155
10156 #[unsafe(method(gradientFilterWithSource:))]
10157 #[unsafe(method_family = none)]
10158 pub unsafe fn gradientFilterWithSource(
10159 &self,
10160 source_gradient: &MPSNNImageNode,
10161 ) -> Retained<MPSNNLossGradientNode>;
10162
10163 #[unsafe(method(gradientFiltersWithSource:))]
10164 #[unsafe(method_family = none)]
10165 pub unsafe fn gradientFiltersWithSource(
10166 &self,
10167 source_gradient: &MPSNNImageNode,
10168 ) -> Retained<NSArray<MPSNNLossGradientNode>>;
10169 );
10170}
10171
10172impl MPSNNForwardLossNode {
10174 extern_methods!(
10175 #[unsafe(method(init))]
10176 #[unsafe(method_family = init)]
10177 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
10178 );
10179}
10180
10181impl MPSNNForwardLossNode {
10183 extern_methods!(
10184 #[unsafe(method(new))]
10185 #[unsafe(method_family = new)]
10186 pub unsafe fn new() -> Retained<Self>;
10187 );
10188}
10189
10190extern_class!(
10191 #[unsafe(super(MPSNNGradientFilterNode, MPSNNFilterNode, NSObject))]
10196 #[derive(Debug, PartialEq, Eq, Hash)]
10197 pub struct MPSNNLossGradientNode;
10198);
10199
10200extern_conformance!(
10201 unsafe impl NSObjectProtocol for MPSNNLossGradientNode {}
10202);
10203
10204impl MPSNNLossGradientNode {
10205 extern_methods!(
10206 #[cfg(feature = "MPSCNNTypes")]
10207 #[unsafe(method(lossType))]
10208 #[unsafe(method_family = none)]
10209 pub unsafe fn lossType(&self) -> MPSCNNLossType;
10210
10211 #[cfg(feature = "MPSCNNTypes")]
10212 #[unsafe(method(reductionType))]
10213 #[unsafe(method_family = none)]
10214 pub unsafe fn reductionType(&self) -> MPSCNNReductionType;
10215
10216 #[unsafe(method(numberOfClasses))]
10217 #[unsafe(method_family = none)]
10218 pub unsafe fn numberOfClasses(&self) -> NSUInteger;
10219
10220 #[unsafe(method(reduceAcrossBatch))]
10221 #[unsafe(method_family = none)]
10222 pub unsafe fn reduceAcrossBatch(&self) -> bool;
10223
10224 #[unsafe(method(weight))]
10225 #[unsafe(method_family = none)]
10226 pub unsafe fn weight(&self) -> c_float;
10227
10228 #[unsafe(method(labelSmoothing))]
10229 #[unsafe(method_family = none)]
10230 pub unsafe fn labelSmoothing(&self) -> c_float;
10231
10232 #[unsafe(method(epsilon))]
10233 #[unsafe(method_family = none)]
10234 pub unsafe fn epsilon(&self) -> c_float;
10235
10236 #[unsafe(method(delta))]
10237 #[unsafe(method_family = none)]
10238 pub unsafe fn delta(&self) -> c_float;
10239
10240 #[unsafe(method(isLabelsGradientFilter))]
10241 #[unsafe(method_family = none)]
10242 pub unsafe fn isLabelsGradientFilter(&self) -> bool;
10243
10244 #[unsafe(method(propertyCallBack))]
10247 #[unsafe(method_family = none)]
10248 pub unsafe fn propertyCallBack(
10249 &self,
10250 ) -> Option<Retained<ProtocolObject<dyn MPSNNLossCallback>>>;
10251
10252 #[unsafe(method(setPropertyCallBack:))]
10254 #[unsafe(method_family = none)]
10255 pub unsafe fn setPropertyCallBack(
10256 &self,
10257 property_call_back: Option<&ProtocolObject<dyn MPSNNLossCallback>>,
10258 );
10259
10260 #[cfg(feature = "MPSCNNLoss")]
10261 #[unsafe(method(nodeWithSourceGradient:sourceImage:labels:weights:gradientState:lossDescriptor:isLabelsGradientFilter:))]
10262 #[unsafe(method_family = none)]
10263 pub unsafe fn nodeWithSourceGradient_sourceImage_labels_weights_gradientState_lossDescriptor_isLabelsGradientFilter(
10264 source_gradient: &MPSNNImageNode,
10265 source_image: &MPSNNImageNode,
10266 labels: &MPSNNImageNode,
10267 weights: &MPSNNImageNode,
10268 gradient_state: Option<&MPSNNGradientStateNode>,
10269 descriptor: &MPSCNNLossDescriptor,
10270 is_labels_gradient_filter: bool,
10271 ) -> Retained<Self>;
10272
10273 #[cfg(feature = "MPSCNNLoss")]
10274 #[unsafe(method(nodeWithSourceGradient:sourceImage:labels:gradientState:lossDescriptor:isLabelsGradientFilter:))]
10275 #[unsafe(method_family = none)]
10276 pub unsafe fn nodeWithSourceGradient_sourceImage_labels_gradientState_lossDescriptor_isLabelsGradientFilter(
10277 source_gradient: &MPSNNImageNode,
10278 source_image: &MPSNNImageNode,
10279 labels: &MPSNNImageNode,
10280 gradient_state: Option<&MPSNNGradientStateNode>,
10281 descriptor: &MPSCNNLossDescriptor,
10282 is_labels_gradient_filter: bool,
10283 ) -> Retained<Self>;
10284
10285 #[cfg(feature = "MPSCNNLoss")]
10286 #[unsafe(method(nodeWithSources:gradientState:lossDescriptor:isLabelsGradientFilter:))]
10293 #[unsafe(method_family = none)]
10294 pub unsafe fn nodeWithSources_gradientState_lossDescriptor_isLabelsGradientFilter(
10295 source_nodes: &NSArray<MPSNNImageNode>,
10296 gradient_state: Option<&MPSNNGradientStateNode>,
10297 descriptor: &MPSCNNLossDescriptor,
10298 is_labels_gradient_filter: bool,
10299 ) -> Retained<Self>;
10300
10301 #[cfg(feature = "MPSCNNLoss")]
10302 #[unsafe(method(initWithSourceGradient:sourceImage:labels:weights:gradientState:lossDescriptor:isLabelsGradientFilter:))]
10303 #[unsafe(method_family = init)]
10304 pub unsafe fn initWithSourceGradient_sourceImage_labels_weights_gradientState_lossDescriptor_isLabelsGradientFilter(
10305 this: Allocated<Self>,
10306 source_gradient: &MPSNNImageNode,
10307 source_image: &MPSNNImageNode,
10308 labels: &MPSNNImageNode,
10309 weights: Option<&MPSNNImageNode>,
10310 gradient_state: Option<&MPSNNGradientStateNode>,
10311 descriptor: &MPSCNNLossDescriptor,
10312 is_labels_gradient_filter: bool,
10313 ) -> Retained<Self>;
10314
10315 #[cfg(feature = "MPSCNNLoss")]
10316 #[unsafe(method(initWithSourceGradient:sourceImage:labels:gradientState:lossDescriptor:isLabelsGradientFilter:))]
10317 #[unsafe(method_family = init)]
10318 pub unsafe fn initWithSourceGradient_sourceImage_labels_gradientState_lossDescriptor_isLabelsGradientFilter(
10319 this: Allocated<Self>,
10320 source_gradient: &MPSNNImageNode,
10321 source_image: &MPSNNImageNode,
10322 labels: &MPSNNImageNode,
10323 gradient_state: Option<&MPSNNGradientStateNode>,
10324 descriptor: &MPSCNNLossDescriptor,
10325 is_labels_gradient_filter: bool,
10326 ) -> Retained<Self>;
10327
10328 #[cfg(feature = "MPSCNNLoss")]
10329 #[unsafe(method(initWithSources:gradientState:lossDescriptor:isLabelsGradientFilter:))]
10336 #[unsafe(method_family = init)]
10337 pub unsafe fn initWithSources_gradientState_lossDescriptor_isLabelsGradientFilter(
10338 this: Allocated<Self>,
10339 source_nodes: &NSArray<MPSNNImageNode>,
10340 gradient_state: Option<&MPSNNGradientStateNode>,
10341 descriptor: &MPSCNNLossDescriptor,
10342 is_labels_gradient_filter: bool,
10343 ) -> Retained<Self>;
10344
10345 #[unsafe(method(gradientFilterWithSources:))]
10347 #[unsafe(method_family = none)]
10348 pub unsafe fn gradientFilterWithSources(
10349 &self,
10350 gradient_images: &NSArray<MPSNNImageNode>,
10351 ) -> Retained<MPSNNGradientFilterNode>;
10352 );
10353}
10354
10355impl MPSNNLossGradientNode {
10357 extern_methods!(
10358 #[unsafe(method(init))]
10359 #[unsafe(method_family = init)]
10360 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
10361 );
10362}
10363
10364impl MPSNNLossGradientNode {
10366 extern_methods!(
10367 #[unsafe(method(new))]
10368 #[unsafe(method_family = new)]
10369 pub unsafe fn new() -> Retained<Self>;
10370 );
10371}
10372
10373extern_class!(
10374 #[unsafe(super(MPSNNFilterNode, NSObject))]
10385 #[derive(Debug, PartialEq, Eq, Hash)]
10386 pub struct MPSNNInitialGradientNode;
10387);
10388
10389extern_conformance!(
10390 unsafe impl NSObjectProtocol for MPSNNInitialGradientNode {}
10391);
10392
10393impl MPSNNInitialGradientNode {
10394 extern_methods!(
10395 #[unsafe(method(nodeWithSource:))]
10401 #[unsafe(method_family = none)]
10402 pub unsafe fn nodeWithSource(source: &MPSNNImageNode) -> Retained<Self>;
10403
10404 #[unsafe(method(initWithSource:))]
10410 #[unsafe(method_family = init)]
10411 pub unsafe fn initWithSource(
10412 this: Allocated<Self>,
10413 source: &MPSNNImageNode,
10414 ) -> Retained<Self>;
10415
10416 #[unsafe(method(gradientFilterWithSources:))]
10418 #[unsafe(method_family = none)]
10419 pub unsafe fn gradientFilterWithSources(
10420 &self,
10421 gradient_images: &NSArray<MPSNNImageNode>,
10422 ) -> Retained<MPSNNGradientFilterNode>;
10423 );
10424}
10425
10426impl MPSNNInitialGradientNode {
10428 extern_methods!(
10429 #[unsafe(method(init))]
10430 #[unsafe(method_family = init)]
10431 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
10432 );
10433}
10434
10435impl MPSNNInitialGradientNode {
10437 extern_methods!(
10438 #[unsafe(method(new))]
10439 #[unsafe(method_family = new)]
10440 pub unsafe fn new() -> Retained<Self>;
10441 );
10442}