react-native-executorch 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/android/CMakeLists.txt +24 -0
  2. package/android/build.gradle +1 -0
  3. package/android/src/main/cpp/CMakeLists.txt +25 -0
  4. package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +1 -13
  5. package/common/rnexecutorch/RnExecutorchInstaller.cpp +52 -18
  6. package/common/rnexecutorch/RnExecutorchInstaller.h +0 -25
  7. package/common/rnexecutorch/TokenizerModule.cpp +1 -1
  8. package/common/rnexecutorch/TokenizerModule.h +4 -1
  9. package/common/rnexecutorch/data_processing/FileUtils.h +2 -2
  10. package/common/rnexecutorch/data_processing/ImageProcessing.cpp +5 -5
  11. package/common/rnexecutorch/data_processing/ImageProcessing.h +2 -2
  12. package/common/rnexecutorch/data_processing/Numerical.cpp +13 -0
  13. package/common/rnexecutorch/host_objects/JsiConversions.h +43 -62
  14. package/common/rnexecutorch/host_objects/ModelHostObject.h +43 -24
  15. package/common/rnexecutorch/metaprogramming/ConstructorHelpers.h +8 -6
  16. package/common/rnexecutorch/metaprogramming/FunctionHelpers.h +1 -1
  17. package/common/rnexecutorch/models/BaseModel.cpp +2 -2
  18. package/common/rnexecutorch/models/BaseModel.h +5 -0
  19. package/common/rnexecutorch/models/EncoderDecoderBase.cpp +2 -2
  20. package/common/rnexecutorch/models/EncoderDecoderBase.h +2 -2
  21. package/common/rnexecutorch/models/classification/Classification.cpp +6 -6
  22. package/common/rnexecutorch/models/classification/Classification.h +5 -0
  23. package/common/rnexecutorch/models/classification/Constants.h +3 -3
  24. package/common/rnexecutorch/models/embeddings/BaseEmbeddings.cpp +2 -2
  25. package/common/rnexecutorch/models/embeddings/BaseEmbeddings.h +2 -2
  26. package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.cpp +3 -3
  27. package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.h +5 -0
  28. package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.cpp +2 -2
  29. package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.h +6 -1
  30. package/common/rnexecutorch/models/image_segmentation/Constants.h +3 -3
  31. package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.cpp +6 -5
  32. package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.h +8 -1
  33. package/common/rnexecutorch/models/llm/LLM.cpp +58 -0
  34. package/common/rnexecutorch/models/llm/LLM.h +35 -0
  35. package/common/rnexecutorch/models/object_detection/Constants.h +3 -3
  36. package/common/rnexecutorch/models/object_detection/ObjectDetection.cpp +8 -8
  37. package/common/rnexecutorch/models/object_detection/ObjectDetection.h +11 -5
  38. package/common/rnexecutorch/models/object_detection/Types.h +13 -0
  39. package/common/rnexecutorch/models/object_detection/Utils.cpp +13 -11
  40. package/common/rnexecutorch/models/object_detection/Utils.h +7 -13
  41. package/common/rnexecutorch/models/ocr/CTCLabelConverter.cpp +2 -2
  42. package/common/rnexecutorch/models/ocr/CTCLabelConverter.h +2 -2
  43. package/common/rnexecutorch/models/ocr/Constants.h +33 -26
  44. package/common/rnexecutorch/models/ocr/Detector.cpp +20 -22
  45. package/common/rnexecutorch/models/ocr/Detector.h +4 -4
  46. package/common/rnexecutorch/models/ocr/OCR.cpp +9 -8
  47. package/common/rnexecutorch/models/ocr/OCR.h +11 -3
  48. package/common/rnexecutorch/models/ocr/RecognitionHandler.cpp +20 -19
  49. package/common/rnexecutorch/models/ocr/RecognitionHandler.h +9 -7
  50. package/common/rnexecutorch/models/ocr/Recognizer.cpp +7 -7
  51. package/common/rnexecutorch/models/ocr/Recognizer.h +2 -2
  52. package/common/rnexecutorch/models/ocr/Types.h +4 -6
  53. package/common/rnexecutorch/models/ocr/{DetectorUtils.cpp → utils/DetectorUtils.cpp} +70 -63
  54. package/common/rnexecutorch/models/ocr/{DetectorUtils.h → utils/DetectorUtils.h} +12 -11
  55. package/common/rnexecutorch/models/ocr/{RecognitionHandlerUtils.cpp → utils/RecognitionHandlerUtils.cpp} +14 -11
  56. package/common/rnexecutorch/models/ocr/{RecognitionHandlerUtils.h → utils/RecognitionHandlerUtils.h} +5 -5
  57. package/common/rnexecutorch/models/ocr/{RecognizerUtils.cpp → utils/RecognizerUtils.cpp} +28 -26
  58. package/common/rnexecutorch/models/ocr/{RecognizerUtils.h → utils/RecognizerUtils.h} +15 -14
  59. package/common/rnexecutorch/models/speech_to_text/SpeechToText.cpp +2 -2
  60. package/common/rnexecutorch/models/speech_to_text/SpeechToText.h +9 -2
  61. package/common/rnexecutorch/models/speech_to_text/SpeechToTextStrategy.h +2 -2
  62. package/common/rnexecutorch/models/speech_to_text/WhisperStrategy.cpp +2 -2
  63. package/common/rnexecutorch/models/speech_to_text/WhisperStrategy.h +2 -2
  64. package/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp +5 -5
  65. package/common/rnexecutorch/models/style_transfer/StyleTransfer.h +6 -0
  66. package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.cpp +23 -22
  67. package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.h +4 -4
  68. package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.cpp +34 -34
  69. package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.h +27 -20
  70. package/{third-party/ios/ExecutorchLib/ExecutorchLib/sampler → common/runner}/sampler.cpp +3 -2
  71. package/{third-party/ios/ExecutorchLib/ExecutorchLib/sampler → common/runner}/sampler.h +3 -2
  72. package/ios/libs/executorch/libbackend_coreml_ios.a +0 -0
  73. package/ios/libs/executorch/libbackend_coreml_simulator.a +0 -0
  74. package/{third-party/ios/ExecutorchLib/frameworks/backend_mps.xcframework/ios-arm64 → ios/libs/executorch}/libbackend_mps_ios.a +0 -0
  75. package/{third-party/ios/ExecutorchLib/frameworks/backend_mps.xcframework/ios-arm64-simulator → ios/libs/executorch}/libbackend_mps_simulator.a +0 -0
  76. package/ios/libs/executorch/libbackend_xnnpack_ios.a +0 -0
  77. package/ios/libs/executorch/libbackend_xnnpack_simulator.a +0 -0
  78. package/ios/libs/executorch/libexecutorch_ios.a +0 -0
  79. package/ios/libs/executorch/libexecutorch_simulator.a +0 -0
  80. package/ios/libs/executorch/libkernels_custom_ios.a +0 -0
  81. package/ios/libs/executorch/libkernels_custom_simulator.a +0 -0
  82. package/ios/libs/executorch/libkernels_optimized_ios.a +0 -0
  83. package/ios/libs/executorch/libkernels_optimized_simulator.a +0 -0
  84. package/ios/libs/executorch/libkernels_portable_ios.a +0 -0
  85. package/ios/libs/executorch/libkernels_portable_simulator.a +0 -0
  86. package/ios/libs/executorch/libkernels_quantized_ios.a +0 -0
  87. package/ios/libs/executorch/libkernels_quantized_simulator.a +0 -0
  88. package/ios/libs/tokenizers-cpp/physical-arm64-release/libsentencepiece.a +0 -0
  89. package/ios/{ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib → libs/tokenizers-cpp/physical-arm64-release/libtokenizers_c.a} +0 -0
  90. package/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_cpp.a +0 -0
  91. package/ios/libs/tokenizers-cpp/simulator-arm64-debug/libsentencepiece.a +0 -0
  92. package/ios/{ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib → libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_c.a} +0 -0
  93. package/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_cpp.a +0 -0
  94. package/lib/Error.js +9 -6
  95. package/lib/ThreadPool.d.ts +10 -0
  96. package/lib/ThreadPool.js +28 -0
  97. package/lib/constants/modelUrls.js +1 -1
  98. package/lib/controllers/OCRController.js +9 -14
  99. package/lib/controllers/VerticalOCRController.js +9 -14
  100. package/lib/hooks/computer_vision/useOCR.js +7 -8
  101. package/lib/hooks/computer_vision/useVerticalOCR.js +3 -5
  102. package/lib/index.d.ts +0 -2
  103. package/lib/index.js +1 -3
  104. package/lib/module/controllers/LLMController.js +6 -10
  105. package/lib/module/controllers/LLMController.js.map +1 -1
  106. package/lib/module/hooks/computer_vision/useClassification.js +2 -2
  107. package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
  108. package/lib/module/hooks/computer_vision/useImageEmbeddings.js +2 -2
  109. package/lib/module/hooks/computer_vision/useImageEmbeddings.js.map +1 -1
  110. package/lib/module/hooks/computer_vision/useImageSegmentation.js +2 -2
  111. package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -1
  112. package/lib/module/hooks/computer_vision/useObjectDetection.js +2 -2
  113. package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
  114. package/lib/module/hooks/computer_vision/useStyleTransfer.js +2 -2
  115. package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
  116. package/lib/module/hooks/general/useExecutorchModule.js +2 -2
  117. package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
  118. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +2 -2
  119. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -1
  120. package/lib/module/hooks/useModule.js +13 -9
  121. package/lib/module/hooks/useModule.js.map +1 -1
  122. package/lib/module/index.js +1 -1
  123. package/lib/module/index.js.map +1 -1
  124. package/lib/module/modules/BaseModule.js +9 -17
  125. package/lib/module/modules/BaseModule.js.map +1 -1
  126. package/lib/module/modules/computer_vision/ClassificationModule.js +2 -2
  127. package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
  128. package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js +2 -2
  129. package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js.map +1 -1
  130. package/lib/module/modules/computer_vision/ImageSegmentationModule.js +2 -2
  131. package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -1
  132. package/lib/module/modules/computer_vision/ObjectDetectionModule.js +2 -2
  133. package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
  134. package/lib/module/modules/computer_vision/StyleTransferModule.js +2 -2
  135. package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
  136. package/lib/module/modules/general/ExecutorchModule.js +2 -2
  137. package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
  138. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +2 -2
  139. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -1
  140. package/lib/module/native/RnExecutorchModules.js +1 -2
  141. package/lib/module/native/RnExecutorchModules.js.map +1 -1
  142. package/lib/module/utils/SpeechToTextModule/ASR.js +3 -3
  143. package/lib/module/utils/SpeechToTextModule/ASR.js.map +1 -1
  144. package/lib/modules/computer_vision/OCRModule.d.ts +4 -5
  145. package/lib/modules/computer_vision/OCRModule.js +9 -12
  146. package/lib/modules/computer_vision/VerticalOCRModule.d.ts +4 -5
  147. package/lib/modules/computer_vision/VerticalOCRModule.js +9 -12
  148. package/lib/native/RnExecutorchModules.d.ts +5 -1
  149. package/lib/native/RnExecutorchModules.js +3 -1
  150. package/lib/tsconfig.tsbuildinfo +1 -0
  151. package/lib/types/common.d.ts +1 -0
  152. package/lib/typescript/controllers/LLMController.d.ts +1 -1
  153. package/lib/typescript/controllers/LLMController.d.ts.map +1 -1
  154. package/lib/typescript/hooks/useModule.d.ts +8 -5
  155. package/lib/typescript/hooks/useModule.d.ts.map +1 -1
  156. package/lib/typescript/index.d.ts +1 -0
  157. package/lib/typescript/index.d.ts.map +1 -1
  158. package/lib/typescript/modules/BaseModule.d.ts +7 -6
  159. package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
  160. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +2 -2
  161. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
  162. package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts +2 -2
  163. package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts.map +1 -1
  164. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +2 -2
  165. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -1
  166. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +2 -2
  167. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
  168. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +2 -2
  169. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
  170. package/lib/typescript/modules/general/ExecutorchModule.d.ts +2 -2
  171. package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
  172. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +2 -2
  173. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -1
  174. package/lib/typescript/native/RnExecutorchModules.d.ts +1 -3
  175. package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
  176. package/lib/utils/ResourceFetcherUtils.js +0 -1
  177. package/lib/utils/llm.js +0 -1
  178. package/package.json +1 -2
  179. package/react-native-executorch.podspec +47 -44
  180. package/src/controllers/LLMController.ts +8 -13
  181. package/src/hooks/computer_vision/useClassification.ts +2 -2
  182. package/src/hooks/computer_vision/useImageEmbeddings.ts +2 -2
  183. package/src/hooks/computer_vision/useImageSegmentation.ts +2 -2
  184. package/src/hooks/computer_vision/useObjectDetection.ts +2 -2
  185. package/src/hooks/computer_vision/useStyleTransfer.ts +2 -2
  186. package/src/hooks/general/useExecutorchModule.ts +2 -2
  187. package/src/hooks/natural_language_processing/useTextEmbeddings.ts +2 -2
  188. package/src/hooks/useModule.ts +23 -13
  189. package/src/index.ts +3 -2
  190. package/src/modules/BaseModule.ts +17 -28
  191. package/src/modules/computer_vision/ClassificationModule.ts +2 -2
  192. package/src/modules/computer_vision/ImageEmbeddingsModule.ts +2 -2
  193. package/src/modules/computer_vision/ImageSegmentationModule.ts +2 -2
  194. package/src/modules/computer_vision/ObjectDetectionModule.ts +2 -2
  195. package/src/modules/computer_vision/StyleTransferModule.ts +2 -2
  196. package/src/modules/general/ExecutorchModule.ts +2 -2
  197. package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +2 -2
  198. package/src/native/RnExecutorchModules.ts +1 -5
  199. package/src/utils/SpeechToTextModule/ASR.ts +4 -4
  200. package/third-party/android/libs/cpuinfo/arm64-v8a/libcpuinfo.so +0 -0
  201. package/third-party/android/libs/pthreadpool/arm64-v8a/libpthreadpool.so +0 -0
  202. package/third-party/include/cpuinfo/cpuinfo.h +2305 -0
  203. package/third-party/include/executorch/extension/threadpool/cpuinfo_utils.h +26 -0
  204. package/third-party/include/executorch/extension/threadpool/threadpool.h +94 -0
  205. package/third-party/include/pthreadpool/pthreadpool.h +2236 -0
  206. package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +0 -63
  207. package/ios/ExecutorchLib.xcframework/Info.plist +0 -43
  208. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/ETModel.h +0 -27
  209. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
  210. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
  211. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
  212. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/ETModel.h +0 -27
  213. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
  214. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
  215. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
  216. package/ios/RnExecutorch/LLM.h +0 -5
  217. package/ios/RnExecutorch/LLM.mm +0 -78
  218. package/lib/Error.d.ts +0 -30
  219. package/lib/constants/directories.d.ts +0 -1
  220. package/lib/constants/ocr/symbols.d.ts +0 -75
  221. package/lib/controllers/OCRController.d.ts +0 -23
  222. package/lib/controllers/VerticalOCRController.d.ts +0 -25
  223. package/lib/hooks/useModule.d.ts +0 -17
  224. package/lib/module/modules/BaseNonStaticModule.js +0 -17
  225. package/lib/module/modules/BaseNonStaticModule.js.map +0 -1
  226. package/lib/module/native/NativeLLM.js +0 -5
  227. package/lib/module/native/NativeLLM.js.map +0 -1
  228. package/lib/modules/BaseModule.d.ts +0 -8
  229. package/lib/modules/BaseNonStaticModule.d.ts +0 -9
  230. package/lib/native/NativeETInstaller.d.ts +0 -6
  231. package/lib/native/NativeOCR.d.ts +0 -8
  232. package/lib/native/NativeVerticalOCR.d.ts +0 -8
  233. package/lib/types/imageSegmentation.d.ts +0 -24
  234. package/lib/types/objectDetection.d.ts +0 -104
  235. package/lib/types/ocr.d.ts +0 -11
  236. package/lib/typescript/modules/BaseNonStaticModule.d.ts +0 -10
  237. package/lib/typescript/modules/BaseNonStaticModule.d.ts.map +0 -1
  238. package/lib/typescript/native/NativeLLM.d.ts +0 -12
  239. package/lib/typescript/native/NativeLLM.d.ts.map +0 -1
  240. package/lib/utils/stt.d.ts +0 -1
  241. package/src/modules/BaseNonStaticModule.ts +0 -26
  242. package/src/native/NativeLLM.ts +0 -14
  243. package/third-party/include/tokenizers-cpp/tokenizers_c.h +0 -61
  244. package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/ETModel.h +0 -27
  245. package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/ETModel.mm +0 -249
  246. package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/HuggingFaceTokenizer.h +0 -14
  247. package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/HuggingFaceTokenizer.mm +0 -80
  248. package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/LLaMARunner.h +0 -32
  249. package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/LLaMARunner.mm +0 -95
  250. package/third-party/ios/ExecutorchLib/ExecutorchLib/InputType.h +0 -12
  251. package/third-party/ios/ExecutorchLib/ExecutorchLib/Utils.hpp +0 -217
  252. package/third-party/ios/ExecutorchLib/ExecutorchLib/model/Model.cpp +0 -11
  253. package/third-party/ios/ExecutorchLib/ExecutorchLib/model/Model.h +0 -11
  254. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/base64.h +0 -202
  255. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/bpe_tokenizer.cpp +0 -313
  256. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/bpe_tokenizer.h +0 -57
  257. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/llama_tiktoken.cpp +0 -78
  258. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/llama_tiktoken.h +0 -23
  259. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/tiktoken.cpp +0 -427
  260. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/tiktoken.h +0 -87
  261. package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/tokenizer.h +0 -76
  262. package/third-party/ios/ExecutorchLib/ExecutorchLib.xcodeproj/project.pbxproj +0 -683
  263. package/third-party/ios/ExecutorchLib/build.sh +0 -44
  264. package/third-party/ios/ExecutorchLib/frameworks/backend_coreml.xcframework/Info.plist +0 -43
  265. package/third-party/ios/ExecutorchLib/frameworks/backend_coreml.xcframework/ios-arm64/libbackend_coreml_ios.a +0 -0
  266. package/third-party/ios/ExecutorchLib/frameworks/backend_coreml.xcframework/ios-arm64-simulator/libbackend_coreml_simulator.a +0 -0
  267. package/third-party/ios/ExecutorchLib/frameworks/backend_mps.xcframework/Info.plist +0 -43
  268. package/third-party/ios/ExecutorchLib/frameworks/backend_xnnpack.xcframework/Info.plist +0 -43
  269. package/third-party/ios/ExecutorchLib/frameworks/backend_xnnpack.xcframework/ios-arm64/libbackend_xnnpack_ios.a +0 -0
  270. package/third-party/ios/ExecutorchLib/frameworks/backend_xnnpack.xcframework/ios-arm64-simulator/libbackend_xnnpack_simulator.a +0 -0
  271. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/Info.plist +0 -47
  272. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/macros/Export.h +0 -163
  273. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/macros/Macros.h +0 -497
  274. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/BFloat16-inl.h +0 -342
  275. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/BFloat16-math.h +0 -266
  276. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/BFloat16.h +0 -125
  277. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/Half-inl.h +0 -347
  278. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/Half.h +0 -416
  279. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/TypeSafeSignMath.h +0 -133
  280. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/bit_cast.h +0 -43
  281. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/floating_point_utils.h +0 -33
  282. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/irange.h +0 -107
  283. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorch.h +0 -13
  284. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchError.h +0 -16
  285. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchLog.h +0 -76
  286. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchModule.h +0 -286
  287. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchTensor.h +0 -742
  288. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchValue.h +0 -219
  289. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/module/module.h +0 -492
  290. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor.h +0 -13
  291. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor_accessor.h +0 -190
  292. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor_ptr.h +0 -347
  293. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor_ptr_maker.h +0 -653
  294. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/backend/backend_execution_context.h +0 -71
  295. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/backend/backend_init_context.h +0 -72
  296. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/backend/interface.h +0 -166
  297. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/array_ref.h +0 -235
  298. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/data_loader.h +0 -136
  299. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/defines.h +0 -20
  300. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/error.h +0 -229
  301. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/evalue.h +0 -521
  302. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/event_tracer.h +0 -565
  303. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/event_tracer_hooks.h +0 -323
  304. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/event_tracer_hooks_delegate.h +0 -197
  305. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/exec_aten.h +0 -147
  306. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/dim_order_util.h +0 -263
  307. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/scalar_type_util.h +0 -1331
  308. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +0 -21
  309. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +0 -69
  310. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/tensor_util.h +0 -1250
  311. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/freeable_buffer.h +0 -107
  312. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/hierarchical_allocator.h +0 -107
  313. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/memory_allocator.h +0 -198
  314. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/named_data_map.h +0 -86
  315. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/bfloat16.h +0 -27
  316. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/bfloat16_math.h +0 -14
  317. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/bits_types.h +0 -83
  318. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +0 -163
  319. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +0 -497
  320. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +0 -342
  321. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +0 -266
  322. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +0 -125
  323. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +0 -347
  324. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half.h +0 -416
  325. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +0 -133
  326. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +0 -43
  327. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +0 -33
  328. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/irange.h +0 -107
  329. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/complex.h +0 -44
  330. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/device.h +0 -70
  331. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/half.h +0 -27
  332. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/optional.h +0 -36
  333. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/qint_types.h +0 -83
  334. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/scalar.h +0 -110
  335. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/scalar_type.h +0 -154
  336. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/string_view.h +0 -29
  337. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/tensor.h +0 -142
  338. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/tensor_impl.h +0 -261
  339. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/tensor_options.h +0 -60
  340. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/result.h +0 -258
  341. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/span.h +0 -93
  342. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/tag.h +0 -71
  343. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/tensor_layout.h +0 -79
  344. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/tensor_shape_dynamism.h +0 -39
  345. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/memory_manager.h +0 -113
  346. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/method.h +0 -387
  347. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/method_meta.h +0 -251
  348. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/program.h +0 -320
  349. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/pte_data_map.h +0 -144
  350. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/tensor_parser.h +0 -156
  351. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/kernel/kernel_runtime_context.h +0 -122
  352. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/kernel/operator_registry.h +0 -278
  353. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/abort.h +0 -36
  354. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/assert.h +0 -119
  355. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/clock.h +0 -43
  356. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/compat_unistd.h +0 -75
  357. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/compiler.h +0 -191
  358. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/log.h +0 -177
  359. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/platform.h +0 -133
  360. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/profiler.h +0 -292
  361. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/runtime.h +0 -35
  362. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/system.h +0 -49
  363. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/types.h +0 -24
  364. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/schema/extended_header.h +0 -76
  365. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/module.modulemap +0 -5
  366. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/libexecutorch_ios.a +0 -0
  367. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/macros/Export.h +0 -163
  368. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/macros/Macros.h +0 -497
  369. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/BFloat16-inl.h +0 -342
  370. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/BFloat16-math.h +0 -266
  371. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/BFloat16.h +0 -125
  372. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/Half-inl.h +0 -347
  373. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/Half.h +0 -416
  374. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/TypeSafeSignMath.h +0 -133
  375. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/bit_cast.h +0 -43
  376. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/floating_point_utils.h +0 -33
  377. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/irange.h +0 -107
  378. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorch.h +0 -13
  379. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchError.h +0 -16
  380. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchLog.h +0 -76
  381. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchModule.h +0 -286
  382. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchTensor.h +0 -742
  383. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchValue.h +0 -219
  384. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/module/module.h +0 -492
  385. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor.h +0 -13
  386. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor_accessor.h +0 -190
  387. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor_ptr.h +0 -347
  388. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor_ptr_maker.h +0 -653
  389. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/backend/backend_execution_context.h +0 -71
  390. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/backend/backend_init_context.h +0 -72
  391. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/backend/interface.h +0 -166
  392. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/array_ref.h +0 -235
  393. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/data_loader.h +0 -136
  394. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/defines.h +0 -20
  395. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/error.h +0 -229
  396. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/evalue.h +0 -521
  397. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/event_tracer.h +0 -565
  398. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/event_tracer_hooks.h +0 -323
  399. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/event_tracer_hooks_delegate.h +0 -197
  400. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/exec_aten.h +0 -147
  401. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/dim_order_util.h +0 -263
  402. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/scalar_type_util.h +0 -1331
  403. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +0 -21
  404. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +0 -69
  405. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/tensor_util.h +0 -1250
  406. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/freeable_buffer.h +0 -107
  407. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/hierarchical_allocator.h +0 -107
  408. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/memory_allocator.h +0 -198
  409. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/named_data_map.h +0 -86
  410. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/bfloat16.h +0 -27
  411. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/bfloat16_math.h +0 -14
  412. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/bits_types.h +0 -83
  413. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +0 -163
  414. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +0 -497
  415. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +0 -342
  416. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +0 -266
  417. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +0 -125
  418. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +0 -347
  419. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half.h +0 -416
  420. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +0 -133
  421. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +0 -43
  422. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +0 -33
  423. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/irange.h +0 -107
  424. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/complex.h +0 -44
  425. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/device.h +0 -70
  426. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/half.h +0 -27
  427. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/optional.h +0 -36
  428. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/qint_types.h +0 -83
  429. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/scalar.h +0 -110
  430. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/scalar_type.h +0 -154
  431. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/string_view.h +0 -29
  432. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/tensor.h +0 -142
  433. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/tensor_impl.h +0 -261
  434. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/tensor_options.h +0 -60
  435. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/result.h +0 -258
  436. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/span.h +0 -93
  437. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/tag.h +0 -71
  438. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/tensor_layout.h +0 -79
  439. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/tensor_shape_dynamism.h +0 -39
  440. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/memory_manager.h +0 -113
  441. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/method.h +0 -387
  442. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/method_meta.h +0 -251
  443. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/program.h +0 -320
  444. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/pte_data_map.h +0 -144
  445. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/tensor_parser.h +0 -156
  446. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/kernel/kernel_runtime_context.h +0 -122
  447. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/kernel/operator_registry.h +0 -278
  448. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/abort.h +0 -36
  449. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/assert.h +0 -119
  450. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/clock.h +0 -43
  451. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/compat_unistd.h +0 -75
  452. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/compiler.h +0 -191
  453. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/log.h +0 -177
  454. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/platform.h +0 -133
  455. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/profiler.h +0 -292
  456. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/runtime.h +0 -35
  457. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/system.h +0 -49
  458. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/types.h +0 -24
  459. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/schema/extended_header.h +0 -76
  460. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/module.modulemap +0 -5
  461. package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/libexecutorch_simulator.a +0 -0
  462. package/third-party/ios/ExecutorchLib/frameworks/kernels_custom.xcframework/Info.plist +0 -43
  463. package/third-party/ios/ExecutorchLib/frameworks/kernels_custom.xcframework/ios-arm64/libkernels_custom_ios.a +0 -0
  464. package/third-party/ios/ExecutorchLib/frameworks/kernels_custom.xcframework/ios-arm64-simulator/libkernels_custom_simulator.a +0 -0
  465. package/third-party/ios/ExecutorchLib/frameworks/kernels_optimized.xcframework/Info.plist +0 -43
  466. package/third-party/ios/ExecutorchLib/frameworks/kernels_optimized.xcframework/ios-arm64/libkernels_optimized_ios.a +0 -0
  467. package/third-party/ios/ExecutorchLib/frameworks/kernels_optimized.xcframework/ios-arm64-simulator/libkernels_optimized_simulator.a +0 -0
  468. package/third-party/ios/ExecutorchLib/frameworks/kernels_portable.xcframework/Info.plist +0 -43
  469. package/third-party/ios/ExecutorchLib/frameworks/kernels_portable.xcframework/ios-arm64/libkernels_portable_ios.a +0 -0
  470. package/third-party/ios/ExecutorchLib/frameworks/kernels_portable.xcframework/ios-arm64-simulator/libkernels_portable_simulator.a +0 -0
  471. package/third-party/ios/ExecutorchLib/frameworks/kernels_quantized.xcframework/Info.plist +0 -43
  472. package/third-party/ios/ExecutorchLib/frameworks/kernels_quantized.xcframework/ios-arm64/libkernels_quantized_ios.a +0 -0
  473. package/third-party/ios/ExecutorchLib/frameworks/kernels_quantized.xcframework/ios-arm64-simulator/libkernels_quantized_simulator.a +0 -0
  474. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/Info.plist +0 -43
  475. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/bitmap256.h +0 -82
  476. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/filtered_re2.h +0 -111
  477. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/pod_array.h +0 -43
  478. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/prefilter.h +0 -130
  479. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/prefilter_tree.h +0 -139
  480. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/prog.h +0 -483
  481. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/re2.h +0 -994
  482. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/regexp.h +0 -692
  483. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/set.h +0 -85
  484. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/sparse_array.h +0 -367
  485. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/sparse_set.h +0 -241
  486. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/stringpiece.h +0 -205
  487. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/unicode_casefold.h +0 -78
  488. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/unicode_groups.h +0 -64
  489. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/walker-inl.h +0 -235
  490. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Info.plist +0 -26
  491. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/re2 +0 -0
  492. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/bitmap256.h +0 -82
  493. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/filtered_re2.h +0 -111
  494. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/pod_array.h +0 -43
  495. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/prefilter.h +0 -130
  496. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/prefilter_tree.h +0 -139
  497. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/prog.h +0 -483
  498. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/re2.h +0 -994
  499. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/regexp.h +0 -692
  500. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/set.h +0 -85
  501. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/sparse_array.h +0 -367
  502. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/sparse_set.h +0 -241
  503. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/stringpiece.h +0 -205
  504. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/unicode_casefold.h +0 -78
  505. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/unicode_groups.h +0 -64
  506. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/walker-inl.h +0 -235
  507. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Info.plist +0 -26
  508. package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/re2 +0 -0
  509. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/irunner.h +0 -0
  510. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/runner.cpp +0 -0
  511. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/runner.h +0 -0
  512. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/stats.h +0 -0
  513. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_decoder_runner.cpp +0 -0
  514. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_decoder_runner.h +0 -0
  515. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_prefiller.cpp +0 -0
  516. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_prefiller.h +0 -0
  517. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_token_generator.h +0 -0
  518. /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/util.h +0 -0
