#pragma once #include #if !defined(__MAC_14_0) && (!defined(MAC_OS_X_VERSION_14_0) || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_14_0)) typedef NS_ENUM(NSUInteger, MPSGraphFFTScalingMode) { MPSGraphFFTScalingModeNone = 0L, MPSGraphFFTScalingModeSize = 1L, MPSGraphFFTScalingModeUnitary = 2L, }; @interface FakeMPSGraphFFTDescriptor : NSObject @property(readwrite, nonatomic) BOOL inverse; @property(readwrite, nonatomic) MPSGraphFFTScalingMode scalingMode; @property(readwrite, nonatomic) BOOL roundToOddHermitean; + (nullable instancetype)descriptor; @end @compatibility_alias MPSGraphFFTDescriptor FakeMPSGraphFFTDescriptor; @interface MPSGraph (SonomaOps) - (MPSGraphTensor* _Nonnull)conjugateWithTensor:(MPSGraphTensor* _Nonnull)tensor name:(NSString* _Nullable)name; - (MPSGraphTensor* _Nonnull)realPartOfTensor:(MPSGraphTensor* _Nonnull)tensor name:(NSString* _Nullable)name; - (MPSGraphTensor* _Nonnull)fastFourierTransformWithTensor:(MPSGraphTensor* _Nonnull)tensor axes:(NSArray* _Nonnull)axes descriptor:(MPSGraphFFTDescriptor* _Nonnull)descriptor name:(NSString* _Nullable)name; - (MPSGraphTensor* _Nonnull)realToHermiteanFFTWithTensor:(MPSGraphTensor* _Nonnull)tensor axes:(NSArray* _Nonnull)axes descriptor:(MPSGraphFFTDescriptor* _Nonnull)descriptor name:(NSString* _Nullable)name; - (MPSGraphTensor* _Nonnull)HermiteanToRealFFTWithTensor:(MPSGraphTensor* _Nonnull)tensor axes:(NSArray* _Nonnull)axes descriptor:(MPSGraphFFTDescriptor* _Nonnull)descriptor name:(NSString* _Nullable)name; @end // define BFloat16 enums for MacOS13 #define MPSDataTypeBFloat16 ((MPSDataType)(MPSDataTypeAlternateEncodingBit | MPSDataTypeFloat16)) // define Metal version #define MTLLanguageVersion3_1 ((MTLLanguageVersion)((3 << 16) + 1)) #endif