@@ -1,1331 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- * All rights reserved.
4
- *
5
- * This source code is licensed under the BSD-style license found in the
6
- * LICENSE file in the root directory of this source tree.
7
- */
8
-
9
- /**
10
- * @file
11
- *
12
- * Forked from
13
- * https://github.com/pytorch/pytorch/blob/master/c10/core/ScalarType.h
14
- *
15
- * See file comment in ../ScalarType.h.
16
- *
17
- * This file contains all of the non-critical parts of the original ScalarType.h
18
- * that are not required for the core ExecuTorch runtime, but may be helpful for
19
- * code that uses ScalarType.
20
- */
21
-
22
- #pragma once
23
-
24
- #include <array>
25
- #include <cinttypes>
26
- #include <cstdint>
27
- #include <limits>
28
- #include <type_traits>
29
-
30
- #include <executorch/runtime/platform/assert.h>
31
-
32
- #ifdef USE_ATEN_LIB
33
- // Note that a lot of the macros/functions defined in this ScalarTypeUtil.h file
34
- // are also defined in c10/core/ScalarType.h, which is included via
35
- // kernel_types.h when building in ATen mode. They tend to use different names
36
- // and a different namespace, but if there are conflicts they should be resolved
37
- // here.
38
- #define ET_FORALL_SCALAR_TYPES AT_FORALL_SCALAR_TYPES_WITH_COMPLEX_AND_QINTS
39
- #include <c10/core/ScalarType.h>
40
- namespace executorch {
41
- namespace aten {
42
- using ScalarType = at::ScalarType;
43
- } // namespace aten
44
- } // namespace executorch
45
- #else // !USE_ATEN_LIB
46
- #include <executorch/runtime/core/portable_type/scalar_type.h>
47
- #include <executorch/runtime/core/portable_type/string_view.h>
48
- namespace executorch {
49
- namespace aten {
50
- using ScalarType = torch::executor::ScalarType;
51
- using string_view = torch::executor::string_view;
52
- } // namespace aten
53
- } // namespace executorch
54
- #endif // USE_ATEN_LIB
55
- // DEPRECATED: The executorch::aten:: namespace is deprecated. Use
56
- // executorch::aten:: instead.
57
- namespace exec_aten = ::executorch::aten;
58
-
59
- namespace executorch {
60
- namespace runtime {
61
-
62
- #if !defined(USE_ATEN_LIB)
63
- // Util to figure out if the scalar type if one of the
64
- // supported floating point types.
65
- // In aten mode, aten lib already has these utils as part of
66
- // its vec_base.h
67
- template <typename T>
68
- struct is_floating_point
69
- : std::integral_constant<bool,
70
- std::is_floating_point<T>::value ||
71
- std::is_same_v<T, torch::executor::Half> ||
72
- std::is_same_v<T, torch::executor::BFloat16>> {
73
- };
74
-
75
- // Util to figure out if the scalar type is one of the
76
- // reduced precision floating point types.
77
- template <typename T>
78
- struct is_reduced_floating_point
79
- : std::integral_constant<bool,
80
- std::is_same_v<T, torch::executor::Half> ||
81
- std::is_same_v<T, torch::executor::BFloat16>> {
82
- };
83
-
84
- template <typename T>
85
- constexpr bool is_reduced_floating_point_v =
86
- is_reduced_floating_point<T>::value;
87
- #endif
88
-
89
- /// Maps ScalarTypes to C++ types.
90
- template <::executorch::aten::ScalarType N> struct ScalarTypeToCppType;
91
-
92
- #define SPECIALIZE_ScalarTypeToCppType(cpp_type, scalar_type) \
93
- template <> \
94
- struct ScalarTypeToCppType<::executorch::aten::ScalarType::scalar_type> { \
95
- using type = cpp_type; \
96
- };
97
-
98
- ET_FORALL_SCALAR_TYPES(SPECIALIZE_ScalarTypeToCppType)
99
-
100
- #undef SPECIALIZE_ScalarTypeToCppType
101
-
102
- /// Maps C++ types to ScalarTypes.
103
- template <typename T> struct CppTypeToScalarType;
104
-
105
- #define SPECIALIZE_CppTypeToScalarType(cpp_type, scalar_type) \
106
- template <> \
107
- struct CppTypeToScalarType<cpp_type> \
108
- : std::integral_constant<::executorch::aten::ScalarType, \
109
- ::executorch::aten::ScalarType::scalar_type> { \
110
- };
111
-
112
- ET_FORALL_SCALAR_TYPES(SPECIALIZE_CppTypeToScalarType)
113
-
114
- #undef SPECIALIZE_CppTypeToScalarType
115
-
116
- //
117
- // Macros that iterate across different subsets of ScalarTypes.
118
- //
119
- // See ET_FORALL_SCALAR_TYPES in ScalarType.h to iterate across all ScalarType
120
- // names and types.
121
- //
122
- // For all of these macros, the final `_` parameter is the name of another macro
123
- // that takes two parameters: the name of a C type, and the name of the
124
- // corresponding ScalarType enumerator.
125
- //
126
- // Note that these macros should use fully-qualified namespaces (starting with
127
- // `::`) to ensure that they can be called safely in any arbitrary namespace.
128
- //
129
-
130
- // In this context, "INT" means integer C types, which is why the quantized
131
- // integer types are not included.
132
- #define ET_FORALL_INT_TYPES(_) \
133
- _(uint8_t, Byte) \
134
- _(int8_t, Char) \
135
- _(int16_t, Short) \
136
- _(int32_t, Int) \
137
- _(int64_t, Long)
138
-
139
- // Here `ANOTHER_INPUT` should be another variable to be forwarded to a given
140
- // function.
141
- #define ET_FORALL_INT_TYPES_WITH(ANOTHER_INPUT, _) \
142
- _(ANOTHER_INPUT, uint8_t, Byte) \
143
- _(ANOTHER_INPUT, int8_t, Char) \
144
- _(ANOTHER_INPUT, int16_t, Short) \
145
- _(ANOTHER_INPUT, int32_t, Int) \
146
- _(ANOTHER_INPUT, int64_t, Long)
147
-
148
- #define ET_FORALL_INT_TYPES_WITH2(ANOTHER_INPUT1, ANOTHER_INPUT2, _) \
149
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, uint8_t, Byte) \
150
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int8_t, Char) \
151
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int16_t, Short) \
152
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int32_t, Int) \
153
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int64_t, Long)
154
-
155
- #define ET_FORALL_INT_TYPES_AND(SCALARTYPE, _) \
156
- _(uint8_t, Byte) \
157
- _(int8_t, Char) \
158
- _(int16_t, Short) \
159
- _(int32_t, Int) \
160
- _(int64_t, Long) \
161
- _(::executorch::runtime::ScalarTypeToCppType< \
162
- ::executorch::aten::ScalarType::SCALARTYPE>::type, \
163
- SCALARTYPE)
164
-
165
- // In this context, "FLOAT" means float C types, which is why BFloat16 is not
166
- // included.
167
- #define ET_FORALL_FLOAT_TYPES(_) \
168
- _(float, Float) \
169
- _(double, Double)
170
-
171
- #define ET_FORALL_FLOAT_TYPES_AND(SCALARTYPE, _) \
172
- _(float, Float) \
173
- _(double, Double) \
174
- _(::executorch::runtime::ScalarTypeToCppType< \
175
- ::executorch::aten::ScalarType::SCALARTYPE>::type, \
176
- SCALARTYPE)
177
-
178
- #define ET_FORALL_FLOAT_TYPES_AND2(SCALARTYPE1, SCALARTYPE2, _) \
179
- _(float, Float) \
180
- _(double, Double) \
181
- _(::executorch::runtime::ScalarTypeToCppType< \
182
- ::executorch::aten::ScalarType::SCALARTYPE1>::type, \
183
- SCALARTYPE1) \
184
- _(::executorch::runtime::ScalarTypeToCppType< \
185
- ::executorch::aten::ScalarType::SCALARTYPE2>::type, \
186
- SCALARTYPE2)
187
-
188
- #define ET_FORALL_FLOATH_TYPES(_) ET_FORALL_FLOAT_TYPES_AND(Half, _)
189
-
190
- #define ET_FORALL_FLOATHBF16_TYPES(_) \
191
- ET_FORALL_FLOAT_TYPES_AND2(Half, BFloat16, _)
192
-
193
- // Here `ANOTHER_INPUT` should be another variable to be forwarded to a given
194
- // function. Not to be confused with another scalar type as in
195
- // `ET_FORALL_FLOAT_TYPES_AND`.
196
- #define ET_FORALL_FLOAT_TYPES_WITH(ANOTHER_INPUT, _) \
197
- _(ANOTHER_INPUT, float, Float) \
198
- _(ANOTHER_INPUT, double, Double)
199
-
200
- #define ET_FORALL_FLOAT_TYPES_WITH2(ANOTHER_INPUT1, ANOTHER_INPUT2, _) \
201
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, float, Float) \
202
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, double, Double)
203
-
204
- #define ET_FORALL_FLOATHBF16_TYPES_WITH2(ANOTHER_INPUT1, ANOTHER_INPUT2, _) \
205
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, float, Float) \
206
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, double, Double) \
207
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, ::executorch::aten::Half, Half) \
208
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, ::executorch::aten::BFloat16, BFloat16)
209
-
210
- // In this context, "REAL" means integer/float C types, which is why BFloat16
211
- // and Half are not included.
212
- #define ET_FORALL_REAL_TYPES(_) \
213
- _(uint8_t, Byte) \
214
- _(int8_t, Char) \
215
- _(int16_t, Short) \
216
- _(int32_t, Int) \
217
- _(int64_t, Long) \
218
- _(float, Float) \
219
- _(double, Double)
220
-
221
- // Here `ANOTHER_INPUT` should be another variable to be forwarded to a given
222
- // function. Not to be confused with another scalar type as in
223
- // `ET_FORALL_REAL_TYPES_AND`.
224
- #define ET_FORALL_REAL_TYPES_WITH(ANOTHER_INPUT, _) \
225
- _(ANOTHER_INPUT, uint8_t, Byte) \
226
- _(ANOTHER_INPUT, int8_t, Char) \
227
- _(ANOTHER_INPUT, int16_t, Short) \
228
- _(ANOTHER_INPUT, int32_t, Int) \
229
- _(ANOTHER_INPUT, int64_t, Long) \
230
- _(ANOTHER_INPUT, float, Float) \
231
- _(ANOTHER_INPUT, double, Double)
232
-
233
- #define ET_FORALL_REAL_TYPES_WITH2(ANOTHER_INPUT1, ANOTHER_INPUT2, _) \
234
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, uint8_t, Byte) \
235
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int8_t, Char) \
236
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int16_t, Short) \
237
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int32_t, Int) \
238
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int64_t, Long) \
239
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, float, Float) \
240
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, double, Double)
241
-
242
- #define ET_FORALL_REALHBF16_TYPES_WITH2(ANOTHER_INPUT1, ANOTHER_INPUT2, _) \
243
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, uint8_t, Byte) \
244
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int8_t, Char) \
245
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int16_t, Short) \
246
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int32_t, Int) \
247
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, int64_t, Long) \
248
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, float, Float) \
249
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, double, Double) \
250
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, ::executorch::aten::Half, Half) \
251
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, ::executorch::aten::BFloat16, BFloat16)
252
-
253
- #define ET_FORALL_REALHBBF16_TYPES_WITH2(ANOTHER_INPUT1, ANOTHER_INPUT2, _) \
254
- ET_FORALL_REALHBF16_TYPES_WITH2(ANOTHER_INPUT2, ANOTHER_INPUT2, _) \
255
- _(ANOTHER_INPUT1, ANOTHER_INPUT2, bool, Bool)
256
-
257
- // For macros that take `SCALARTYPEn` parameters, those parameters should be
258
- // an unquoted/unqualified enumerator name like `Int` or `Float`.
259
- #define ET_FORALL_REAL_TYPES_AND(SCALARTYPE, _) \
260
- _(uint8_t, Byte) \
261
- _(int8_t, Char) \
262
- _(int16_t, Short) \
263
- _(int32_t, Int) \
264
- _(int64_t, Long) \
265
- _(float, Float) \
266
- _(double, Double) \
267
- _(::executorch::runtime::ScalarTypeToCppType< \
268
- ::executorch::aten::ScalarType::SCALARTYPE>::type, \
269
- SCALARTYPE)
270
-
271
- #define ET_FORALL_REAL_TYPES_AND2(SCALARTYPE1, SCALARTYPE2, _) \
272
- _(uint8_t, Byte) \
273
- _(int8_t, Char) \
274
- _(int16_t, Short) \
275
- _(int32_t, Int) \
276
- _(int64_t, Long) \
277
- _(float, Float) \
278
- _(double, Double) \
279
- _(::executorch::runtime::ScalarTypeToCppType< \
280
- ::executorch::aten::ScalarType::SCALARTYPE1>::type, \
281
- SCALARTYPE1) \
282
- _(::executorch::runtime::ScalarTypeToCppType< \
283
- ::executorch::aten::ScalarType::SCALARTYPE2>::type, \
284
- SCALARTYPE2)
285
-
286
- #define ET_FORALL_REALH_TYPES(_) ET_FORALL_REAL_TYPES_AND(Half, _)
287
-
288
- #define ET_FORALL_REALHBF16_TYPES(_) \
289
- ET_FORALL_REAL_TYPES_AND2(Half, BFloat16, _)
290
-
291
- #define ET_FORALL_REALHBBF16_TYPES(_) \
292
- ET_FORALL_REAL_TYPES_AND3(Bool, Half, BFloat16, _)
293
-
294
- #define ET_FORALL_REAL_TYPES_AND_WITH(SCALARTYPE, ANOTHER_INPUT, _) \
295
- _(ANOTHER_INPUT, uint8_t, Byte) \
296
- _(ANOTHER_INPUT, int8_t, Char) \
297
- _(ANOTHER_INPUT, int16_t, Short) \
298
- _(ANOTHER_INPUT, int32_t, Int) \
299
- _(ANOTHER_INPUT, int64_t, Long) \
300
- _(ANOTHER_INPUT, float, Float) \
301
- _(ANOTHER_INPUT, double, Double) \
302
- _(ANOTHER_INPUT, \
303
- ::executorch::runtime::ScalarTypeToCppType< \
304
- ::executorch::aten::ScalarType::SCALARTYPE>::type, \
305
- SCALARTYPE)
306
-
307
- #define ET_FORALL_REAL_TYPES_AND2(SCALARTYPE1, SCALARTYPE2, _) \
308
- _(uint8_t, Byte) \
309
- _(int8_t, Char) \
310
- _(int16_t, Short) \
311
- _(int32_t, Int) \
312
- _(int64_t, Long) \
313
- _(float, Float) \
314
- _(double, Double) \
315
- _(::executorch::runtime::ScalarTypeToCppType< \
316
- ::executorch::aten::ScalarType::SCALARTYPE1>::type, \
317
- SCALARTYPE1) \
318
- _(::executorch::runtime::ScalarTypeToCppType< \
319
- ::executorch::aten::ScalarType::SCALARTYPE2>::type, \
320
- SCALARTYPE2)
321
-
322
- #define ET_FORALL_REAL_TYPES_AND3(SCALARTYPE1, SCALARTYPE2, SCALARTYPE3, _) \
323
- _(uint8_t, Byte) \
324
- _(int8_t, Char) \
325
- _(int16_t, Short) \
326
- _(int32_t, Int) \
327
- _(int64_t, Long) \
328
- _(float, Float) \
329
- _(double, Double) \
330
- _(::executorch::runtime::ScalarTypeToCppType< \
331
- ::executorch::aten::ScalarType::SCALARTYPE1>::type, \
332
- SCALARTYPE1) \
333
- _(::executorch::runtime::ScalarTypeToCppType< \
334
- ::executorch::aten::ScalarType::SCALARTYPE2>::type, \
335
- SCALARTYPE2) \
336
- _(::executorch::runtime::ScalarTypeToCppType< \
337
- ::executorch::aten::ScalarType::SCALARTYPE3>::type, \
338
- SCALARTYPE3)
339
-
340
- #define ET_FORALL_QINT_TYPES(_) \
341
- _(::torch::executor::qint8, QInt8) \
342
- _(::torch::executor::quint8, QUInt8) \
343
- _(::torch::executor::qint32, QInt32) \
344
- _(::torch::executor::quint4x2, QUInt4x2) \
345
- _(::torch::executor::quint2x4, QUInt2x4)
346
-
347
- // In this context, "COMPLEX" means complex types based on primitive C types,
348
- // which is why ComplexHalf is not included.
349
- #define ET_FORALL_COMPLEX_TYPES(_) \
350
- _(::executorch::aten::complex<float>, ComplexFloat) \
351
- _(::executorch::aten::complex<double>, ComplexDouble)
352
-
353
- #define ET_FORALL_COMPLEXH_TYPES(_) \
354
- _(::executorch::aten::complex<::executorch::aten::Half>, ComplexHalf) \
355
- _(::executorch::aten::complex<float>, ComplexFloat) \
356
- _(::executorch::aten::complex<double>, ComplexDouble)
357
-
358
- //
359
- // Utility functions to retrieve metadata for a given ScalarType
360
- //
361
-
362
- /**
363
- * Returns true if the parameter is one of the values covered by
364
- * ET_FORALL_SCALAR_TYPES.
365
- */
366
- inline bool isValid(::executorch::aten::ScalarType type) {
367
- return static_cast<int8_t>(type) >= 0 &&
368
- type < ::executorch::aten::ScalarType::NumOptions &&
369
- type != ::executorch::aten::ScalarType::Undefined;
370
- }
371
-
372
- /**
373
- * Returns the name of a ScalarType as a C string.
374
- *
375
- * @param[in] t The type to get the name of.
376
- * @return The name of the type, or "UNKNOWN_SCALAR" if the type is not known.
377
- */
378
- inline const char *toString(::executorch::aten::ScalarType t) {
379
- #define DEFINE_CASE(_, name) \
380
- case ::executorch::aten::ScalarType::name: \
381
- return #name;
382
-
383
- switch (t) {
384
- ET_FORALL_SCALAR_TYPES(DEFINE_CASE)
385
- case ::executorch::aten::ScalarType::Undefined:
386
- return "Undefined";
387
- default:
388
- return "UNKNOWN_SCALAR";
389
- }
390
- #undef DEFINE_CASE
391
- }
392
-
393
- /**
394
- * Returns the size in bytes of the C type associated with the ScalarType.
395
- *
396
- * Calls ET_CHECK_MSG() if the type is unknown or is ScalarType::Undefined.
397
- *
398
- * @param[in] t The type to get the underlying C type size of.
399
- * @return The size of the associated C type in bytes.
400
- */
401
- inline size_t elementSize(::executorch::aten::ScalarType t) {
402
- #define CASE_ELEMENTSIZE_CASE(ctype, name) \
403
- case ::executorch::aten::ScalarType::name: \
404
- return sizeof(ctype);
405
-
406
- switch (t) {
407
- ET_FORALL_SCALAR_TYPES(CASE_ELEMENTSIZE_CASE)
408
- default:
409
- ET_CHECK_MSG(false, "Unknown ScalarType %" PRId8, static_cast<int8_t>(t));
410
- }
411
- #undef CASE_ELEMENTSIZE_CASE
412
- }
413
-
414
- inline constexpr bool isIntegralType(::executorch::aten::ScalarType t,
415
- bool includeBool) {
416
- return (includeBool && t == ::executorch::aten::ScalarType::Bool) ||
417
- (t == ::executorch::aten::ScalarType::Byte ||
418
- t == ::executorch::aten::ScalarType::Char ||
419
- t == ::executorch::aten::ScalarType::Int ||
420
- t == ::executorch::aten::ScalarType::Long ||
421
- t == ::executorch::aten::ScalarType::Short);
422
- }
423
-
424
- template <typename T, bool includeBool>
425
- struct is_integral_type
426
- : public std::integral_constant<
427
- bool, isIntegralType(CppTypeToScalarType<T>::value, includeBool)> {};
428
-
429
- inline constexpr bool isFloatingType(::executorch::aten::ScalarType t) {
430
- return (t == ::executorch::aten::ScalarType::Double ||
431
- t == ::executorch::aten::ScalarType::Float ||
432
- t == ::executorch::aten::ScalarType::Half ||
433
- t == ::executorch::aten::ScalarType::BFloat16);
434
- }
435
-
436
- inline bool isRealType(::executorch::aten::ScalarType t) {
437
- return (t == ::executorch::aten::ScalarType::Byte ||
438
- t == ::executorch::aten::ScalarType::Char ||
439
- t == ::executorch::aten::ScalarType::Short ||
440
- t == ::executorch::aten::ScalarType::Int ||
441
- t == ::executorch::aten::ScalarType::Long ||
442
- t == ::executorch::aten::ScalarType::Float ||
443
- t == ::executorch::aten::ScalarType::Double);
444
- }
445
-
446
- inline bool isRealHType(::executorch::aten::ScalarType t) {
447
- return (t == ::executorch::aten::ScalarType::Byte ||
448
- t == ::executorch::aten::ScalarType::Char ||
449
- t == ::executorch::aten::ScalarType::Short ||
450
- t == ::executorch::aten::ScalarType::Int ||
451
- t == ::executorch::aten::ScalarType::Long ||
452
- t == ::executorch::aten::ScalarType::Float ||
453
- t == ::executorch::aten::ScalarType::Double ||
454
- t == ::executorch::aten::ScalarType::Half);
455
- }
456
-
457
- inline bool isRealHBType(::executorch::aten::ScalarType t) {
458
- return (isRealHType(t) || t == ::executorch::aten::ScalarType::Bool);
459
- }
460
-
461
- inline bool isRealHBF16Type(::executorch::aten::ScalarType t) {
462
- return (isRealHType(t) || t == ::executorch::aten::ScalarType::BFloat16);
463
- }
464
-
465
- inline bool isRealHBBF16Type(::executorch::aten::ScalarType t) {
466
- return (isRealHBType(t) || t == ::executorch::aten::ScalarType::BFloat16);
467
- }
468
-
469
- inline constexpr bool isComplexType(::executorch::aten::ScalarType t) {
470
- return (t == ::executorch::aten::ScalarType::ComplexHalf ||
471
- t == ::executorch::aten::ScalarType::ComplexFloat ||
472
- t == ::executorch::aten::ScalarType::ComplexDouble);
473
- }
474
-
475
- template <typename T>
476
- struct is_complex_type
477
- : std::integral_constant<bool,
478
- isComplexType(CppTypeToScalarType<T>::value)> {};
479
-
480
- constexpr bool isBitsType(::executorch::aten::ScalarType t) {
481
- return t == ::executorch::aten::ScalarType::Bits1x8 ||
482
- t == ::executorch::aten::ScalarType::Bits2x4 ||
483
- t == ::executorch::aten::ScalarType::Bits4x2 ||
484
- t == ::executorch::aten::ScalarType::Bits8 ||
485
- t == ::executorch::aten::ScalarType::Bits16;
486
- }
487
-
488
- template <typename T>
489
- struct is_bits_type
490
- : std::integral_constant<bool, isBitsType(CppTypeToScalarType<T>::value)> {
491
- };
492
-
493
- constexpr bool isQIntType(::executorch::aten::ScalarType t) {
494
- // Don't forget to extend this when adding new QInt types
495
- return t == ::executorch::aten::ScalarType::QInt8 ||
496
- t == ::executorch::aten::ScalarType::QUInt8 ||
497
- t == ::executorch::aten::ScalarType::QInt32 ||
498
- t == ::executorch::aten::ScalarType::QUInt4x2 ||
499
- t == ::executorch::aten::ScalarType::QUInt2x4;
500
- }
501
-
502
- template <typename T>
503
- struct is_qint_type
504
- : std::integral_constant<bool, isQIntType(CppTypeToScalarType<T>::value)> {
505
- };
506
-
507
- constexpr bool isFloat8Type(::executorch::aten::ScalarType t) {
508
- // Don't forget to extend this when adding new QInt types
509
- return t == ::executorch::aten::ScalarType::Float8_e5m2 ||
510
- t == ::executorch::aten::ScalarType::Float8_e4m3fn ||
511
- t == ::executorch::aten::ScalarType::Float8_e5m2fnuz ||
512
- t == ::executorch::aten::ScalarType::Float8_e4m3fnuz;
513
- }
514
-
515
- template <typename T>
516
- struct is_float8_type
517
- : std::integral_constant<bool,
518
- isFloat8Type(CppTypeToScalarType<T>::value)> {};
519
-
520
- constexpr bool isBarebonesUnsignedType(::executorch::aten::ScalarType t) {
521
- // Don't forget to extend this when adding new QInt types
522
- return t == ::executorch::aten::ScalarType::UInt16 ||
523
- t == ::executorch::aten::ScalarType::UInt32 ||
524
- t == ::executorch::aten::ScalarType::UInt64;
525
- }
526
-
527
- template <typename T>
528
- struct is_barebones_unsigned_type
529
- : std::integral_constant<bool, isBarebonesUnsignedType(
530
- CppTypeToScalarType<T>::value)> {};
531
-
532
- inline ::executorch::aten::ScalarType
533
- toQIntType(::executorch::aten::ScalarType t) {
534
- switch (t) {
535
- case ::executorch::aten::ScalarType::Byte:
536
- return ::executorch::aten::ScalarType::QUInt8;
537
- case ::executorch::aten::ScalarType::Char:
538
- return ::executorch::aten::ScalarType::QInt8;
539
- case ::executorch::aten::ScalarType::Int:
540
- return ::executorch::aten::ScalarType::QInt32;
541
- default:
542
- return t;
543
- }
544
- }
545
-
546
- inline ::executorch::aten::ScalarType
547
- toUnderlying(::executorch::aten::ScalarType t) {
548
- switch (t) {
549
- case ::executorch::aten::ScalarType::QUInt8:
550
- return ::executorch::aten::ScalarType::Byte;
551
- case ::executorch::aten::ScalarType::QInt8:
552
- return ::executorch::aten::ScalarType::Char;
553
- case ::executorch::aten::ScalarType::QInt32:
554
- return ::executorch::aten::ScalarType::Int;
555
- case ::executorch::aten::ScalarType::QUInt4x2:
556
- return ::executorch::aten::ScalarType::Byte;
557
- case ::executorch::aten::ScalarType::QUInt2x4:
558
- return ::executorch::aten::ScalarType::Byte;
559
- default:
560
- return t;
561
- }
562
- }
563
-
564
- inline bool isSignedType(::executorch::aten::ScalarType t) {
565
- ET_CHECK_MSG(!::executorch::runtime::isQIntType(t),
566
- "isSignedType not supported for quantized types like %" PRId8,
567
- static_cast<int8_t>(t));
568
- #define CASE_SIGNED(ctype, name) \
569
- case ::executorch::aten::ScalarType::name: \
570
- return std::numeric_limits<ctype>::is_signed;
571
-
572
- switch (t) {
573
- case ::executorch::aten::ScalarType::ComplexHalf:
574
- case ::executorch::aten::ScalarType::ComplexFloat:
575
- case ::executorch::aten::ScalarType::ComplexDouble:
576
- return true;
577
- ET_FORALL_REAL_TYPES_AND3(Half, Bool, BFloat16, CASE_SIGNED)
578
- default:
579
- ET_CHECK_MSG(false, "Unknown ScalarType %" PRId8, static_cast<int8_t>(t));
580
- }
581
- #undef CASE_SIGNED
582
- }
583
-
584
- inline bool isUnderlying(::executorch::aten::ScalarType type,
585
- ::executorch::aten::ScalarType qtype) {
586
- return type == ::executorch::runtime::toUnderlying(qtype);
587
- }
588
-
589
- inline constexpr ::executorch::aten::ScalarType
590
- toRealValueType(::executorch::aten::ScalarType t) {
591
- switch (t) {
592
- case ::executorch::aten::ScalarType::ComplexHalf:
593
- return ::executorch::aten::ScalarType::Half;
594
- case ::executorch::aten::ScalarType::ComplexFloat:
595
- return ::executorch::aten::ScalarType::Float;
596
- case ::executorch::aten::ScalarType::ComplexDouble:
597
- return ::executorch::aten::ScalarType::Double;
598
- default:
599
- return t;
600
- }
601
- }
602
-
603
- inline constexpr ::executorch::aten::ScalarType
604
- toComplexType(::executorch::aten::ScalarType t) {
605
- switch (t) {
606
- case ::executorch::aten::ScalarType::BFloat16:
607
- // BFloat16 has range equivalent to Float,
608
- // so we map it to ComplexFloat.
609
- return ::executorch::aten::ScalarType::ComplexFloat;
610
- case ::executorch::aten::ScalarType::Half:
611
- return ::executorch::aten::ScalarType::ComplexHalf;
612
- case ::executorch::aten::ScalarType::Float:
613
- return ::executorch::aten::ScalarType::ComplexFloat;
614
- case ::executorch::aten::ScalarType::Double:
615
- return ::executorch::aten::ScalarType::ComplexDouble;
616
- case ::executorch::aten::ScalarType::ComplexHalf:
617
- return ::executorch::aten::ScalarType::ComplexHalf;
618
- case ::executorch::aten::ScalarType::ComplexFloat:
619
- return ::executorch::aten::ScalarType::ComplexFloat;
620
- case ::executorch::aten::ScalarType::ComplexDouble:
621
- return ::executorch::aten::ScalarType::ComplexDouble;
622
- default:
623
- ET_CHECK_MSG(false, "Unknown Complex ScalarType for %" PRId8,
624
- static_cast<int8_t>(t));
625
- }
626
- }
627
-
628
- /**
629
- * Encodes type casting rules that are consistent with ATen behaviour.
630
- */
631
- inline constexpr bool canCast(const ::executorch::aten::ScalarType from,
632
- const ::executorch::aten::ScalarType to) {
633
- // Disallow complex -> non-complex
634
- return !(::executorch::runtime::isComplexType(from) &&
635
- !::executorch::runtime::isComplexType(to)) &&
636
- // Disallow float -> integral
637
- !(::executorch::runtime::isFloatingType(from) &&
638
- ::executorch::runtime::isIntegralType(to, /*includeBool=*/false)) &&
639
- // Treat bool as a special category. Disallow non-bool -> bool
640
- !(from != ::executorch::aten::ScalarType::Bool &&
641
- to == ::executorch::aten::ScalarType::Bool);
642
- }
643
-
644
- template <typename T1, typename T2>
645
- struct can_cast
646
- : std::integral_constant<bool, canCast(CppTypeToScalarType<T1>::value,
647
- CppTypeToScalarType<T2>::value)> {};
648
-
649
- /**
650
- * When casting from floating point to integral type, if the floating value is
651
- * outside the integral type range, then an error is thrown if sanitization is
652
- * enabled. To circumvent this, we cast the floating point to int64_t first.
653
- */
654
- template <typename To, typename From,
655
- std::enable_if_t<(std::is_floating_point<From>::value &&
656
- std::is_integral<To>::value),
657
- int> = 0>
658
- To convert(From val) {
659
- return static_cast<To>(static_cast<int64_t>(val));
660
- }
661
-
662
- template <typename To, typename From,
663
- std::enable_if_t<!(std::is_floating_point<From>::value &&
664
- std::is_integral<To>::value),
665
- int> = 0>
666
- To convert(From val) {
667
- return static_cast<To>(val);
668
- }
669
-
670
- namespace internal {
671
- // This is generated according to NumPy's promote_types
672
- inline constexpr auto u1 = ::executorch::aten::ScalarType::Byte;
673
- inline constexpr auto i1 = ::executorch::aten::ScalarType::Char;
674
- inline constexpr auto i2 = ::executorch::aten::ScalarType::Short;
675
- inline constexpr auto i4 = ::executorch::aten::ScalarType::Int;
676
- inline constexpr auto i8 = ::executorch::aten::ScalarType::Long;
677
- inline constexpr auto f2 = ::executorch::aten::ScalarType::Half;
678
- inline constexpr auto f4 = ::executorch::aten::ScalarType::Float;
679
- inline constexpr auto f8 = ::executorch::aten::ScalarType::Double;
680
- inline constexpr auto c2 = ::executorch::aten::ScalarType::ComplexHalf;
681
- inline constexpr auto c4 = ::executorch::aten::ScalarType::ComplexFloat;
682
- inline constexpr auto c8 = ::executorch::aten::ScalarType::ComplexDouble;
683
- inline constexpr auto b1 = ::executorch::aten::ScalarType::Bool;
684
- inline constexpr auto bf = ::executorch::aten::ScalarType::BFloat16;
685
-
686
- using U1 =
687
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Byte>::type;
688
- using I1 =
689
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Char>::type;
690
- using I2 =
691
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Short>::type;
692
- using I4 =
693
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Int>::type;
694
- using I8 =
695
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Long>::type;
696
- using F2 =
697
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Half>::type;
698
- using F4 =
699
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Float>::type;
700
- using F8 =
701
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Double>::type;
702
- using C2 = typename ScalarTypeToCppType<
703
- ::executorch::aten::ScalarType::ComplexHalf>::type;
704
- using C4 = typename ScalarTypeToCppType<
705
- ::executorch::aten::ScalarType::ComplexFloat>::type;
706
- using C8 = typename ScalarTypeToCppType<
707
- ::executorch::aten::ScalarType::ComplexDouble>::type;
708
- using B1 =
709
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Bool>::type;
710
- using BF = typename ScalarTypeToCppType<
711
- ::executorch::aten::ScalarType::BFloat16>::type;
712
-
713
- inline constexpr std::array<::executorch::aten::ScalarType, 13> index2dtype = {
714
- {u1, i1, i2, i4, i8, f2, f4, f8, c2, c4, c8, b1, bf}};
715
-
716
- constexpr std::array<
717
- int64_t, static_cast<size_t>(::executorch::aten::ScalarType::NumOptions)>
718
- calculate_dtype2index() {
719
- std::array<int64_t,
720
- static_cast<size_t>(::executorch::aten::ScalarType::NumOptions)>
721
- inverse = {};
722
- for (int64_t i = 0;
723
- i < static_cast<int64_t>(::executorch::aten::ScalarType::NumOptions);
724
- i++) {
725
- inverse[i] = -1;
726
- }
727
- for (int64_t i = 0; i < static_cast<int64_t>(index2dtype.size()); i++) {
728
- inverse[static_cast<int64_t>(index2dtype[i])] = i;
729
- }
730
- return inverse;
731
- }
732
-
733
- inline constexpr auto dtype2index = calculate_dtype2index();
734
- inline constexpr int NUM_PROMOTE_TYPES = 13;
735
- // Should match _promoteTypesLookup in c10/core/ScalarType.cpp so that
736
- // we match PyTorch core type promotion semantics.
737
- inline constexpr ::executorch::aten::ScalarType
738
- promoteTypesLookup[NUM_PROMOTE_TYPES][NUM_PROMOTE_TYPES] = {
739
- /* u1 i1 i2 i4 i8 f2 f4 f8 c2 c4 c8 b1 bf*/
740
- /* u1 */ {u1, i2, i2, i4, i8, f2, f4, f8, c2, c4, c8, u1, bf},
741
- /* i1 */ {i2, i1, i2, i4, i8, f2, f4, f8, c2, c4, c8, i1, bf},
742
- /* i2 */ {i2, i2, i2, i4, i8, f2, f4, f8, c2, c4, c8, i2, bf},
743
- /* i4 */ {i4, i4, i4, i4, i8, f2, f4, f8, c2, c4, c8, i4, bf},
744
- /* i8 */ {i8, i8, i8, i8, i8, f2, f4, f8, c2, c4, c8, i8, bf},
745
- /* f2 */ {f2, f2, f2, f2, f2, f2, f4, f8, c2, c4, c8, f2, f4},
746
- /* f4 */ {f4, f4, f4, f4, f4, f4, f4, f8, c4, c4, c8, f4, f4},
747
- /* f8 */ {f8, f8, f8, f8, f8, f8, f8, f8, c8, c8, c8, f8, f8},
748
- /* c2 */ {c2, c2, c2, c2, c2, c2, c4, c8, c2, c4, c8, c2, c4},
749
- /* c4 */ {c4, c4, c4, c4, c4, c4, c4, c8, c4, c4, c8, c4, c4},
750
- /* c8 */ {c8, c8, c8, c8, c8, c8, c8, c8, c8, c8, c8, c8, c8},
751
- /* b1 */ {u1, i1, i2, i4, i8, f2, f4, f8, c2, c4, c8, b1, bf},
752
- /* bf */ {bf, bf, bf, bf, bf, f4, f4, f8, c4, c4, c8, bf, bf},
753
- };
754
-
755
- } // namespace internal
756
-
757
- /**
758
- * Implements type promotion rules that are consistent with ATen behaviour,
759
- * which in turn is consistent with NumPy's promote_types.
760
- * If half_to_float is set to true, then half and bfloat16 will be promoted to
761
- * float instead
762
- */
763
- inline constexpr ::executorch::aten::ScalarType
764
- promoteTypes(::executorch::aten::ScalarType a, ::executorch::aten::ScalarType b,
765
- bool half_to_float = false) {
766
- // For QInt types, only allow exact match
767
- if (::executorch::runtime::isQIntType(a) && a == b) {
768
- return a;
769
- }
770
- if (::executorch::runtime::isQIntType(a) ||
771
- ::executorch::runtime::isQIntType(b)) {
772
- ET_CHECK_MSG(false, "promoteTypes not valid for quantized dtypes");
773
- }
774
-
775
- // For Bits types, only allow exact match
776
- if (::executorch::runtime::isBitsType(a) && a == b) {
777
- return a;
778
- }
779
- if (::executorch::runtime::isBitsType(a) ||
780
- ::executorch::runtime::isBitsType(b)) {
781
- ET_CHECK_MSG(false, "promoteTypes not valid for bits dtypes");
782
- }
783
-
784
- // For Float8 types, only allow exact match
785
- if (::executorch::runtime::isFloat8Type(a) && a == b) {
786
- return a;
787
- }
788
- if (::executorch::runtime::isFloat8Type(a) ||
789
- ::executorch::runtime::isFloat8Type(b)) {
790
- ET_CHECK_MSG(false, "promoteTypes not valid for float8 dtypes");
791
- }
792
-
793
- // For barebones uint types, only allow exact match
794
- if (::executorch::runtime::isBarebonesUnsignedType(a) && a == b) {
795
- return a;
796
- }
797
- if (::executorch::runtime::isBarebonesUnsignedType(a) ||
798
- ::executorch::runtime::isBarebonesUnsignedType(b)) {
799
- ET_CHECK_MSG(false, "promoteTypes not valid for barebone unsigned dtypes");
800
- }
801
-
802
- auto ix_a = ::executorch::runtime::internal::dtype2index[(int)a];
803
- ET_CHECK(ix_a != -1);
804
- auto ix_b = ::executorch::runtime::internal::dtype2index[(int)b];
805
- ET_CHECK(ix_b != -1);
806
- ::executorch::aten::ScalarType promoted_type =
807
- ::executorch::runtime::internal::promoteTypesLookup[ix_a][ix_b];
808
-
809
- if (half_to_float &&
810
- (promoted_type == ::executorch::aten::ScalarType::Half ||
811
- promoted_type == ::executorch::aten::ScalarType::BFloat16)) {
812
- promoted_type = ::executorch::aten::ScalarType::Float;
813
- }
814
-
815
- return promoted_type;
816
- }
817
-
818
- template <typename T1, typename T2, bool half_to_float = false>
819
- struct promote_types {
820
- private:
821
- static_assert(std::is_same_v<T1, T2> ||
822
- (!is_qint_type<T1>::value && !is_qint_type<T2>::value),
823
- "promote_types not valid for quantized dtypes");
824
- static_assert(std::is_same_v<T1, T2> ||
825
- (!is_bits_type<T1>::value && !is_bits_type<T2>::value),
826
- "promote_types not valid for bits dtypes");
827
- static_assert(std::is_same_v<T1, T2> ||
828
- (!is_float8_type<T1>::value && !is_float8_type<T2>::value),
829
- "promote_types not valid for float8 dtypes");
830
- static_assert(std::is_same_v<T1, T2> ||
831
- (!is_barebones_unsigned_type<T1>::value &&
832
- !is_barebones_unsigned_type<T2>::value),
833
- "promote_types not valid for barebones unsigned dtypes");
834
-
835
- using promoted_type_not_respecting_half_to_float =
836
- typename ScalarTypeToCppType<promoteTypes(
837
- CppTypeToScalarType<T1>::value,
838
- CppTypeToScalarType<T2>::value)>::type;
839
-
840
- public:
841
- using type = std::conditional_t<
842
- half_to_float &&
843
- (std::is_same_v<promoted_type_not_respecting_half_to_float,
844
- typename ScalarTypeToCppType<
845
- ::executorch::aten::ScalarType::Half>::type> ||
846
- std::is_same_v<promoted_type_not_respecting_half_to_float,
847
- typename ScalarTypeToCppType<
848
- ::executorch::aten::ScalarType::BFloat16>::type>),
849
- typename ScalarTypeToCppType<::executorch::aten::ScalarType::Float>::type,
850
- promoted_type_not_respecting_half_to_float>;
851
- };
852
-
853
- //
854
- // Helper macros for switch case macros (see below)
855
- //
856
- // These macros are not meant to be used directly. They provide an easy way to
857
- // generate a switch statement that can handle subsets of ScalarTypes supported
858
- // by ExecuTorch.
859
- //
860
-
861
- #ifdef ET_INTERNAL_CHECK_SELECTIVE_BUILD
862
- #define ET_INTERNAL_SWITCH_CASE(enum_type, CTYPE_ALIAS, ...) \
863
- case enum_type: { \
864
- ET_INTERNAL_CHECK_SELECTIVE_BUILD(enum_type); \
865
- using CTYPE_ALIAS = \
866
- ::executorch::runtime::ScalarTypeToCppType<enum_type>::type; \
867
- return __VA_ARGS__(); \
868
- }
869
- #else
870
- #define ET_INTERNAL_SWITCH_CASE(enum_type, CTYPE_ALIAS, ...) \
871
- case enum_type: { \
872
- using CTYPE_ALIAS = \
873
- ::executorch::runtime::ScalarTypeToCppType<enum_type>::type; \
874
- return __VA_ARGS__(); \
875
- }
876
- #endif
877
-
878
- #define ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, ...) \
879
- [&] { \
880
- const auto &_st = TYPE; \
881
- constexpr const char *et_switch_name = NAME; \
882
- (void)et_switch_name; /* Suppress unused var */ \
883
- switch (_st) { \
884
- __VA_ARGS__ \
885
- default: \
886
- ET_CHECK_MSG(false, "Unhandled dtype %s for %s", \
887
- ::executorch::runtime::toString(_st), et_switch_name); \
888
- } \
889
- }()
890
-
891
- #define ET_INTERNAL_SWITCH_CASE_ALL_TYPES(CTYPE_ALIAS, ...) \
892
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Byte, CTYPE_ALIAS, \
893
- __VA_ARGS__) \
894
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Char, CTYPE_ALIAS, \
895
- __VA_ARGS__) \
896
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Short, CTYPE_ALIAS, \
897
- __VA_ARGS__) \
898
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Int, CTYPE_ALIAS, \
899
- __VA_ARGS__) \
900
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Long, CTYPE_ALIAS, \
901
- __VA_ARGS__) \
902
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Half, CTYPE_ALIAS, \
903
- __VA_ARGS__) \
904
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Float, CTYPE_ALIAS, \
905
- __VA_ARGS__) \
906
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Double, CTYPE_ALIAS, \
907
- __VA_ARGS__) \
908
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexHalf, \
909
- CTYPE_ALIAS, __VA_ARGS__) \
910
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexFloat, \
911
- CTYPE_ALIAS, __VA_ARGS__) \
912
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexDouble, \
913
- CTYPE_ALIAS, __VA_ARGS__) \
914
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, \
915
- __VA_ARGS__) \
916
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QInt8, CTYPE_ALIAS, \
917
- __VA_ARGS__) \
918
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QUInt8, CTYPE_ALIAS, \
919
- __VA_ARGS__) \
920
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QInt32, CTYPE_ALIAS, \
921
- __VA_ARGS__) \
922
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::BFloat16, \
923
- CTYPE_ALIAS, __VA_ARGS__) \
924
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QUInt4x2, \
925
- CTYPE_ALIAS, __VA_ARGS__) \
926
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QUInt2x4, \
927
- CTYPE_ALIAS, __VA_ARGS__) \
928
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bits1x8, \
929
- CTYPE_ALIAS, __VA_ARGS__) \
930
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bits2x4, \
931
- CTYPE_ALIAS, __VA_ARGS__) \
932
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bits4x2, \
933
- CTYPE_ALIAS, __VA_ARGS__) \
934
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bits8, CTYPE_ALIAS, \
935
- __VA_ARGS__) \
936
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bits16, CTYPE_ALIAS, \
937
- __VA_ARGS__)
938
-
939
- #define ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, ...) \
940
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Byte, CTYPE_ALIAS, \
941
- __VA_ARGS__) \
942
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Char, CTYPE_ALIAS, \
943
- __VA_ARGS__) \
944
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Short, CTYPE_ALIAS, \
945
- __VA_ARGS__) \
946
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Int, CTYPE_ALIAS, \
947
- __VA_ARGS__) \
948
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Long, CTYPE_ALIAS, \
949
- __VA_ARGS__) \
950
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Float, CTYPE_ALIAS, \
951
- __VA_ARGS__) \
952
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Double, CTYPE_ALIAS, \
953
- __VA_ARGS__)
954
-
955
- #define ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND(ADDITIONAL, CTYPE_ALIAS, ...) \
956
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
957
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL, \
958
- CTYPE_ALIAS, __VA_ARGS__)
959
-
960
- #define ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND2(ADDITIONAL1, ADDITIONAL2, \
961
- CTYPE_ALIAS, ...) \
962
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
963
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL1, \
964
- CTYPE_ALIAS, __VA_ARGS__) \
965
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL2, \
966
- CTYPE_ALIAS, __VA_ARGS__)
967
-
968
- #define ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND3(ADDITIONAL1, ADDITIONAL2, \
969
- ADDITIONAL3, CTYPE_ALIAS, ...) \
970
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
971
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL1, \
972
- CTYPE_ALIAS, __VA_ARGS__) \
973
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL2, \
974
- CTYPE_ALIAS, __VA_ARGS__) \
975
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL3, \
976
- CTYPE_ALIAS, __VA_ARGS__)
977
-
978
- #define ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, ...) \
979
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Byte, CTYPE_ALIAS, \
980
- __VA_ARGS__) \
981
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Char, CTYPE_ALIAS, \
982
- __VA_ARGS__) \
983
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Short, CTYPE_ALIAS, \
984
- __VA_ARGS__) \
985
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Int, CTYPE_ALIAS, \
986
- __VA_ARGS__) \
987
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Long, CTYPE_ALIAS, \
988
- __VA_ARGS__)
989
-
990
- #define ET_INTERNAL_SWITCH_CASE_INT_TYPES_AND(ADDITIONAL, CTYPE_ALIAS, ...) \
991
- ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
992
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL, \
993
- CTYPE_ALIAS, __VA_ARGS__)
994
-
995
- #define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, ...) \
996
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Double, CTYPE_ALIAS, \
997
- __VA_ARGS__) \
998
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Float, CTYPE_ALIAS, \
999
- __VA_ARGS__)
1000
-
1001
- #define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND(ADDITIONAL, CTYPE_ALIAS, ...) \
1002
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
1003
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL, \
1004
- CTYPE_ALIAS, __VA_ARGS__)
1005
-
1006
- #define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND2(ADDITIONAL1, ADDITIONAL2, \
1007
- CTYPE_ALIAS, ...) \
1008
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND(ADDITIONAL1, CTYPE_ALIAS, \
1009
- __VA_ARGS__) \
1010
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL2, \
1011
- CTYPE_ALIAS, __VA_ARGS__)
1012
-
1013
- #define ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND3( \
1014
- ADDITIONAL1, ADDITIONAL2, ADDITIONAL3, CTYPE_ALIAS, ...) \
1015
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND2(ADDITIONAL1, ADDITIONAL2, \
1016
- CTYPE_ALIAS, __VA_ARGS__) \
1017
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ADDITIONAL3, \
1018
- CTYPE_ALIAS, __VA_ARGS__)
1019
-
1020
- #define ET_INTERNAL_SWITCH_CASE_QINT_TYPES(CTYPE_ALIAS, ...) \
1021
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QInt8, CTYPE_ALIAS, \
1022
- __VA_ARGS__) \
1023
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QUInt8, CTYPE_ALIAS, \
1024
- __VA_ARGS__) \
1025
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QInt32, CTYPE_ALIAS, \
1026
- __VA_ARGS__) \
1027
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QUInt4x2, \
1028
- CTYPE_ALIAS, __VA_ARGS__) \
1029
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::QUInt2x4, \
1030
- CTYPE_ALIAS, __VA_ARGS__)
1031
-
1032
- #define ET_INTERNAL_SWITCH_CASE_COMPLEX_TYPES(CTYPE_ALIAS, ...) \
1033
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexFloat, \
1034
- CTYPE_ALIAS, __VA_ARGS__) \
1035
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexDouble, \
1036
- CTYPE_ALIAS, __VA_ARGS__)
1037
-
1038
- #define ET_INTERNAL_SWITCH_CASE_COMPLEXH_TYPES(CTYPE_ALIAS, ...) \
1039
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexHalf, \
1040
- CTYPE_ALIAS, __VA_ARGS__) \
1041
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexFloat, \
1042
- CTYPE_ALIAS, __VA_ARGS__) \
1043
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::ComplexDouble, \
1044
- CTYPE_ALIAS, __VA_ARGS__)
1045
-
1046
- #define ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_TYPES(CTYPE_ALIAS, ...) \
1047
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, \
1048
- __VA_ARGS__) \
1049
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Long, CTYPE_ALIAS, \
1050
- __VA_ARGS__) \
1051
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Double, CTYPE_ALIAS, \
1052
- __VA_ARGS__)
1053
-
1054
- #define ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_REAL_TYPES(CTYPE_ALIAS, ...) \
1055
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Long, CTYPE_ALIAS, \
1056
- __VA_ARGS__) \
1057
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Double, CTYPE_ALIAS, \
1058
- __VA_ARGS__)
1059
-
1060
- #define ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_INTB_TYPES(CTYPE_ALIAS, ...) \
1061
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, \
1062
- __VA_ARGS__) \
1063
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Long, CTYPE_ALIAS, \
1064
- __VA_ARGS__)
1065
-
1066
- #define ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_FLOATB_TYPES(CTYPE_ALIAS, ...) \
1067
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Bool, CTYPE_ALIAS, \
1068
- __VA_ARGS__) \
1069
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::Double, CTYPE_ALIAS, \
1070
- __VA_ARGS__)
1071
-
1072
- //
1073
- // Switch case macros
1074
- //
1075
- // These macros provide an easy way to generate switch statements that apply a
1076
- // common lambda function to subsets of ScalarTypes supported by ExecuTorch.
1077
- // The lambda function can type specialize to the ctype associated with the
1078
- // ScalarType being handled through an alias passed as the CTYPE_ALIAS argument.
1079
- //
1080
- // Arguments:
1081
- // - ADDITIONAL: Additional ScalarType case to add
1082
- // - TYPE: The ScalarType to handle through the switch statement
1083
- // - CONTEXT: The KernelRuntimeContext instance used for error handling, etc.
1084
- // - NAME: A name for this operation which will be used in error messages
1085
- // - CTYPE_ALIAS: A typedef for the ctype associated with the ScalarType.
1086
- // - [&](){...}: A lambda function to be applied to each ScalarType case
1087
- //
1088
- // An example usage is:
1089
- //
1090
- // ET_SWITCH_REAL_TYPES(input.scalar_type(), "example", CTYPE, [&]() {
1091
- // output.mutable_data_ptr<CTYPE>[0] = input.const_data_ptr<CTYPE>[0];
1092
- // });
1093
- //
1094
- // Note that these can be nested as well:
1095
- //
1096
- // ET_SWITCH_REAL_TYPES(input.scalar_type(), "example", CTYPE_IN, [&]() {
1097
- // ET_SWITCH_REAL_TYPES(output.scalar_type(), "example", CTYPE_OUT, [&]() {
1098
- // output.mutable_data_ptr<CTYPE_OUT>[0] =
1099
- // input.const_data_ptr<CTYPE_IN>[0];
1100
- // });
1101
- // });
1102
- //
1103
- // These macros are adapted from Dispatch.h in the ATen library. The primary
1104
- // difference is that the CTYPE_ALIAS argument is exposed to users, which is
1105
- // used to alias the ctype associated with the ScalarType that is being handled.
1106
- //
1107
-
1108
- #define ET_SWITCH_ALL_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1109
- ET_INTERNAL_SWITCH( \
1110
- TYPE, CONTEXT, NAME, \
1111
- ET_INTERNAL_SWITCH_CASE_ALL_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1112
-
1113
- #define ET_SWITCH_REAL_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1114
- ET_INTERNAL_SWITCH( \
1115
- TYPE, CONTEXT, NAME, \
1116
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1117
-
1118
- #define ET_SWITCH_REAL_TYPES_AND(ADDITIONAL, TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1119
- ...) \
1120
- ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, \
1121
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND( \
1122
- ADDITIONAL, CTYPE_ALIAS, __VA_ARGS__))
1123
-
1124
- #define ET_SWITCH_REAL_TYPES_AND2(ADDITIONAL1, ADDITIONAL2, TYPE, CONTEXT, \
1125
- NAME, CTYPE_ALIAS, ...) \
1126
- ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, \
1127
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND2( \
1128
- ADDITIONAL1, ADDITIONAL2, CTYPE_ALIAS, __VA_ARGS__))
1129
-
1130
- #define ET_SWITCH_REAL_TYPES_AND3(ADDITIONAL1, ADDITIONAL2, ADDITIONAL3, TYPE, \
1131
- CONTEXT, NAME, CTYPE_ALIAS, ...) \
1132
- ET_INTERNAL_SWITCH( \
1133
- TYPE, CONTEXT, NAME, \
1134
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND3( \
1135
- ADDITIONAL1, ADDITIONAL2, ADDITIONAL3, CTYPE_ALIAS, __VA_ARGS__))
1136
-
1137
- #define ET_SWITCH_REALH_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1138
- ET_SWITCH_REAL_TYPES_AND(Half, TYPE, CONTEXT, NAME, CTYPE_ALIAS, __VA_ARGS__)
1139
-
1140
- #define ET_SWITCH_REALHBF16_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1141
- ET_SWITCH_REAL_TYPES_AND2(Half, BFloat16, TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1142
- __VA_ARGS__)
1143
-
1144
- #define ET_SWITCH_REALB_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1145
- ET_SWITCH_REAL_TYPES_AND(Bool, TYPE, CONTEXT, NAME, CTYPE_ALIAS, __VA_ARGS__)
1146
-
1147
- #define ET_SWITCH_REALHB_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1148
- ET_SWITCH_REAL_TYPES_AND2(Half, Bool, TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1149
- __VA_ARGS__)
1150
-
1151
- #define ET_SWITCH_REALHBBF16_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1152
- ET_SWITCH_REAL_TYPES_AND3(Half, Bool, BFloat16, TYPE, CONTEXT, NAME, \
1153
- CTYPE_ALIAS, __VA_ARGS__)
1154
-
1155
- #define ET_SWITCH_REALHBBF16_AND_UINT_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1156
- ...) \
1157
- ET_INTERNAL_SWITCH( \
1158
- TYPE, CONTEXT, NAME, \
1159
- ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND3(Half, Bool, BFloat16, \
1160
- CTYPE_ALIAS, __VA_ARGS__) \
1161
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::UInt16, \
1162
- CTYPE_ALIAS, __VA_ARGS__) \
1163
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::UInt32, \
1164
- CTYPE_ALIAS, __VA_ARGS__) \
1165
- ET_INTERNAL_SWITCH_CASE( \
1166
- ::executorch::aten::ScalarType::UInt64, CTYPE_ALIAS, \
1167
- __VA_ARGS__))
1168
-
1169
- #define ET_SWITCH_INT_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1170
- ET_INTERNAL_SWITCH( \
1171
- TYPE, CONTEXT, NAME, \
1172
- ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1173
-
1174
- #define ET_SWITCH_INT_TYPES_AND(ADDITIONAL, TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1175
- ...) \
1176
- ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, \
1177
- ET_INTERNAL_SWITCH_CASE_INT_TYPES_AND( \
1178
- ADDITIONAL, CTYPE_ALIAS, __VA_ARGS__))
1179
-
1180
- #define ET_SWITCH_FLOAT_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1181
- ET_INTERNAL_SWITCH( \
1182
- TYPE, CONTEXT, NAME, \
1183
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1184
-
1185
- #define ET_SWITCH_FLOAT_TYPES_AND(ADDITIONAL, TYPE, CONTEXT, NAME, \
1186
- CTYPE_ALIAS, ...) \
1187
- ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, \
1188
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND( \
1189
- ADDITIONAL, CTYPE_ALIAS, __VA_ARGS__))
1190
-
1191
- #define ET_SWITCH_FLOAT_TYPES_AND2(ADDITIONAL1, ADDITIONAL2, TYPE, CONTEXT, \
1192
- NAME, CTYPE_ALIAS, ...) \
1193
- ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, \
1194
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND2( \
1195
- ADDITIONAL1, ADDITIONAL2, CTYPE_ALIAS, __VA_ARGS__))
1196
-
1197
- #define ET_SWITCH_FLOAT_TYPES_AND3(ADDITIONAL1, ADDITIONAL2, ADDITIONAL3, \
1198
- TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1199
- ET_INTERNAL_SWITCH( \
1200
- TYPE, CONTEXT, NAME, \
1201
- ET_INTERNAL_SWITCH_CASE_FLOAT_TYPES_AND3( \
1202
- ADDITIONAL1, ADDITIONAL2, ADDITIONAL3, CTYPE_ALIAS, __VA_ARGS__))
1203
-
1204
- #define ET_SWITCH_FLOATH_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1205
- ET_SWITCH_FLOAT_TYPES_AND(Half, TYPE, CONTEXT, NAME, CTYPE_ALIAS, __VA_ARGS__)
1206
-
1207
- #define ET_SWITCH_FLOATHBF16_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1208
- ET_SWITCH_FLOAT_TYPES_AND2(Half, BFloat16, TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1209
- __VA_ARGS__)
1210
-
1211
- #define ET_SWITCH_FLOATHBF16_TYPES_AND(ADDITIONAL, TYPE, CONTEXT, NAME, \
1212
- CTYPE_ALIAS, ...) \
1213
- ET_SWITCH_FLOAT_TYPES_AND3(Half, BFloat16, ADDITIONAL, TYPE, CONTEXT, NAME, \
1214
- CTYPE_ALIAS, __VA_ARGS__)
1215
-
1216
- #define ET_SWITCH_QINT_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1217
- ET_INTERNAL_SWITCH( \
1218
- TYPE, CONTEXT, NAME, \
1219
- ET_INTERNAL_SWITCH_CASE_QINT_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1220
-
1221
- #define ET_SWITCH_COMPLEX_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1222
- ET_INTERNAL_SWITCH( \
1223
- TYPE, CONTEXT, NAME, \
1224
- ET_INTERNAL_SWITCH_CASE_COMPLEX_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1225
-
1226
- #define ET_SWITCH_COMPLEXH_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1227
- ET_INTERNAL_SWITCH( \
1228
- TYPE, CONTEXT, NAME, \
1229
- ET_INTERNAL_SWITCH_CASE_COMPLEXH_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1230
-
1231
- #define ET_SWITCH_SCALAR_OBJ_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1232
- ET_INTERNAL_SWITCH( \
1233
- TYPE, CONTEXT, NAME, \
1234
- ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1235
-
1236
- #define ET_SWITCH_SCALAR_OBJ_REAL_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1237
- ET_INTERNAL_SWITCH( \
1238
- TYPE, CONTEXT, NAME, \
1239
- ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1240
-
1241
- #define ET_SWITCH_SCALAR_OBJ_INTB_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1242
- ET_INTERNAL_SWITCH( \
1243
- TYPE, CONTEXT, NAME, \
1244
- ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_INTB_TYPES(CTYPE_ALIAS, __VA_ARGS__))
1245
-
1246
- #define ET_SWITCH_SCALAR_OBJ_FLOATB_TYPES(TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1247
- ...) \
1248
- ET_INTERNAL_SWITCH(TYPE, CONTEXT, NAME, \
1249
- ET_INTERNAL_SWITCH_CASE_SCALAR_OBJ_FLOATB_TYPES( \
1250
- CTYPE_ALIAS, __VA_ARGS__))
1251
-
1252
- #define ET_SWITCH_TWO_TYPES(T1, T2, TYPE, CONTEXT, NAME, CTYPE_ALIAS, ...) \
1253
- ET_INTERNAL_SWITCH( \
1254
- TYPE, CONTEXT, NAME, \
1255
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::T1, CTYPE_ALIAS, \
1256
- __VA_ARGS__) \
1257
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::T2, \
1258
- CTYPE_ALIAS, __VA_ARGS__))
1259
-
1260
- #define ET_SWITCH_THREE_TYPES(T1, T2, T3, TYPE, CONTEXT, NAME, CTYPE_ALIAS, \
1261
- ...) \
1262
- ET_INTERNAL_SWITCH( \
1263
- TYPE, CONTEXT, NAME, \
1264
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::T1, CTYPE_ALIAS, \
1265
- __VA_ARGS__) \
1266
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::T2, \
1267
- CTYPE_ALIAS, __VA_ARGS__) \
1268
- ET_INTERNAL_SWITCH_CASE(::executorch::aten::ScalarType::T3, \
1269
- CTYPE_ALIAS, __VA_ARGS__))
1270
-
1271
- } // namespace runtime
1272
- } // namespace executorch
1273
-
1274
- namespace executorch {
1275
- namespace aten {
1276
- #ifdef USE_ATEN_LIB
1277
- using ::at::elementSize;
1278
- #else // USE_ATEN_LIB
1279
- using ::executorch::runtime::elementSize;
1280
- #endif // USE_ATEN_LIB
1281
- } // namespace aten
1282
- } // namespace executorch
1283
-
1284
- namespace torch {
1285
- namespace executor {
1286
- // TODO(T197294990): Remove these deprecated aliases once all users have moved
1287
- // to the new `::executorch` namespaces.
1288
- using ::executorch::runtime::can_cast;
1289
- using ::executorch::runtime::canCast;
1290
- using ::executorch::runtime::convert;
1291
- using ::executorch::runtime::CppTypeToScalarType;
1292
- using ::executorch::runtime::elementSize;
1293
- using ::executorch::runtime::is_barebones_unsigned_type;
1294
- using ::executorch::runtime::is_bits_type;
1295
- using ::executorch::runtime::is_complex_type;
1296
- using ::executorch::runtime::is_float8_type;
1297
- using ::executorch::runtime::is_integral_type;
1298
- using ::executorch::runtime::is_qint_type;
1299
- using ::executorch::runtime::isBitsType;
1300
- using ::executorch::runtime::isComplexType;
1301
- using ::executorch::runtime::isFloatingType;
1302
- using ::executorch::runtime::isIntegralType;
1303
- using ::executorch::runtime::isQIntType;
1304
- using ::executorch::runtime::isRealHBType;
1305
- using ::executorch::runtime::isRealHType;
1306
- using ::executorch::runtime::isRealType;
1307
- using ::executorch::runtime::isValid;
1308
- using ::executorch::runtime::promote_types;
1309
- using ::executorch::runtime::promoteTypes;
1310
- using ::executorch::runtime::ScalarTypeToCppType;
1311
- using ::executorch::runtime::toString;
1312
- #if !defined(USE_ATEN_LIB)
1313
- using ::executorch::runtime::is_floating_point;
1314
- using ::executorch::runtime::is_reduced_floating_point;
1315
- #endif
1316
- namespace internal {
1317
- using ::executorch::runtime::internal::B1;
1318
- using ::executorch::runtime::internal::C2;
1319
- using ::executorch::runtime::internal::C4;
1320
- using ::executorch::runtime::internal::C8;
1321
- using ::executorch::runtime::internal::F2;
1322
- using ::executorch::runtime::internal::F4;
1323
- using ::executorch::runtime::internal::F8;
1324
- using ::executorch::runtime::internal::I1;
1325
- using ::executorch::runtime::internal::I2;
1326
- using ::executorch::runtime::internal::I4;
1327
- using ::executorch::runtime::internal::I8;
1328
- using ::executorch::runtime::internal::U1;
1329
- } // namespace internal
1330
- } // namespace executor
1331
- } // namespace torch