react-native-executorch 0.4.10 → 0.5.0-nightly-6f4dd53-20251211

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 (881) hide show
  1. package/README.md +77 -71
  2. package/android/CMakeLists.txt +29 -0
  3. package/android/build.gradle +76 -13
  4. package/android/libs/classes.jar +0 -0
  5. package/android/src/main/cpp/CMakeLists.txt +109 -0
  6. package/android/src/main/cpp/ETInstallerModule.cpp +76 -0
  7. package/android/src/main/cpp/ETInstallerModule.h +43 -0
  8. package/android/src/main/java/com/swmansion/rnexecutorch/ETInstaller.kt +66 -0
  9. package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +6 -124
  10. package/common/ada/ada.cpp +17406 -0
  11. package/common/ada/ada.h +10274 -0
  12. package/common/pfft/pfft.c +2205 -0
  13. package/common/pfft/pfft.h +185 -0
  14. package/common/rnexecutorch/Log.h +489 -0
  15. package/common/rnexecutorch/RnExecutorchInstaller.cpp +113 -0
  16. package/common/rnexecutorch/RnExecutorchInstaller.h +87 -0
  17. package/common/rnexecutorch/TokenizerModule.cpp +52 -0
  18. package/common/rnexecutorch/TokenizerModule.h +29 -0
  19. package/common/rnexecutorch/data_processing/FFT.cpp +21 -0
  20. package/common/rnexecutorch/data_processing/FFT.h +23 -0
  21. package/common/rnexecutorch/data_processing/FileUtils.h +30 -0
  22. package/common/rnexecutorch/data_processing/ImageProcessing.cpp +240 -0
  23. package/common/rnexecutorch/data_processing/ImageProcessing.h +55 -0
  24. package/common/rnexecutorch/data_processing/Numerical.cpp +111 -0
  25. package/common/rnexecutorch/data_processing/Numerical.h +77 -0
  26. package/common/rnexecutorch/data_processing/base64.cpp +110 -0
  27. package/common/rnexecutorch/data_processing/base64.h +46 -0
  28. package/common/rnexecutorch/data_processing/dsp.cpp +19 -0
  29. package/common/rnexecutorch/data_processing/dsp.h +12 -0
  30. package/common/rnexecutorch/data_processing/gzip.cpp +47 -0
  31. package/common/rnexecutorch/data_processing/gzip.h +7 -0
  32. package/common/rnexecutorch/host_objects/JSTensorViewIn.h +12 -0
  33. package/common/rnexecutorch/host_objects/JSTensorViewOut.h +22 -0
  34. package/common/rnexecutorch/host_objects/JsiConversions.h +418 -0
  35. package/common/rnexecutorch/host_objects/ModelHostObject.h +313 -0
  36. package/common/rnexecutorch/jsi/JsiHostObject.cpp +108 -0
  37. package/common/rnexecutorch/jsi/JsiHostObject.h +87 -0
  38. package/common/rnexecutorch/jsi/OwningArrayBuffer.h +57 -0
  39. package/common/rnexecutorch/jsi/Promise.cpp +20 -0
  40. package/common/rnexecutorch/jsi/Promise.h +69 -0
  41. package/common/rnexecutorch/jsi/RuntimeAwareCache.h +58 -0
  42. package/common/rnexecutorch/jsi/RuntimeLifecycleMonitor.cpp +53 -0
  43. package/common/rnexecutorch/jsi/RuntimeLifecycleMonitor.h +35 -0
  44. package/common/rnexecutorch/metaprogramming/ConstructorHelpers.h +133 -0
  45. package/common/rnexecutorch/metaprogramming/FunctionHelpers.h +50 -0
  46. package/common/rnexecutorch/metaprogramming/TypeConcepts.h +37 -0
  47. package/common/rnexecutorch/models/BaseModel.cpp +183 -0
  48. package/common/rnexecutorch/models/BaseModel.h +61 -0
  49. package/common/rnexecutorch/models/classification/Classification.cpp +72 -0
  50. package/common/rnexecutorch/models/classification/Classification.h +31 -0
  51. package/{ios/RnExecutorch/models/classification/Constants.mm → common/rnexecutorch/models/classification/Constants.h} +7 -2
  52. package/common/rnexecutorch/models/embeddings/BaseEmbeddings.cpp +19 -0
  53. package/common/rnexecutorch/models/embeddings/BaseEmbeddings.h +17 -0
  54. package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.cpp +45 -0
  55. package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.h +28 -0
  56. package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.cpp +60 -0
  57. package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.h +31 -0
  58. package/{ios/RnExecutorch/models/image_segmentation/Constants.mm → common/rnexecutorch/models/image_segmentation/Constants.h} +7 -2
  59. package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.cpp +168 -0
  60. package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.h +50 -0
  61. package/common/rnexecutorch/models/llm/LLM.cpp +98 -0
  62. package/common/rnexecutorch/models/llm/LLM.h +38 -0
  63. package/{ios/RnExecutorch/utils/Constants.mm → common/rnexecutorch/models/object_detection/Constants.h} +9 -2
  64. package/common/rnexecutorch/models/object_detection/ObjectDetection.cpp +82 -0
  65. package/common/rnexecutorch/models/object_detection/ObjectDetection.h +37 -0
  66. package/common/rnexecutorch/models/object_detection/Types.h +13 -0
  67. package/{ios/RnExecutorch/utils/ObjectDetectionUtils.mm → common/rnexecutorch/models/object_detection/Utils.cpp} +17 -35
  68. package/common/rnexecutorch/models/object_detection/Utils.h +11 -0
  69. package/common/rnexecutorch/models/ocr/CTCLabelConverter.cpp +88 -0
  70. package/common/rnexecutorch/models/ocr/CTCLabelConverter.h +29 -0
  71. package/common/rnexecutorch/models/ocr/Constants.h +41 -0
  72. package/common/rnexecutorch/models/ocr/Detector.cpp +100 -0
  73. package/common/rnexecutorch/models/ocr/Detector.h +30 -0
  74. package/common/rnexecutorch/models/ocr/OCR.cpp +53 -0
  75. package/common/rnexecutorch/models/ocr/OCR.h +44 -0
  76. package/common/rnexecutorch/models/ocr/RecognitionHandler.cpp +108 -0
  77. package/common/rnexecutorch/models/ocr/RecognitionHandler.h +42 -0
  78. package/common/rnexecutorch/models/ocr/Recognizer.cpp +80 -0
  79. package/common/rnexecutorch/models/ocr/Recognizer.h +36 -0
  80. package/common/rnexecutorch/models/ocr/Types.h +35 -0
  81. package/common/rnexecutorch/models/ocr/utils/DetectorUtils.cpp +710 -0
  82. package/common/rnexecutorch/models/ocr/utils/DetectorUtils.h +81 -0
  83. package/common/rnexecutorch/models/ocr/utils/RecognitionHandlerUtils.cpp +159 -0
  84. package/common/rnexecutorch/models/ocr/utils/RecognitionHandlerUtils.h +72 -0
  85. package/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp +204 -0
  86. package/common/rnexecutorch/models/ocr/utils/RecognizerUtils.h +71 -0
  87. package/common/rnexecutorch/models/speech_to_text/SpeechToText.cpp +125 -0
  88. package/common/rnexecutorch/models/speech_to_text/SpeechToText.h +57 -0
  89. package/common/rnexecutorch/models/speech_to_text/asr/ASR.cpp +303 -0
  90. package/common/rnexecutorch/models/speech_to_text/asr/ASR.h +61 -0
  91. package/common/rnexecutorch/models/speech_to_text/stream/HypothesisBuffer.cpp +82 -0
  92. package/common/rnexecutorch/models/speech_to_text/stream/HypothesisBuffer.h +25 -0
  93. package/common/rnexecutorch/models/speech_to_text/stream/OnlineASRProcessor.cpp +99 -0
  94. package/common/rnexecutorch/models/speech_to_text/stream/OnlineASRProcessor.h +33 -0
  95. package/common/rnexecutorch/models/speech_to_text/types/DecodingOptions.h +15 -0
  96. package/common/rnexecutorch/models/speech_to_text/types/GenerationResult.h +12 -0
  97. package/common/rnexecutorch/models/speech_to_text/types/ProcessResult.h +12 -0
  98. package/common/rnexecutorch/models/speech_to_text/types/Segment.h +14 -0
  99. package/common/rnexecutorch/models/speech_to_text/types/Word.h +13 -0
  100. package/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp +55 -0
  101. package/common/rnexecutorch/models/style_transfer/StyleTransfer.h +35 -0
  102. package/common/rnexecutorch/models/text_to_image/Constants.h +9 -0
  103. package/common/rnexecutorch/models/text_to_image/Decoder.cpp +32 -0
  104. package/common/rnexecutorch/models/text_to_image/Decoder.h +24 -0
  105. package/common/rnexecutorch/models/text_to_image/Encoder.cpp +44 -0
  106. package/common/rnexecutorch/models/text_to_image/Encoder.h +32 -0
  107. package/common/rnexecutorch/models/text_to_image/Scheduler.cpp +152 -0
  108. package/common/rnexecutorch/models/text_to_image/Scheduler.h +41 -0
  109. package/common/rnexecutorch/models/text_to_image/TextToImage.cpp +141 -0
  110. package/common/rnexecutorch/models/text_to_image/TextToImage.h +64 -0
  111. package/common/rnexecutorch/models/text_to_image/UNet.cpp +38 -0
  112. package/common/rnexecutorch/models/text_to_image/UNet.h +28 -0
  113. package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.cpp +93 -0
  114. package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.h +49 -0
  115. package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.cpp +180 -0
  116. package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.h +85 -0
  117. package/common/rnexecutorch/models/voice_activity_detection/Constants.h +27 -0
  118. package/common/rnexecutorch/models/voice_activity_detection/Types.h +12 -0
  119. package/common/rnexecutorch/models/voice_activity_detection/Utils.cpp +15 -0
  120. package/common/rnexecutorch/models/voice_activity_detection/Utils.h +13 -0
  121. package/common/rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.cpp +160 -0
  122. package/common/rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.h +36 -0
  123. package/common/rnexecutorch/tests/CMakeLists.txt +30 -0
  124. package/common/rnexecutorch/tests/LogTest.cpp +530 -0
  125. package/common/rnexecutorch/tests/NumericalTest.cpp +110 -0
  126. package/common/rnexecutorch/tests/README.md +37 -0
  127. package/common/rnexecutorch/threads/GlobalThreadPool.h +84 -0
  128. package/common/rnexecutorch/threads/HighPerformanceThreadPool.h +364 -0
  129. package/common/rnexecutorch/threads/utils/ThreadUtils.h +29 -0
  130. package/common/runner/arange_util.cpp +44 -0
  131. package/common/runner/arange_util.h +37 -0
  132. package/common/runner/constants.h +28 -0
  133. package/common/runner/io_manager.h +240 -0
  134. package/common/runner/irunner.h +119 -0
  135. package/common/runner/kernel_includes.h +23 -0
  136. package/common/runner/runner.cpp +369 -0
  137. package/common/runner/runner.h +85 -0
  138. package/common/runner/sampler.cpp +201 -0
  139. package/common/runner/sampler.h +67 -0
  140. package/common/runner/stats.h +161 -0
  141. package/common/runner/text_decoder_runner.cpp +79 -0
  142. package/common/runner/text_decoder_runner.h +126 -0
  143. package/common/runner/text_prefiller.cpp +125 -0
  144. package/common/runner/text_prefiller.h +85 -0
  145. package/common/runner/text_token_generator.h +205 -0
  146. package/common/runner/util.h +153 -0
  147. package/ios/RnExecutorch/ETInstaller.h +8 -0
  148. package/ios/RnExecutorch/ETInstaller.mm +56 -0
  149. package/ios/RnExecutorch.xcodeproj/project.pbxproj +73 -23
  150. package/lib/module/Error.js +3 -0
  151. package/lib/module/Error.js.map +1 -1
  152. package/lib/module/common/Logger.js +23 -0
  153. package/lib/module/common/Logger.js.map +1 -0
  154. package/lib/module/constants/directories.js +1 -1
  155. package/lib/module/constants/directories.js.map +1 -1
  156. package/lib/module/constants/llmDefaults.js +8 -0
  157. package/lib/module/constants/llmDefaults.js.map +1 -1
  158. package/lib/module/constants/modelUrls.js +356 -84
  159. package/lib/module/constants/modelUrls.js.map +1 -1
  160. package/lib/module/constants/ocr/models.js +181 -286
  161. package/lib/module/constants/ocr/models.js.map +1 -1
  162. package/lib/module/constants/ocr/symbols.js +66 -65
  163. package/lib/module/constants/ocr/symbols.js.map +1 -1
  164. package/lib/module/controllers/LLMController.js +53 -23
  165. package/lib/module/controllers/LLMController.js.map +1 -1
  166. package/lib/module/controllers/OCRController.js +17 -10
  167. package/lib/module/controllers/OCRController.js.map +1 -1
  168. package/lib/module/controllers/VerticalOCRController.js +17 -10
  169. package/lib/module/controllers/VerticalOCRController.js.map +1 -1
  170. package/lib/module/hooks/computer_vision/useClassification.js +4 -4
  171. package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
  172. package/lib/module/hooks/computer_vision/useImageEmbeddings.js +13 -0
  173. package/lib/module/hooks/computer_vision/useImageEmbeddings.js.map +1 -0
  174. package/lib/module/hooks/computer_vision/useImageSegmentation.js +2 -2
  175. package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -1
  176. package/lib/module/hooks/computer_vision/useOCR.js +16 -17
  177. package/lib/module/hooks/computer_vision/useOCR.js.map +1 -1
  178. package/lib/module/hooks/computer_vision/useObjectDetection.js +3 -3
  179. package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
  180. package/lib/module/hooks/computer_vision/useStyleTransfer.js +3 -3
  181. package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
  182. package/lib/module/hooks/computer_vision/useTextToImage.js +57 -0
  183. package/lib/module/hooks/computer_vision/useTextToImage.js.map +1 -0
  184. package/lib/module/hooks/computer_vision/useVerticalOCR.js +18 -19
  185. package/lib/module/hooks/computer_vision/useVerticalOCR.js.map +1 -1
  186. package/lib/module/hooks/general/useExecutorchModule.js +1 -1
  187. package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
  188. package/lib/module/hooks/natural_language_processing/useLLM.js +30 -29
  189. package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
  190. package/lib/module/hooks/natural_language_processing/useSpeechToText.js +72 -33
  191. package/lib/module/hooks/natural_language_processing/useSpeechToText.js.map +1 -1
  192. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +2 -3
  193. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -1
  194. package/lib/module/hooks/natural_language_processing/useTokenizer.js +19 -18
  195. package/lib/module/hooks/natural_language_processing/useTokenizer.js.map +1 -1
  196. package/lib/module/hooks/natural_language_processing/useVAD.js +13 -0
  197. package/lib/module/hooks/natural_language_processing/useVAD.js.map +1 -0
  198. package/lib/module/hooks/useModule.js +13 -9
  199. package/lib/module/hooks/useModule.js.map +1 -1
  200. package/lib/module/index.js +21 -3
  201. package/lib/module/index.js.map +1 -1
  202. package/lib/module/modules/BaseModule.js +9 -14
  203. package/lib/module/modules/BaseModule.js.map +1 -1
  204. package/lib/module/modules/computer_vision/ClassificationModule.js +11 -6
  205. package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
  206. package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js +19 -0
  207. package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js.map +1 -0
  208. package/lib/module/modules/computer_vision/ImageSegmentationModule.js +20 -18
  209. package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -1
  210. package/lib/module/modules/computer_vision/OCRModule.js +13 -10
  211. package/lib/module/modules/computer_vision/OCRModule.js.map +1 -1
  212. package/lib/module/modules/computer_vision/ObjectDetectionModule.js +11 -6
  213. package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
  214. package/lib/module/modules/computer_vision/StyleTransferModule.js +11 -6
  215. package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
  216. package/lib/module/modules/computer_vision/TextToImageModule.js +48 -0
  217. package/lib/module/modules/computer_vision/TextToImageModule.js.map +1 -0
  218. package/lib/module/modules/computer_vision/VerticalOCRModule.js +15 -10
  219. package/lib/module/modules/computer_vision/VerticalOCRModule.js.map +1 -1
  220. package/lib/module/modules/general/ExecutorchModule.js +8 -34
  221. package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
  222. package/lib/module/modules/natural_language_processing/LLMModule.js +25 -24
  223. package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
  224. package/lib/module/modules/natural_language_processing/SpeechToTextModule.js +109 -27
  225. package/lib/module/modules/natural_language_processing/SpeechToTextModule.js.map +1 -1
  226. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +13 -6
  227. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -1
  228. package/lib/module/modules/natural_language_processing/TokenizerModule.js +20 -14
  229. package/lib/module/modules/natural_language_processing/TokenizerModule.js.map +1 -1
  230. package/lib/module/modules/natural_language_processing/VADModule.js +19 -0
  231. package/lib/module/modules/natural_language_processing/VADModule.js.map +1 -0
  232. package/lib/module/native/NativeETInstaller.js +5 -0
  233. package/lib/module/native/NativeETInstaller.js.map +1 -0
  234. package/lib/module/native/RnExecutorchModules.js +2 -12
  235. package/lib/module/native/RnExecutorchModules.js.map +1 -1
  236. package/lib/module/types/common.js +25 -8
  237. package/lib/module/types/common.js.map +1 -1
  238. package/lib/module/types/llm.js.map +1 -1
  239. package/lib/module/types/stt.js +1 -79
  240. package/lib/module/types/stt.js.map +1 -1
  241. package/lib/module/types/vad.js +2 -0
  242. package/lib/module/types/vad.js.map +1 -0
  243. package/lib/module/utils/ResourceFetcher.js +275 -114
  244. package/lib/module/utils/ResourceFetcher.js.map +1 -1
  245. package/lib/module/utils/ResourceFetcherUtils.js +155 -0
  246. package/lib/module/utils/ResourceFetcherUtils.js.map +1 -0
  247. package/lib/module/utils/llm.js +41 -1
  248. package/lib/module/utils/llm.js.map +1 -1
  249. package/lib/typescript/Error.d.ts +3 -0
  250. package/lib/typescript/Error.d.ts.map +1 -1
  251. package/lib/typescript/common/Logger.d.ts +9 -0
  252. package/lib/typescript/common/Logger.d.ts.map +1 -0
  253. package/lib/typescript/constants/llmDefaults.d.ts +1 -0
  254. package/lib/typescript/constants/llmDefaults.d.ts.map +1 -1
  255. package/lib/typescript/constants/modelUrls.d.ts +263 -79
  256. package/lib/typescript/constants/modelUrls.d.ts.map +1 -1
  257. package/lib/typescript/constants/ocr/models.d.ts +882 -284
  258. package/lib/typescript/constants/ocr/models.d.ts.map +1 -1
  259. package/lib/typescript/constants/ocr/symbols.d.ts +1 -1
  260. package/lib/typescript/constants/ocr/symbols.d.ts.map +1 -1
  261. package/lib/typescript/controllers/LLMController.d.ts +8 -7
  262. package/lib/typescript/controllers/LLMController.d.ts.map +1 -1
  263. package/lib/typescript/controllers/OCRController.d.ts +5 -6
  264. package/lib/typescript/controllers/OCRController.d.ts.map +1 -1
  265. package/lib/typescript/controllers/VerticalOCRController.d.ts +5 -6
  266. package/lib/typescript/controllers/VerticalOCRController.d.ts.map +1 -1
  267. package/lib/typescript/hooks/computer_vision/useClassification.d.ts +8 -6
  268. package/lib/typescript/hooks/computer_vision/useClassification.d.ts.map +1 -1
  269. package/lib/typescript/hooks/computer_vision/useImageEmbeddings.d.ts +16 -0
  270. package/lib/typescript/hooks/computer_vision/useImageEmbeddings.d.ts.map +1 -0
  271. package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts +5 -3
  272. package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts.map +1 -1
  273. package/lib/typescript/hooks/computer_vision/useOCR.d.ts +5 -5
  274. package/lib/typescript/hooks/computer_vision/useOCR.d.ts.map +1 -1
  275. package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts +5 -3
  276. package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts.map +1 -1
  277. package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts +5 -3
  278. package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts.map +1 -1
  279. package/lib/typescript/hooks/computer_vision/useTextToImage.d.ts +22 -0
  280. package/lib/typescript/hooks/computer_vision/useTextToImage.d.ts.map +1 -0
  281. package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts +4 -6
  282. package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts.map +1 -1
  283. package/lib/typescript/hooks/general/useExecutorchModule.d.ts +1 -1
  284. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts +6 -4
  285. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
  286. package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts +15 -22
  287. package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts.map +1 -1
  288. package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts +9 -5
  289. package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts.map +1 -1
  290. package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts +6 -4
  291. package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts.map +1 -1
  292. package/lib/typescript/hooks/natural_language_processing/useVAD.d.ts +16 -0
  293. package/lib/typescript/hooks/natural_language_processing/useVAD.d.ts.map +1 -0
  294. package/lib/typescript/hooks/useModule.d.ts +8 -5
  295. package/lib/typescript/hooks/useModule.d.ts.map +1 -1
  296. package/lib/typescript/index.d.ts +26 -3
  297. package/lib/typescript/index.d.ts.map +1 -1
  298. package/lib/typescript/modules/BaseModule.d.ts +7 -6
  299. package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
  300. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +4 -4
  301. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
  302. package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts +9 -0
  303. package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts.map +1 -0
  304. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +7 -27
  305. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -1
  306. package/lib/typescript/modules/computer_vision/OCRModule.d.ts +8 -7
  307. package/lib/typescript/modules/computer_vision/OCRModule.d.ts.map +1 -1
  308. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +5 -3
  309. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
  310. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +4 -3
  311. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
  312. package/lib/typescript/modules/computer_vision/TextToImageModule.d.ts +16 -0
  313. package/lib/typescript/modules/computer_vision/TextToImageModule.d.ts.map +1 -0
  314. package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts +7 -8
  315. package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts.map +1 -1
  316. package/lib/typescript/modules/general/ExecutorchModule.d.ts +4 -7
  317. package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
  318. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +19 -17
  319. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
  320. package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts +17 -13
  321. package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts.map +1 -1
  322. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +5 -3
  323. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -1
  324. package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts +10 -9
  325. package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts.map +1 -1
  326. package/lib/typescript/modules/natural_language_processing/VADModule.d.ts +10 -0
  327. package/lib/typescript/modules/natural_language_processing/VADModule.d.ts.map +1 -0
  328. package/lib/typescript/native/{NativeStyleTransfer.d.ts → NativeETInstaller.d.ts} +2 -3
  329. package/lib/typescript/native/NativeETInstaller.d.ts.map +1 -0
  330. package/lib/typescript/native/RnExecutorchModules.d.ts +3 -23
  331. package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
  332. package/lib/typescript/types/common.d.ts +30 -2
  333. package/lib/typescript/types/common.d.ts.map +1 -1
  334. package/lib/typescript/types/llm.d.ts +9 -1
  335. package/lib/typescript/types/llm.d.ts.map +1 -1
  336. package/lib/typescript/types/stt.d.ts +9 -88
  337. package/lib/typescript/types/stt.d.ts.map +1 -1
  338. package/lib/typescript/types/vad.d.ts +5 -0
  339. package/lib/typescript/types/vad.d.ts.map +1 -0
  340. package/lib/typescript/utils/ResourceFetcher.d.ts +47 -10
  341. package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -1
  342. package/lib/typescript/utils/ResourceFetcherUtils.d.ts +55 -0
  343. package/lib/typescript/utils/ResourceFetcherUtils.d.ts.map +1 -0
  344. package/lib/typescript/utils/llm.d.ts +4 -0
  345. package/lib/typescript/utils/llm.d.ts.map +1 -1
  346. package/package.json +32 -68
  347. package/react-native-executorch.podspec +62 -4
  348. package/src/Error.ts +3 -0
  349. package/src/common/Logger.ts +25 -0
  350. package/src/constants/directories.ts +1 -1
  351. package/src/constants/llmDefaults.ts +11 -0
  352. package/src/constants/modelUrls.ts +433 -168
  353. package/src/constants/ocr/models.ts +826 -395
  354. package/src/constants/ocr/symbols.ts +66 -65
  355. package/src/controllers/LLMController.ts +76 -36
  356. package/src/controllers/OCRController.ts +25 -16
  357. package/src/controllers/VerticalOCRController.ts +25 -15
  358. package/src/hooks/computer_vision/useClassification.ts +8 -9
  359. package/src/hooks/computer_vision/useImageEmbeddings.ts +15 -0
  360. package/src/hooks/computer_vision/useImageSegmentation.ts +3 -6
  361. package/src/hooks/computer_vision/useOCR.ts +32 -25
  362. package/src/hooks/computer_vision/useObjectDetection.ts +4 -7
  363. package/src/hooks/computer_vision/useStyleTransfer.ts +4 -4
  364. package/src/hooks/computer_vision/useTextToImage.ts +92 -0
  365. package/src/hooks/computer_vision/useVerticalOCR.ts +33 -31
  366. package/src/hooks/general/useExecutorchModule.ts +1 -1
  367. package/src/hooks/natural_language_processing/useLLM.ts +54 -31
  368. package/src/hooks/natural_language_processing/useSpeechToText.ts +96 -88
  369. package/src/hooks/natural_language_processing/useTextEmbeddings.ts +9 -9
  370. package/src/hooks/natural_language_processing/useTokenizer.ts +21 -21
  371. package/src/hooks/natural_language_processing/useVAD.ts +15 -0
  372. package/src/hooks/useModule.ts +23 -13
  373. package/src/index.ts +126 -0
  374. package/src/modules/BaseModule.ts +17 -22
  375. package/src/modules/computer_vision/ClassificationModule.ts +18 -9
  376. package/src/modules/computer_vision/ImageEmbeddingsModule.ts +26 -0
  377. package/src/modules/computer_vision/ImageSegmentationModule.ts +34 -26
  378. package/src/modules/computer_vision/OCRModule.ts +23 -15
  379. package/src/modules/computer_vision/ObjectDetectionModule.ts +22 -9
  380. package/src/modules/computer_vision/StyleTransferModule.ts +18 -9
  381. package/src/modules/computer_vision/TextToImageModule.ts +93 -0
  382. package/src/modules/computer_vision/VerticalOCRModule.ts +25 -21
  383. package/src/modules/general/ExecutorchModule.ts +16 -46
  384. package/src/modules/natural_language_processing/LLMModule.ts +41 -32
  385. package/src/modules/natural_language_processing/SpeechToTextModule.ts +164 -66
  386. package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +25 -10
  387. package/src/modules/natural_language_processing/TokenizerModule.ts +27 -17
  388. package/src/modules/natural_language_processing/VADModule.ts +27 -0
  389. package/src/native/NativeETInstaller.ts +8 -0
  390. package/src/native/RnExecutorchModules.ts +4 -50
  391. package/src/types/common.ts +40 -12
  392. package/src/types/llm.ts +10 -0
  393. package/src/types/stt.ts +87 -90
  394. package/src/types/vad.ts +4 -0
  395. package/src/utils/ResourceFetcher.ts +342 -120
  396. package/src/utils/ResourceFetcherUtils.ts +184 -0
  397. package/src/utils/llm.ts +65 -1
  398. package/third-party/android/libs/cpuinfo/arm64-v8a/libcpuinfo.so +0 -0
  399. package/third-party/android/libs/executorch/arm64-v8a/libexecutorch.so +0 -0
  400. package/third-party/android/libs/executorch/x86_64/libexecutorch.so +0 -0
  401. package/third-party/android/libs/opencv/arm64-v8a/libopencv_core.a +0 -0
  402. package/third-party/android/libs/opencv/arm64-v8a/libopencv_features2d.a +0 -0
  403. package/third-party/android/libs/opencv/arm64-v8a/libopencv_highgui.a +0 -0
  404. package/third-party/android/libs/opencv/arm64-v8a/libopencv_imgproc.a +0 -0
  405. package/third-party/android/libs/opencv/arm64-v8a/libopencv_photo.a +0 -0
  406. package/third-party/android/libs/opencv/arm64-v8a/libopencv_video.a +0 -0
  407. package/third-party/android/libs/opencv/x86_64/libopencv_core.a +0 -0
  408. package/third-party/android/libs/opencv/x86_64/libopencv_features2d.a +0 -0
  409. package/third-party/android/libs/opencv/x86_64/libopencv_highgui.a +0 -0
  410. package/third-party/android/libs/opencv/x86_64/libopencv_imgproc.a +0 -0
  411. package/third-party/android/libs/opencv/x86_64/libopencv_photo.a +0 -0
  412. package/third-party/android/libs/opencv/x86_64/libopencv_video.a +0 -0
  413. package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv.a +0 -0
  414. package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv_hal.a +0 -0
  415. package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv_thread.a +0 -0
  416. package/third-party/android/libs/pthreadpool/arm64-v8a/libpthreadpool.so +0 -0
  417. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libsentencepiece.a +0 -0
  418. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_c.a +0 -0
  419. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_cpp.a +0 -0
  420. package/{ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib → third-party/android/libs/tokenizers-cpp/x86_64/libsentencepiece.a} +0 -0
  421. package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_c.a +0 -0
  422. package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_cpp.a +0 -0
  423. package/third-party/include/c10/macros/Export.h +1 -0
  424. package/third-party/include/c10/macros/Macros.h +1 -0
  425. package/third-party/include/c10/util/BFloat16-inl.h +1 -0
  426. package/third-party/include/c10/util/BFloat16-math.h +266 -0
  427. package/third-party/include/c10/util/BFloat16.h +1 -0
  428. package/third-party/include/c10/util/Half-inl.h +1 -0
  429. package/third-party/include/c10/util/Half.h +8 -0
  430. package/third-party/include/c10/util/TypeSafeSignMath.h +1 -0
  431. package/third-party/include/c10/util/bit_cast.h +1 -0
  432. package/third-party/include/c10/util/complex.h +72 -0
  433. package/third-party/include/c10/util/complex_math.h +399 -0
  434. package/third-party/include/c10/util/complex_utils.h +41 -0
  435. package/third-party/include/c10/util/floating_point_utils.h +1 -0
  436. package/third-party/include/c10/util/irange.h +107 -0
  437. package/third-party/include/c10/util/llvmMathExtras.h +866 -0
  438. package/third-party/include/c10/util/overflows.h +95 -0
  439. package/third-party/include/c10/util/safe_numerics.h +97 -0
  440. package/third-party/include/cpuinfo/cpuinfo.h +2305 -0
  441. package/third-party/include/executorch/ExecuTorch.h +13 -0
  442. package/third-party/include/executorch/ExecuTorchError.h +90 -0
  443. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLM.h +12 -0
  444. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMConfig.h +56 -0
  445. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMError.h +16 -0
  446. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMMultimodalRunner.h +227 -0
  447. package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMTextRunner.h +97 -0
  448. package/third-party/include/executorch/ExecuTorchLLM/module.modulemap +4 -0
  449. package/third-party/include/executorch/ExecuTorchLog.h +77 -0
  450. package/third-party/include/executorch/ExecuTorchModule.h +563 -0
  451. package/third-party/include/executorch/ExecuTorchTensor.h +1421 -0
  452. package/third-party/include/executorch/ExecuTorchValue.h +265 -0
  453. package/third-party/include/executorch/extension/module/bundled_module.h +131 -0
  454. package/third-party/include/executorch/extension/module/module.h +649 -0
  455. package/third-party/include/executorch/extension/tensor/tensor.h +14 -0
  456. package/third-party/include/executorch/extension/tensor/tensor_accessor.h +190 -0
  457. package/third-party/include/executorch/extension/tensor/tensor_ptr.h +409 -0
  458. package/third-party/include/executorch/extension/tensor/tensor_ptr_maker.h +653 -0
  459. package/third-party/include/executorch/extension/threadpool/cpuinfo_utils.h +24 -0
  460. package/third-party/include/executorch/extension/threadpool/threadpool.h +95 -0
  461. package/third-party/include/executorch/runtime/backend/backend_execution_context.h +71 -0
  462. package/third-party/include/executorch/runtime/backend/backend_init_context.h +84 -0
  463. package/third-party/include/executorch/runtime/backend/backend_option_context.h +34 -0
  464. package/third-party/include/executorch/runtime/backend/interface.h +227 -0
  465. package/third-party/include/executorch/runtime/backend/options.h +206 -0
  466. package/third-party/include/executorch/runtime/core/array_ref.h +235 -0
  467. package/third-party/include/executorch/runtime/core/data_loader.h +136 -0
  468. package/third-party/include/executorch/runtime/core/defines.h +20 -0
  469. package/third-party/include/executorch/runtime/core/error.h +256 -0
  470. package/third-party/include/executorch/runtime/core/evalue.h +515 -0
  471. package/third-party/include/executorch/runtime/core/event_tracer.h +580 -0
  472. package/third-party/include/executorch/runtime/core/event_tracer_hooks.h +332 -0
  473. package/third-party/include/executorch/runtime/core/event_tracer_hooks_delegate.h +197 -0
  474. package/third-party/include/executorch/runtime/core/exec_aten/exec_aten.h +170 -0
  475. package/third-party/include/executorch/runtime/core/exec_aten/util/dim_order_util.h +264 -0
  476. package/third-party/include/executorch/runtime/core/exec_aten/util/scalar_type_util.h +1313 -0
  477. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +21 -0
  478. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +69 -0
  479. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_util.h +1251 -0
  480. package/third-party/include/executorch/runtime/core/freeable_buffer.h +107 -0
  481. package/third-party/include/executorch/runtime/core/function_ref.h +100 -0
  482. package/third-party/include/executorch/runtime/core/hierarchical_allocator.h +107 -0
  483. package/third-party/include/executorch/runtime/core/memory_allocator.h +208 -0
  484. package/third-party/include/executorch/runtime/core/named_data_map.h +76 -0
  485. package/third-party/include/executorch/runtime/core/portable_type/bfloat16.h +27 -0
  486. package/third-party/include/executorch/runtime/core/portable_type/bfloat16_math.h +14 -0
  487. package/third-party/include/executorch/runtime/core/portable_type/bits_types.h +83 -0
  488. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +1 -0
  489. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +1 -0
  490. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +1 -0
  491. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +266 -0
  492. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +1 -0
  493. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +1 -0
  494. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half.h +8 -0
  495. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +1 -0
  496. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +1 -0
  497. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex.h +72 -0
  498. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_math.h +399 -0
  499. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_utils.h +41 -0
  500. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +1 -0
  501. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/irange.h +107 -0
  502. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/llvmMathExtras.h +866 -0
  503. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/overflows.h +95 -0
  504. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/safe_numerics.h +97 -0
  505. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Export.h +154 -0
  506. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h +553 -0
  507. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h +477 -0
  508. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/Half.h +781 -0
  509. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/TypeSafeSignMath.h +141 -0
  510. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/bit_cast.h +49 -0
  511. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/complex.h +593 -0
  512. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/floating_point_utils.h +38 -0
  513. package/third-party/include/executorch/runtime/core/portable_type/complex.h +21 -0
  514. package/third-party/include/executorch/runtime/core/portable_type/device.h +70 -0
  515. package/third-party/include/executorch/runtime/core/portable_type/half.h +27 -0
  516. package/third-party/include/executorch/runtime/core/portable_type/optional.h +36 -0
  517. package/third-party/include/executorch/runtime/core/portable_type/qint_types.h +83 -0
  518. package/third-party/include/executorch/runtime/core/portable_type/scalar.h +110 -0
  519. package/third-party/include/executorch/runtime/core/portable_type/scalar_type.h +154 -0
  520. package/third-party/include/executorch/runtime/core/portable_type/string_view.h +29 -0
  521. package/third-party/include/executorch/runtime/core/portable_type/tensor.h +142 -0
  522. package/third-party/include/executorch/runtime/core/portable_type/tensor_impl.h +281 -0
  523. package/third-party/include/executorch/runtime/core/portable_type/tensor_options.h +60 -0
  524. package/third-party/include/executorch/runtime/core/result.h +258 -0
  525. package/third-party/include/executorch/runtime/core/span.h +97 -0
  526. package/third-party/include/executorch/runtime/core/tag.h +90 -0
  527. package/third-party/include/executorch/runtime/core/tensor_layout.h +79 -0
  528. package/third-party/include/executorch/runtime/core/tensor_shape_dynamism.h +39 -0
  529. package/third-party/include/executorch/runtime/executor/memory_manager.h +113 -0
  530. package/third-party/include/executorch/runtime/executor/merged_data_map.h +142 -0
  531. package/third-party/include/executorch/runtime/executor/method.h +412 -0
  532. package/third-party/include/executorch/runtime/executor/method_meta.h +298 -0
  533. package/third-party/include/executorch/runtime/executor/program.h +309 -0
  534. package/third-party/include/executorch/runtime/executor/pte_data_map.h +145 -0
  535. package/third-party/include/executorch/runtime/executor/tensor_parser.h +157 -0
  536. package/third-party/include/executorch/runtime/kernel/kernel_runtime_context.h +122 -0
  537. package/third-party/include/executorch/runtime/kernel/operator_registry.h +280 -0
  538. package/third-party/include/executorch/runtime/platform/abort.h +36 -0
  539. package/third-party/include/executorch/runtime/platform/assert.h +119 -0
  540. package/third-party/include/executorch/runtime/platform/clock.h +43 -0
  541. package/third-party/include/executorch/runtime/platform/compat_unistd.h +75 -0
  542. package/third-party/include/executorch/runtime/platform/compiler.h +201 -0
  543. package/third-party/include/executorch/runtime/platform/log.h +177 -0
  544. package/third-party/include/executorch/runtime/platform/platform.h +259 -0
  545. package/third-party/include/executorch/runtime/platform/profiler.h +292 -0
  546. package/third-party/include/executorch/runtime/platform/runtime.h +35 -0
  547. package/third-party/include/executorch/runtime/platform/system.h +49 -0
  548. package/third-party/include/executorch/runtime/platform/types.h +24 -0
  549. package/third-party/include/executorch/schema/extended_header.h +85 -0
  550. package/third-party/include/headeronly/macros/Export.h +88 -0
  551. package/third-party/include/opencv2/core/affine.hpp +676 -0
  552. package/third-party/include/opencv2/core/async.hpp +107 -0
  553. package/third-party/include/opencv2/core/base.hpp +735 -0
  554. package/third-party/include/opencv2/core/bindings_utils.hpp +279 -0
  555. package/third-party/include/opencv2/core/bufferpool.hpp +39 -0
  556. package/third-party/include/opencv2/core/check.hpp +231 -0
  557. package/third-party/include/opencv2/core/core.hpp +55 -0
  558. package/third-party/include/opencv2/core/core_c.h +3261 -0
  559. package/third-party/include/opencv2/core/cv_cpu_dispatch.h +404 -0
  560. package/third-party/include/opencv2/core/cv_cpu_helper.h +856 -0
  561. package/third-party/include/opencv2/core/cvdef.h +1003 -0
  562. package/third-party/include/opencv2/core/cvstd.hpp +196 -0
  563. package/third-party/include/opencv2/core/cvstd.inl.hpp +188 -0
  564. package/third-party/include/opencv2/core/cvstd_wrapper.hpp +187 -0
  565. package/third-party/include/opencv2/core/detail/async_promise.hpp +73 -0
  566. package/third-party/include/opencv2/core/detail/dispatch_helper.impl.hpp +48 -0
  567. package/third-party/include/opencv2/core/detail/exception_ptr.hpp +24 -0
  568. package/third-party/include/opencv2/core/dualquaternion.hpp +1054 -0
  569. package/third-party/include/opencv2/core/dualquaternion.inl.hpp +464 -0
  570. package/third-party/include/opencv2/core/eigen.hpp +405 -0
  571. package/third-party/include/opencv2/core/fast_math.hpp +433 -0
  572. package/third-party/include/opencv2/core/hal/hal.hpp +451 -0
  573. package/third-party/include/opencv2/core/hal/interface.h +191 -0
  574. package/third-party/include/opencv2/core/hal/intrin.hpp +1222 -0
  575. package/third-party/include/opencv2/core/hal/intrin_avx.hpp +3378 -0
  576. package/third-party/include/opencv2/core/hal/intrin_avx512.hpp +3688 -0
  577. package/third-party/include/opencv2/core/hal/intrin_cpp.hpp +3446 -0
  578. package/third-party/include/opencv2/core/hal/intrin_forward.hpp +195 -0
  579. package/third-party/include/opencv2/core/hal/intrin_lasx.hpp +3243 -0
  580. package/third-party/include/opencv2/core/hal/intrin_lsx.hpp +2671 -0
  581. package/third-party/include/opencv2/core/hal/intrin_math.hpp +772 -0
  582. package/third-party/include/opencv2/core/hal/intrin_msa.hpp +1973 -0
  583. package/third-party/include/opencv2/core/hal/intrin_neon.hpp +2710 -0
  584. package/third-party/include/opencv2/core/hal/intrin_rvv071.hpp +3452 -0
  585. package/third-party/include/opencv2/core/hal/intrin_rvv_scalable.hpp +2559 -0
  586. package/third-party/include/opencv2/core/hal/intrin_sse.hpp +3528 -0
  587. package/third-party/include/opencv2/core/hal/intrin_sse_em.hpp +175 -0
  588. package/third-party/include/opencv2/core/hal/intrin_vsx.hpp +1756 -0
  589. package/third-party/include/opencv2/core/hal/intrin_wasm.hpp +2911 -0
  590. package/third-party/include/opencv2/core/hal/msa_macros.h +2079 -0
  591. package/third-party/include/opencv2/core/hal/simd_utils.impl.hpp +313 -0
  592. package/third-party/include/opencv2/core/mat.hpp +3842 -0
  593. package/third-party/include/opencv2/core/mat.inl.hpp +2753 -0
  594. package/third-party/include/opencv2/core/matx.hpp +603 -0
  595. package/third-party/include/opencv2/core/matx.inl.hpp +1132 -0
  596. package/third-party/include/opencv2/core/neon_utils.hpp +127 -0
  597. package/third-party/include/opencv2/core/operations.hpp +610 -0
  598. package/third-party/include/opencv2/core/optim.hpp +362 -0
  599. package/third-party/include/opencv2/core/parallel/backend/parallel_for.openmp.hpp +66 -0
  600. package/third-party/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp +148 -0
  601. package/third-party/include/opencv2/core/parallel/parallel_backend.hpp +108 -0
  602. package/third-party/include/opencv2/core/persistence.hpp +1321 -0
  603. package/third-party/include/opencv2/core/quaternion.hpp +1889 -0
  604. package/third-party/include/opencv2/core/quaternion.inl.hpp +907 -0
  605. package/third-party/include/opencv2/core/saturate.hpp +347 -0
  606. package/third-party/include/opencv2/core/simd_intrinsics.hpp +90 -0
  607. package/third-party/include/opencv2/core/softfloat.hpp +657 -0
  608. package/third-party/include/opencv2/core/sse_utils.hpp +861 -0
  609. package/third-party/include/opencv2/core/traits.hpp +417 -0
  610. package/third-party/include/opencv2/core/types.hpp +2368 -0
  611. package/third-party/include/opencv2/core/types_c.h +2064 -0
  612. package/third-party/include/opencv2/core/utility.hpp +1296 -0
  613. package/third-party/include/opencv2/core/utils/allocator_stats.hpp +31 -0
  614. package/third-party/include/opencv2/core/utils/allocator_stats.impl.hpp +111 -0
  615. package/third-party/include/opencv2/core/utils/filesystem.hpp +91 -0
  616. package/third-party/include/opencv2/core/utils/fp_control_utils.hpp +70 -0
  617. package/third-party/include/opencv2/core/utils/instrumentation.hpp +127 -0
  618. package/third-party/include/opencv2/core/utils/logger.defines.hpp +50 -0
  619. package/third-party/include/opencv2/core/utils/logger.hpp +258 -0
  620. package/third-party/include/opencv2/core/utils/logtag.hpp +27 -0
  621. package/third-party/include/opencv2/core/utils/tls.hpp +230 -0
  622. package/third-party/include/opencv2/core/utils/trace.hpp +281 -0
  623. package/third-party/include/opencv2/core/version.hpp +29 -0
  624. package/third-party/include/opencv2/core/vsx_utils.hpp +1115 -0
  625. package/third-party/include/opencv2/core.hpp +3699 -0
  626. package/third-party/include/opencv2/cvconfig.h +155 -0
  627. package/third-party/include/opencv2/dnn/dnn.hpp +51 -0
  628. package/third-party/include/opencv2/dnn.hpp +17 -0
  629. package/third-party/include/opencv2/features2d/features2d.hpp +55 -0
  630. package/third-party/include/opencv2/features2d/hal/interface.h +32 -0
  631. package/third-party/include/opencv2/features2d.hpp +1756 -0
  632. package/third-party/include/opencv2/highgui/highgui.hpp +113 -0
  633. package/third-party/include/opencv2/highgui.hpp +17 -0
  634. package/third-party/include/opencv2/imgproc/bindings.hpp +34 -0
  635. package/third-party/include/opencv2/imgproc/detail/gcgraph.hpp +355 -0
  636. package/third-party/include/opencv2/imgproc/detail/legacy.hpp +35 -0
  637. package/third-party/include/opencv2/imgproc/hal/hal.hpp +246 -0
  638. package/third-party/include/opencv2/imgproc/hal/interface.h +52 -0
  639. package/third-party/include/opencv2/imgproc/imgproc.hpp +55 -0
  640. package/third-party/include/opencv2/imgproc/imgproc_c.h +1261 -0
  641. package/third-party/include/opencv2/imgproc/segmentation.hpp +168 -0
  642. package/third-party/include/opencv2/imgproc/types_c.h +632 -0
  643. package/third-party/include/opencv2/imgproc.hpp +5956 -0
  644. package/third-party/include/opencv2/opencv.hpp +102 -0
  645. package/third-party/include/opencv2/opencv_modules.hpp +19 -0
  646. package/third-party/include/opencv2/photo/legacy/constants_c.h +10 -0
  647. package/third-party/include/opencv2/photo/photo.hpp +55 -0
  648. package/third-party/include/opencv2/photo.hpp +975 -0
  649. package/third-party/include/opencv2/video/background_segm.hpp +341 -0
  650. package/third-party/include/opencv2/video/detail/tracking.detail.hpp +435 -0
  651. package/third-party/include/opencv2/video/legacy/constants_c.h +15 -0
  652. package/third-party/include/opencv2/video/tracking.hpp +1014 -0
  653. package/third-party/include/opencv2/video/video.hpp +55 -0
  654. package/third-party/include/opencv2/video.hpp +65 -0
  655. package/third-party/include/pthreadpool/pthreadpool.h +2236 -0
  656. package/third-party/include/tokenizers-cpp/tokenizers_c.h +61 -0
  657. package/third-party/include/tokenizers-cpp/tokenizers_cpp.h +118 -0
  658. package/third-party/include/torch/headeronly/macros/Export.h +154 -0
  659. package/third-party/include/torch/headeronly/macros/Macros.h +553 -0
  660. package/third-party/include/torch/headeronly/util/BFloat16.h +477 -0
  661. package/third-party/include/torch/headeronly/util/Half.h +781 -0
  662. package/third-party/include/torch/headeronly/util/TypeSafeSignMath.h +141 -0
  663. package/third-party/include/torch/headeronly/util/bit_cast.h +49 -0
  664. package/third-party/include/torch/headeronly/util/complex.h +593 -0
  665. package/third-party/include/torch/headeronly/util/floating_point_utils.h +38 -0
  666. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
  667. package/{ios → third-party/ios}/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
  668. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
  669. package/{ios → third-party/ios}/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
  670. package/third-party/ios/libs/cpuinfo/libcpuinfo.a +0 -0
  671. package/third-party/ios/libs/pthreadpool/physical-arm64-release/libpthreadpool.a +0 -0
  672. package/third-party/ios/libs/pthreadpool/simulator-arm64-debug/libpthreadpool.a +0 -0
  673. package/third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libsentencepiece.a +0 -0
  674. package/{ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib → third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_c.a} +0 -0
  675. package/third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_cpp.a +0 -0
  676. package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libsentencepiece.a +0 -0
  677. package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_c.a +0 -0
  678. package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_cpp.a +0 -0
  679. package/LICENSE +0 -79
  680. package/android/src/main/java/com/swmansion/rnexecutorch/Classification.kt +0 -64
  681. package/android/src/main/java/com/swmansion/rnexecutorch/ETModule.kt +0 -90
  682. package/android/src/main/java/com/swmansion/rnexecutorch/ImageSegmentation.kt +0 -58
  683. package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +0 -63
  684. package/android/src/main/java/com/swmansion/rnexecutorch/OCR.kt +0 -90
  685. package/android/src/main/java/com/swmansion/rnexecutorch/ObjectDetection.kt +0 -64
  686. package/android/src/main/java/com/swmansion/rnexecutorch/SpeechToText.kt +0 -91
  687. package/android/src/main/java/com/swmansion/rnexecutorch/StyleTransfer.kt +0 -54
  688. package/android/src/main/java/com/swmansion/rnexecutorch/TextEmbeddings.kt +0 -51
  689. package/android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt +0 -86
  690. package/android/src/main/java/com/swmansion/rnexecutorch/VerticalOCR.kt +0 -179
  691. package/android/src/main/java/com/swmansion/rnexecutorch/models/BaseModel.kt +0 -54
  692. package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsModel.kt +0 -48
  693. package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsUtils.kt +0 -37
  694. package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/ClassificationModel.kt +0 -46
  695. package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/Constants.kt +0 -1005
  696. package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/Constants.kt +0 -26
  697. package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/ImageSegmentationModel.kt +0 -142
  698. package/android/src/main/java/com/swmansion/rnexecutorch/models/objectDetection/SSDLiteLargeModel.kt +0 -74
  699. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/Detector.kt +0 -82
  700. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/RecognitionHandler.kt +0 -117
  701. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/Recognizer.kt +0 -51
  702. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/VerticalDetector.kt +0 -89
  703. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/CTCLabelConverter.kt +0 -58
  704. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/Constants.kt +0 -31
  705. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/DetectorUtils.kt +0 -608
  706. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/RecognizerUtils.kt +0 -430
  707. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/BaseS2TDecoder.kt +0 -39
  708. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/BaseS2TModule.kt +0 -43
  709. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/Moonshine.kt +0 -16
  710. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/MoonshineDecoder.kt +0 -23
  711. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/MoonshineEncoder.kt +0 -20
  712. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/Whisper.kt +0 -16
  713. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/WhisperDecoder.kt +0 -22
  714. package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/WhisperEncoder.kt +0 -29
  715. package/android/src/main/java/com/swmansion/rnexecutorch/models/styleTransfer/StyleTransferModel.kt +0 -43
  716. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ArrayUtils.kt +0 -87
  717. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ETError.kt +0 -34
  718. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ImageProcessor.kt +0 -237
  719. package/android/src/main/java/com/swmansion/rnexecutorch/utils/Numerical.kt +0 -8
  720. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ObjectDetectionUtils.kt +0 -201
  721. package/android/src/main/java/com/swmansion/rnexecutorch/utils/STFT.kt +0 -50
  722. package/android/src/main/java/com/swmansion/rnexecutorch/utils/TensorUtils.kt +0 -103
  723. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/ETModel.h +0 -27
  724. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
  725. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
  726. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/ETModel.h +0 -27
  727. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
  728. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
  729. package/ios/RnExecutorch/Classification.h +0 -5
  730. package/ios/RnExecutorch/Classification.mm +0 -54
  731. package/ios/RnExecutorch/ETModule.h +0 -5
  732. package/ios/RnExecutorch/ETModule.mm +0 -75
  733. package/ios/RnExecutorch/ImageSegmentation.h +0 -5
  734. package/ios/RnExecutorch/ImageSegmentation.mm +0 -60
  735. package/ios/RnExecutorch/LLM.h +0 -5
  736. package/ios/RnExecutorch/LLM.mm +0 -78
  737. package/ios/RnExecutorch/OCR.h +0 -5
  738. package/ios/RnExecutorch/OCR.mm +0 -96
  739. package/ios/RnExecutorch/ObjectDetection.h +0 -5
  740. package/ios/RnExecutorch/ObjectDetection.mm +0 -56
  741. package/ios/RnExecutorch/SpeechToText.h +0 -5
  742. package/ios/RnExecutorch/SpeechToText.mm +0 -125
  743. package/ios/RnExecutorch/StyleTransfer.h +0 -5
  744. package/ios/RnExecutorch/StyleTransfer.mm +0 -55
  745. package/ios/RnExecutorch/TextEmbeddings.h +0 -5
  746. package/ios/RnExecutorch/TextEmbeddings.mm +0 -62
  747. package/ios/RnExecutorch/Tokenizer.h +0 -5
  748. package/ios/RnExecutorch/Tokenizer.mm +0 -83
  749. package/ios/RnExecutorch/VerticalOCR.h +0 -5
  750. package/ios/RnExecutorch/VerticalOCR.mm +0 -183
  751. package/ios/RnExecutorch/models/BaseModel.h +0 -21
  752. package/ios/RnExecutorch/models/BaseModel.mm +0 -43
  753. package/ios/RnExecutorch/models/classification/ClassificationModel.h +0 -10
  754. package/ios/RnExecutorch/models/classification/ClassificationModel.mm +0 -53
  755. package/ios/RnExecutorch/models/classification/Constants.h +0 -3
  756. package/ios/RnExecutorch/models/image_segmentation/Constants.h +0 -4
  757. package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.h +0 -10
  758. package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.mm +0 -146
  759. package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.hpp +0 -11
  760. package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.mm +0 -64
  761. package/ios/RnExecutorch/models/ocr/Detector.h +0 -9
  762. package/ios/RnExecutorch/models/ocr/Detector.mm +0 -101
  763. package/ios/RnExecutorch/models/ocr/RecognitionHandler.h +0 -16
  764. package/ios/RnExecutorch/models/ocr/RecognitionHandler.mm +0 -135
  765. package/ios/RnExecutorch/models/ocr/Recognizer.h +0 -8
  766. package/ios/RnExecutorch/models/ocr/Recognizer.mm +0 -77
  767. package/ios/RnExecutorch/models/ocr/VerticalDetector.h +0 -10
  768. package/ios/RnExecutorch/models/ocr/VerticalDetector.mm +0 -118
  769. package/ios/RnExecutorch/models/ocr/utils/CTCLabelConverter.h +0 -16
  770. package/ios/RnExecutorch/models/ocr/utils/CTCLabelConverter.mm +0 -80
  771. package/ios/RnExecutorch/models/ocr/utils/Constants.h +0 -26
  772. package/ios/RnExecutorch/models/ocr/utils/DetectorUtils.h +0 -31
  773. package/ios/RnExecutorch/models/ocr/utils/DetectorUtils.mm +0 -754
  774. package/ios/RnExecutorch/models/ocr/utils/OCRUtils.h +0 -10
  775. package/ios/RnExecutorch/models/ocr/utils/OCRUtils.mm +0 -67
  776. package/ios/RnExecutorch/models/ocr/utils/RecognizerUtils.h +0 -35
  777. package/ios/RnExecutorch/models/ocr/utils/RecognizerUtils.mm +0 -331
  778. package/ios/RnExecutorch/models/stt/Moonshine.hpp +0 -13
  779. package/ios/RnExecutorch/models/stt/Moonshine.mm +0 -64
  780. package/ios/RnExecutorch/models/stt/MoonshineDecoder.hpp +0 -16
  781. package/ios/RnExecutorch/models/stt/MoonshineDecoder.mm +0 -24
  782. package/ios/RnExecutorch/models/stt/MoonshineEncoder.hpp +0 -15
  783. package/ios/RnExecutorch/models/stt/MoonshineEncoder.mm +0 -18
  784. package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.hpp +0 -26
  785. package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.mm +0 -19
  786. package/ios/RnExecutorch/models/stt/Whisper.hpp +0 -12
  787. package/ios/RnExecutorch/models/stt/Whisper.mm +0 -68
  788. package/ios/RnExecutorch/models/stt/WhisperDecoder.hpp +0 -16
  789. package/ios/RnExecutorch/models/stt/WhisperDecoder.mm +0 -22
  790. package/ios/RnExecutorch/models/stt/WhisperEncoder.hpp +0 -15
  791. package/ios/RnExecutorch/models/stt/WhisperEncoder.mm +0 -21
  792. package/ios/RnExecutorch/models/style_transfer/StyleTransferModel.h +0 -11
  793. package/ios/RnExecutorch/models/style_transfer/StyleTransferModel.mm +0 -50
  794. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.h +0 -15
  795. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.mm +0 -45
  796. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.h +0 -8
  797. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.mm +0 -49
  798. package/ios/RnExecutorch/utils/Constants.h +0 -8
  799. package/ios/RnExecutorch/utils/Conversions.h +0 -15
  800. package/ios/RnExecutorch/utils/ETError.h +0 -26
  801. package/ios/RnExecutorch/utils/ImageProcessor.h +0 -15
  802. package/ios/RnExecutorch/utils/ImageProcessor.mm +0 -147
  803. package/ios/RnExecutorch/utils/Numerical.h +0 -1
  804. package/ios/RnExecutorch/utils/Numerical.mm +0 -18
  805. package/ios/RnExecutorch/utils/ObjectDetectionUtils.hpp +0 -23
  806. package/ios/RnExecutorch/utils/SFFT.hpp +0 -13
  807. package/ios/RnExecutorch/utils/SFFT.mm +0 -71
  808. package/ios/RnExecutorch/utils/ScalarType.h +0 -14
  809. package/ios/RnExecutorch/utils/ScalarType.mm +0 -21
  810. package/lib/module/constants/sttDefaults.js +0 -72
  811. package/lib/module/constants/sttDefaults.js.map +0 -1
  812. package/lib/module/controllers/SpeechToTextController.js +0 -307
  813. package/lib/module/controllers/SpeechToTextController.js.map +0 -1
  814. package/lib/module/native/NativeClassification.js +0 -5
  815. package/lib/module/native/NativeClassification.js.map +0 -1
  816. package/lib/module/native/NativeETModule.js +0 -5
  817. package/lib/module/native/NativeETModule.js.map +0 -1
  818. package/lib/module/native/NativeImageSegmentation.js +0 -5
  819. package/lib/module/native/NativeImageSegmentation.js.map +0 -1
  820. package/lib/module/native/NativeLLM.js +0 -5
  821. package/lib/module/native/NativeLLM.js.map +0 -1
  822. package/lib/module/native/NativeOCR.js +0 -5
  823. package/lib/module/native/NativeOCR.js.map +0 -1
  824. package/lib/module/native/NativeObjectDetection.js +0 -5
  825. package/lib/module/native/NativeObjectDetection.js.map +0 -1
  826. package/lib/module/native/NativeSpeechToText.js +0 -5
  827. package/lib/module/native/NativeSpeechToText.js.map +0 -1
  828. package/lib/module/native/NativeStyleTransfer.js +0 -5
  829. package/lib/module/native/NativeStyleTransfer.js.map +0 -1
  830. package/lib/module/native/NativeTextEmbeddings.js +0 -5
  831. package/lib/module/native/NativeTextEmbeddings.js.map +0 -1
  832. package/lib/module/native/NativeTokenizer.js +0 -5
  833. package/lib/module/native/NativeTokenizer.js.map +0 -1
  834. package/lib/module/native/NativeVerticalOCR.js +0 -5
  835. package/lib/module/native/NativeVerticalOCR.js.map +0 -1
  836. package/lib/module/package.json +0 -1
  837. package/lib/module/utils/stt.js +0 -22
  838. package/lib/module/utils/stt.js.map +0 -1
  839. package/lib/typescript/constants/sttDefaults.d.ts +0 -28
  840. package/lib/typescript/constants/sttDefaults.d.ts.map +0 -1
  841. package/lib/typescript/controllers/SpeechToTextController.d.ts +0 -52
  842. package/lib/typescript/controllers/SpeechToTextController.d.ts.map +0 -1
  843. package/lib/typescript/native/NativeClassification.d.ts +0 -10
  844. package/lib/typescript/native/NativeClassification.d.ts.map +0 -1
  845. package/lib/typescript/native/NativeETModule.d.ts +0 -9
  846. package/lib/typescript/native/NativeETModule.d.ts.map +0 -1
  847. package/lib/typescript/native/NativeImageSegmentation.d.ts +0 -10
  848. package/lib/typescript/native/NativeImageSegmentation.d.ts.map +0 -1
  849. package/lib/typescript/native/NativeLLM.d.ts +0 -12
  850. package/lib/typescript/native/NativeLLM.d.ts.map +0 -1
  851. package/lib/typescript/native/NativeOCR.d.ts +0 -9
  852. package/lib/typescript/native/NativeOCR.d.ts.map +0 -1
  853. package/lib/typescript/native/NativeObjectDetection.d.ts +0 -9
  854. package/lib/typescript/native/NativeObjectDetection.d.ts.map +0 -1
  855. package/lib/typescript/native/NativeSpeechToText.d.ts +0 -12
  856. package/lib/typescript/native/NativeSpeechToText.d.ts.map +0 -1
  857. package/lib/typescript/native/NativeStyleTransfer.d.ts.map +0 -1
  858. package/lib/typescript/native/NativeTextEmbeddings.d.ts +0 -8
  859. package/lib/typescript/native/NativeTextEmbeddings.d.ts.map +0 -1
  860. package/lib/typescript/native/NativeTokenizer.d.ts +0 -12
  861. package/lib/typescript/native/NativeTokenizer.d.ts.map +0 -1
  862. package/lib/typescript/native/NativeVerticalOCR.d.ts +0 -9
  863. package/lib/typescript/native/NativeVerticalOCR.d.ts.map +0 -1
  864. package/lib/typescript/utils/stt.d.ts +0 -2
  865. package/lib/typescript/utils/stt.d.ts.map +0 -1
  866. package/src/constants/sttDefaults.ts +0 -86
  867. package/src/controllers/SpeechToTextController.ts +0 -458
  868. package/src/index.tsx +0 -47
  869. package/src/native/NativeClassification.ts +0 -9
  870. package/src/native/NativeETModule.ts +0 -14
  871. package/src/native/NativeImageSegmentation.ts +0 -14
  872. package/src/native/NativeLLM.ts +0 -14
  873. package/src/native/NativeOCR.ts +0 -16
  874. package/src/native/NativeObjectDetection.ts +0 -10
  875. package/src/native/NativeSpeechToText.ts +0 -17
  876. package/src/native/NativeStyleTransfer.ts +0 -10
  877. package/src/native/NativeTextEmbeddings.ts +0 -9
  878. package/src/native/NativeTokenizer.ts +0 -13
  879. package/src/native/NativeVerticalOCR.ts +0 -16
  880. package/src/utils/stt.ts +0 -28
  881. package/{ios → third-party/ios}/ExecutorchLib.xcframework/Info.plist +4 -4
@@ -0,0 +1,1132 @@
1
+ // This file is part of OpenCV project.
2
+ // It is subject to the license terms in the LICENSE file found in the top-level
3
+ // directory of this distribution and at http://opencv.org/license.html.
4
+
5
+ #ifndef OPENCV_CORE_MATX_INL_HPP
6
+ #define OPENCV_CORE_MATX_INL_HPP
7
+
8
+ #ifndef __cplusplus
9
+ #error matx.inl.hpp header must be compiled as C++
10
+ #endif
11
+
12
+ #include "opencv2/core/matx.hpp"
13
+
14
+ namespace cv {
15
+
16
+ //==============================================================================
17
+ // Helpers
18
+
19
+ namespace internal {
20
+
21
+ template <typename _Tp, int m> struct Matx_DetOp {
22
+ double operator()(const Matx<_Tp, m, m> &a) const {
23
+ Matx<_Tp, m, m> temp = a;
24
+ double p = LU(temp.val, m * sizeof(_Tp), m, 0, 0, 0);
25
+ if (p == 0)
26
+ return p;
27
+ for (int i = 0; i < m; i++)
28
+ p *= temp(i, i);
29
+ return p;
30
+ }
31
+ };
32
+
33
+ template <typename _Tp> struct Matx_DetOp<_Tp, 1> {
34
+ double operator()(const Matx<_Tp, 1, 1> &a) const { return a(0, 0); }
35
+ };
36
+
37
+ template <typename _Tp> struct Matx_DetOp<_Tp, 2> {
38
+ double operator()(const Matx<_Tp, 2, 2> &a) const {
39
+ return a(0, 0) * a(1, 1) - a(0, 1) * a(1, 0);
40
+ }
41
+ };
42
+
43
+ template <typename _Tp> struct Matx_DetOp<_Tp, 3> {
44
+ double operator()(const Matx<_Tp, 3, 3> &a) const {
45
+ return a(0, 0) * (a(1, 1) * a(2, 2) - a(2, 1) * a(1, 2)) -
46
+ a(0, 1) * (a(1, 0) * a(2, 2) - a(2, 0) * a(1, 2)) +
47
+ a(0, 2) * (a(1, 0) * a(2, 1) - a(2, 0) * a(1, 1));
48
+ }
49
+ };
50
+
51
+ template <typename _Tp> Vec<_Tp, 2> inline conjugate(const Vec<_Tp, 2> &v) {
52
+ return Vec<_Tp, 2>(v[0], -v[1]);
53
+ }
54
+
55
+ template <typename _Tp> Vec<_Tp, 4> inline conjugate(const Vec<_Tp, 4> &v) {
56
+ return Vec<_Tp, 4>(v[0], -v[1], -v[2], -v[3]);
57
+ }
58
+
59
+ } // namespace internal
60
+
61
+ //==============================================================================
62
+ // Matx
63
+
64
+ template <typename _Tp, int m, int n> class DataType<Matx<_Tp, m, n>> {
65
+ public:
66
+ typedef Matx<_Tp, m, n> value_type;
67
+ typedef Matx<typename DataType<_Tp>::work_type, m, n> work_type;
68
+ typedef _Tp channel_type;
69
+ typedef value_type vec_type;
70
+
71
+ enum {
72
+ generic_type = 0,
73
+ channels = m * n,
74
+ fmt = traits::SafeFmt<channel_type>::fmt + ((channels - 1) << 8)
75
+ #ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
76
+ ,
77
+ depth = DataType<channel_type>::depth,
78
+ type = CV_MAKETYPE(depth, channels)
79
+ #endif
80
+ };
81
+ };
82
+
83
+ namespace traits {
84
+ template <typename _Tp, int m, int n> struct Depth<Matx<_Tp, m, n>> {
85
+ enum { value = Depth<_Tp>::value };
86
+ };
87
+ template <typename _Tp, int m, int n> struct Type<Matx<_Tp, m, n>> {
88
+ enum { value = CV_MAKETYPE(Depth<_Tp>::value, n *m) };
89
+ };
90
+ } // namespace traits
91
+
92
+ //! @brief Comma-separated Matrix Initializer
93
+ template <typename _Tp, int m, int n> class MatxCommaInitializer {
94
+ public:
95
+ MatxCommaInitializer(Matx<_Tp, m, n> *_mtx);
96
+ template <typename T2> MatxCommaInitializer<_Tp, m, n> &operator,(T2 val);
97
+ Matx<_Tp, m, n> operator*() const;
98
+
99
+ Matx<_Tp, m, n> *dst;
100
+ int idx;
101
+ };
102
+
103
+ template <typename _Tp, typename _T2, int m, int n>
104
+ static inline MatxCommaInitializer<_Tp, m, n>
105
+ operator<<(const Matx<_Tp, m, n> &mtx, _T2 val) {
106
+ MatxCommaInitializer<_Tp, m, n> commaInitializer((Matx<_Tp, m, n> *)&mtx);
107
+ return (commaInitializer, val);
108
+ }
109
+
110
+ template <typename _Tp, int m, int n>
111
+ inline MatxCommaInitializer<_Tp, m, n>::MatxCommaInitializer(
112
+ Matx<_Tp, m, n> *_mtx)
113
+ : dst(_mtx), idx(0) {}
114
+
115
+ template <typename _Tp, int m, int n>
116
+ template <typename _T2>
117
+ inline MatxCommaInitializer<_Tp, m, n>
118
+ &MatxCommaInitializer<_Tp, m, n>::operator,(_T2 value) {
119
+ CV_DbgAssert(idx < m * n);
120
+ dst->val[idx++] = saturate_cast<_Tp>(value);
121
+ return *this;
122
+ }
123
+
124
+ template <typename _Tp, int m, int n>
125
+ inline Matx<_Tp, m, n> MatxCommaInitializer<_Tp, m, n>::operator*() const {
126
+ CV_DbgAssert(idx == n * m);
127
+ return *dst;
128
+ }
129
+
130
+ ////////////////////////////////// Matx Implementation
131
+ //////////////////////////////////////
132
+
133
+ template <typename _Tp, int m, int n> inline Matx<_Tp, m, n>::Matx() {
134
+ for (int i = 0; i < channels; i++)
135
+ val[i] = _Tp(0);
136
+ }
137
+
138
+ template <typename _Tp, int m, int n> inline Matx<_Tp, m, n>::Matx(_Tp v0) {
139
+ val[0] = v0;
140
+ for (int i = 1; i < channels; i++)
141
+ val[i] = _Tp(0);
142
+ }
143
+
144
+ template <typename _Tp, int m, int n>
145
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1) {
146
+ CV_StaticAssert(channels >= 2, "Matx should have at least 2 elements.");
147
+ val[0] = v0;
148
+ val[1] = v1;
149
+ for (int i = 2; i < channels; i++)
150
+ val[i] = _Tp(0);
151
+ }
152
+
153
+ template <typename _Tp, int m, int n>
154
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2) {
155
+ CV_StaticAssert(channels >= 3, "Matx should have at least 3 elements.");
156
+ val[0] = v0;
157
+ val[1] = v1;
158
+ val[2] = v2;
159
+ for (int i = 3; i < channels; i++)
160
+ val[i] = _Tp(0);
161
+ }
162
+
163
+ template <typename _Tp, int m, int n>
164
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3) {
165
+ CV_StaticAssert(channels >= 4, "Matx should have at least 4 elements.");
166
+ val[0] = v0;
167
+ val[1] = v1;
168
+ val[2] = v2;
169
+ val[3] = v3;
170
+ for (int i = 4; i < channels; i++)
171
+ val[i] = _Tp(0);
172
+ }
173
+
174
+ template <typename _Tp, int m, int n>
175
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4) {
176
+ CV_StaticAssert(channels >= 5, "Matx should have at least 5 elements.");
177
+ val[0] = v0;
178
+ val[1] = v1;
179
+ val[2] = v2;
180
+ val[3] = v3;
181
+ val[4] = v4;
182
+ for (int i = 5; i < channels; i++)
183
+ val[i] = _Tp(0);
184
+ }
185
+
186
+ template <typename _Tp, int m, int n>
187
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5) {
188
+ CV_StaticAssert(channels >= 6, "Matx should have at least 6 elements.");
189
+ val[0] = v0;
190
+ val[1] = v1;
191
+ val[2] = v2;
192
+ val[3] = v3;
193
+ val[4] = v4;
194
+ val[5] = v5;
195
+ for (int i = 6; i < channels; i++)
196
+ val[i] = _Tp(0);
197
+ }
198
+
199
+ template <typename _Tp, int m, int n>
200
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
201
+ _Tp v6) {
202
+ CV_StaticAssert(channels >= 7, "Matx should have at least 7 elements.");
203
+ val[0] = v0;
204
+ val[1] = v1;
205
+ val[2] = v2;
206
+ val[3] = v3;
207
+ val[4] = v4;
208
+ val[5] = v5;
209
+ val[6] = v6;
210
+ for (int i = 7; i < channels; i++)
211
+ val[i] = _Tp(0);
212
+ }
213
+
214
+ template <typename _Tp, int m, int n>
215
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
216
+ _Tp v6, _Tp v7) {
217
+ CV_StaticAssert(channels >= 8, "Matx should have at least 8 elements.");
218
+ val[0] = v0;
219
+ val[1] = v1;
220
+ val[2] = v2;
221
+ val[3] = v3;
222
+ val[4] = v4;
223
+ val[5] = v5;
224
+ val[6] = v6;
225
+ val[7] = v7;
226
+ for (int i = 8; i < channels; i++)
227
+ val[i] = _Tp(0);
228
+ }
229
+
230
+ template <typename _Tp, int m, int n>
231
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
232
+ _Tp v6, _Tp v7, _Tp v8) {
233
+ CV_StaticAssert(channels >= 9, "Matx should have at least 9 elements.");
234
+ val[0] = v0;
235
+ val[1] = v1;
236
+ val[2] = v2;
237
+ val[3] = v3;
238
+ val[4] = v4;
239
+ val[5] = v5;
240
+ val[6] = v6;
241
+ val[7] = v7;
242
+ val[8] = v8;
243
+ for (int i = 9; i < channels; i++)
244
+ val[i] = _Tp(0);
245
+ }
246
+
247
+ template <typename _Tp, int m, int n>
248
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
249
+ _Tp v6, _Tp v7, _Tp v8, _Tp v9) {
250
+ CV_StaticAssert(channels >= 10, "Matx should have at least 10 elements.");
251
+ val[0] = v0;
252
+ val[1] = v1;
253
+ val[2] = v2;
254
+ val[3] = v3;
255
+ val[4] = v4;
256
+ val[5] = v5;
257
+ val[6] = v6;
258
+ val[7] = v7;
259
+ val[8] = v8;
260
+ val[9] = v9;
261
+ for (int i = 10; i < channels; i++)
262
+ val[i] = _Tp(0);
263
+ }
264
+
265
+ template <typename _Tp, int m, int n>
266
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
267
+ _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11) {
268
+ CV_StaticAssert(channels >= 12, "Matx should have at least 12 elements.");
269
+ val[0] = v0;
270
+ val[1] = v1;
271
+ val[2] = v2;
272
+ val[3] = v3;
273
+ val[4] = v4;
274
+ val[5] = v5;
275
+ val[6] = v6;
276
+ val[7] = v7;
277
+ val[8] = v8;
278
+ val[9] = v9;
279
+ val[10] = v10;
280
+ val[11] = v11;
281
+ for (int i = 12; i < channels; i++)
282
+ val[i] = _Tp(0);
283
+ }
284
+
285
+ template <typename _Tp, int m, int n>
286
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
287
+ _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11,
288
+ _Tp v12, _Tp v13) {
289
+ CV_StaticAssert(channels >= 14, "Matx should have at least 14 elements.");
290
+ val[0] = v0;
291
+ val[1] = v1;
292
+ val[2] = v2;
293
+ val[3] = v3;
294
+ val[4] = v4;
295
+ val[5] = v5;
296
+ val[6] = v6;
297
+ val[7] = v7;
298
+ val[8] = v8;
299
+ val[9] = v9;
300
+ val[10] = v10;
301
+ val[11] = v11;
302
+ val[12] = v12;
303
+ val[13] = v13;
304
+ for (int i = 14; i < channels; i++)
305
+ val[i] = _Tp(0);
306
+ }
307
+
308
+ template <typename _Tp, int m, int n>
309
+ inline Matx<_Tp, m, n>::Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5,
310
+ _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11,
311
+ _Tp v12, _Tp v13, _Tp v14, _Tp v15) {
312
+ CV_StaticAssert(channels >= 16, "Matx should have at least 16 elements.");
313
+ val[0] = v0;
314
+ val[1] = v1;
315
+ val[2] = v2;
316
+ val[3] = v3;
317
+ val[4] = v4;
318
+ val[5] = v5;
319
+ val[6] = v6;
320
+ val[7] = v7;
321
+ val[8] = v8;
322
+ val[9] = v9;
323
+ val[10] = v10;
324
+ val[11] = v11;
325
+ val[12] = v12;
326
+ val[13] = v13;
327
+ val[14] = v14;
328
+ val[15] = v15;
329
+ for (int i = 16; i < channels; i++)
330
+ val[i] = _Tp(0);
331
+ }
332
+
333
+ // WARNING: unreachable code using Ninja
334
+ #if defined _MSC_VER && _MSC_VER >= 1920
335
+ #pragma warning(push)
336
+ #pragma warning(disable : 4702)
337
+ #endif
338
+ template <typename _Tp, int m, int n>
339
+ inline Matx<_Tp, m, n>::Matx(const _Tp *values) {
340
+ for (int i = 0; i < channels; i++)
341
+ val[i] = values[i];
342
+ }
343
+ #if defined _MSC_VER && _MSC_VER >= 1920
344
+ #pragma warning(pop)
345
+ #endif
346
+
347
+ template <typename _Tp, int m, int n>
348
+ inline Matx<_Tp, m, n>::Matx(std::initializer_list<_Tp> list) {
349
+ CV_DbgAssert(list.size() == channels);
350
+ int i = 0;
351
+ for (const auto &elem : list) {
352
+ val[i++] = elem;
353
+ }
354
+ }
355
+
356
+ template <typename _Tp, int m, int n>
357
+ inline Matx<_Tp, m, n> Matx<_Tp, m, n>::all(_Tp alpha) {
358
+ Matx<_Tp, m, n> M;
359
+ for (int i = 0; i < m * n; i++)
360
+ M.val[i] = alpha;
361
+ return M;
362
+ }
363
+
364
+ template <typename _Tp, int m, int n>
365
+ inline Matx<_Tp, m, n> Matx<_Tp, m, n>::zeros() {
366
+ return all(0);
367
+ }
368
+
369
+ template <typename _Tp, int m, int n>
370
+ inline Matx<_Tp, m, n> Matx<_Tp, m, n>::ones() {
371
+ return all(1);
372
+ }
373
+
374
+ template <typename _Tp, int m, int n>
375
+ inline Matx<_Tp, m, n> Matx<_Tp, m, n>::eye() {
376
+ Matx<_Tp, m, n> M;
377
+ for (int i = 0; i < shortdim; i++)
378
+ M(i, i) = 1;
379
+ return M;
380
+ }
381
+
382
+ template <typename _Tp, int m, int n>
383
+ inline _Tp Matx<_Tp, m, n>::dot(const Matx<_Tp, m, n> &M) const {
384
+ _Tp s = 0;
385
+ for (int i = 0; i < channels; i++)
386
+ s += val[i] * M.val[i];
387
+ return s;
388
+ }
389
+
390
+ template <typename _Tp, int m, int n>
391
+ inline double Matx<_Tp, m, n>::ddot(const Matx<_Tp, m, n> &M) const {
392
+ double s = 0;
393
+ for (int i = 0; i < channels; i++)
394
+ s += (double)val[i] * M.val[i];
395
+ return s;
396
+ }
397
+
398
+ template <typename _Tp, int m, int n>
399
+ inline Matx<_Tp, m, n>
400
+ Matx<_Tp, m, n>::diag(const typename Matx<_Tp, m, n>::diag_type &d) {
401
+ Matx<_Tp, m, n> M;
402
+ for (int i = 0; i < shortdim; i++)
403
+ M(i, i) = d(i, 0);
404
+ return M;
405
+ }
406
+
407
+ template <typename _Tp, int m, int n>
408
+ template <typename T2>
409
+ inline Matx<_Tp, m, n>::operator Matx<T2, m, n>() const {
410
+ Matx<T2, m, n> M;
411
+ for (int i = 0; i < m * n; i++)
412
+ M.val[i] = saturate_cast<T2>(val[i]);
413
+ return M;
414
+ }
415
+
416
+ template <typename _Tp, int m, int n>
417
+ template <int m1, int n1>
418
+ inline Matx<_Tp, m1, n1> Matx<_Tp, m, n>::reshape() const {
419
+ CV_StaticAssert(
420
+ m1 * n1 == m * n,
421
+ "Input and destination matrices must have the same number of elements");
422
+ return (const Matx<_Tp, m1, n1> &)*this;
423
+ }
424
+
425
+ template <typename _Tp, int m, int n>
426
+ template <int m1, int n1>
427
+ inline Matx<_Tp, m1, n1> Matx<_Tp, m, n>::get_minor(int base_row,
428
+ int base_col) const {
429
+ CV_DbgAssert(0 <= base_row && base_row + m1 <= m && 0 <= base_col &&
430
+ base_col + n1 <= n);
431
+ Matx<_Tp, m1, n1> s;
432
+ for (int di = 0; di < m1; di++)
433
+ for (int dj = 0; dj < n1; dj++)
434
+ s(di, dj) = (*this)(base_row + di, base_col + dj);
435
+ return s;
436
+ }
437
+
438
+ template <typename _Tp, int m, int n>
439
+ inline Matx<_Tp, 1, n> Matx<_Tp, m, n>::row(int i) const {
440
+ CV_DbgAssert((unsigned)i < (unsigned)m);
441
+ return Matx<_Tp, 1, n>(&val[i * n]);
442
+ }
443
+
444
+ template <typename _Tp, int m, int n>
445
+ inline Matx<_Tp, m, 1> Matx<_Tp, m, n>::col(int j) const {
446
+ CV_DbgAssert((unsigned)j < (unsigned)n);
447
+ Matx<_Tp, m, 1> v;
448
+ for (int i = 0; i < m; i++)
449
+ v.val[i] = val[i * n + j];
450
+ return v;
451
+ }
452
+
453
+ template <typename _Tp, int m, int n>
454
+ inline typename Matx<_Tp, m, n>::diag_type Matx<_Tp, m, n>::diag() const {
455
+ diag_type d;
456
+ for (int i = 0; i < shortdim; i++)
457
+ d.val[i] = val[i * n + i];
458
+ return d;
459
+ }
460
+
461
+ template <typename _Tp, int m, int n>
462
+ inline const _Tp &Matx<_Tp, m, n>::operator()(int row_idx, int col_idx) const {
463
+ CV_DbgAssert((unsigned)row_idx < (unsigned)m &&
464
+ (unsigned)col_idx < (unsigned)n);
465
+ return this->val[row_idx * n + col_idx];
466
+ }
467
+
468
+ template <typename _Tp, int m, int n>
469
+ inline _Tp &Matx<_Tp, m, n>::operator()(int row_idx, int col_idx) {
470
+ CV_DbgAssert((unsigned)row_idx < (unsigned)m &&
471
+ (unsigned)col_idx < (unsigned)n);
472
+ return val[row_idx * n + col_idx];
473
+ }
474
+
475
+ template <typename _Tp, int m, int n>
476
+ inline const _Tp &Matx<_Tp, m, n>::operator()(int i) const {
477
+ CV_StaticAssert(
478
+ m == 1 || n == 1,
479
+ "Single index indexation requires matrix to be a column or a row");
480
+ CV_DbgAssert((unsigned)i < (unsigned)(m + n - 1));
481
+ return val[i];
482
+ }
483
+
484
+ template <typename _Tp, int m, int n>
485
+ inline _Tp &Matx<_Tp, m, n>::operator()(int i) {
486
+ CV_StaticAssert(
487
+ m == 1 || n == 1,
488
+ "Single index indexation requires matrix to be a column or a row");
489
+ CV_DbgAssert((unsigned)i < (unsigned)(m + n - 1));
490
+ return val[i];
491
+ }
492
+
493
+ template <typename _Tp, int m, int n>
494
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, m, n> &a, const Matx<_Tp, m, n> &b,
495
+ Matx_AddOp) {
496
+ for (int i = 0; i < channels; i++)
497
+ val[i] = saturate_cast<_Tp>(a.val[i] + b.val[i]);
498
+ }
499
+
500
+ template <typename _Tp, int m, int n>
501
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, m, n> &a, const Matx<_Tp, m, n> &b,
502
+ Matx_SubOp) {
503
+ for (int i = 0; i < channels; i++)
504
+ val[i] = saturate_cast<_Tp>(a.val[i] - b.val[i]);
505
+ }
506
+
507
+ template <typename _Tp, int m, int n>
508
+ template <typename _T2>
509
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, m, n> &a, _T2 alpha,
510
+ Matx_ScaleOp) {
511
+ for (int i = 0; i < channels; i++)
512
+ val[i] = saturate_cast<_Tp>(a.val[i] * alpha);
513
+ }
514
+
515
+ template <typename _Tp, int m, int n>
516
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, m, n> &a, const Matx<_Tp, m, n> &b,
517
+ Matx_MulOp) {
518
+ for (int i = 0; i < channels; i++)
519
+ val[i] = saturate_cast<_Tp>(a.val[i] * b.val[i]);
520
+ }
521
+
522
+ template <typename _Tp, int m, int n>
523
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, m, n> &a, const Matx<_Tp, m, n> &b,
524
+ Matx_DivOp) {
525
+ for (int i = 0; i < channels; i++)
526
+ val[i] = saturate_cast<_Tp>(a.val[i] / b.val[i]);
527
+ }
528
+
529
+ template <typename _Tp, int m, int n>
530
+ template <int l>
531
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, m, l> &a, const Matx<_Tp, l, n> &b,
532
+ Matx_MatMulOp) {
533
+ for (int i = 0; i < m; i++)
534
+ for (int j = 0; j < n; j++) {
535
+ _Tp s = 0;
536
+ for (int k = 0; k < l; k++)
537
+ s += a(i, k) * b(k, j);
538
+ val[i * n + j] = s;
539
+ }
540
+ }
541
+
542
+ template <typename _Tp, int m, int n>
543
+ inline Matx<_Tp, m, n>::Matx(const Matx<_Tp, n, m> &a, Matx_TOp) {
544
+ for (int i = 0; i < m; i++)
545
+ for (int j = 0; j < n; j++)
546
+ val[i * n + j] = a(j, i);
547
+ }
548
+
549
+ template <typename _Tp, int m, int n>
550
+ inline Matx<_Tp, m, n> Matx<_Tp, m, n>::mul(const Matx<_Tp, m, n> &a) const {
551
+ return Matx<_Tp, m, n>(*this, a, Matx_MulOp());
552
+ }
553
+
554
+ template <typename _Tp, int m, int n>
555
+ inline Matx<_Tp, m, n> Matx<_Tp, m, n>::div(const Matx<_Tp, m, n> &a) const {
556
+ return Matx<_Tp, m, n>(*this, a, Matx_DivOp());
557
+ }
558
+
559
+ template <typename _Tp, int m, int n>
560
+ inline Matx<_Tp, n, m> Matx<_Tp, m, n>::t() const {
561
+ return Matx<_Tp, n, m>(*this, Matx_TOp());
562
+ }
563
+
564
+ template <typename _Tp, int m, int n>
565
+ inline Vec<_Tp, n> Matx<_Tp, m, n>::solve(const Vec<_Tp, m> &rhs,
566
+ int method) const {
567
+ Matx<_Tp, n, 1> x = solve((const Matx<_Tp, m, 1> &)(rhs), method);
568
+ return (Vec<_Tp, n> &)(x);
569
+ }
570
+
571
+ template <typename _Tp, int m>
572
+ static inline double determinant(const Matx<_Tp, m, m> &a) {
573
+ return cv::internal::Matx_DetOp<_Tp, m>()(a);
574
+ }
575
+
576
+ template <typename _Tp, int m, int n>
577
+ static inline double trace(const Matx<_Tp, m, n> &a) {
578
+ _Tp s = 0;
579
+ for (int i = 0; i < std::min(m, n); i++)
580
+ s += a(i, i);
581
+ return s;
582
+ }
583
+
584
+ template <typename _Tp, int m, int n>
585
+ static inline double norm(const Matx<_Tp, m, n> &M) {
586
+ return std::sqrt(normL2Sqr<_Tp, double>(M.val, m * n));
587
+ }
588
+
589
+ template <typename _Tp, int m, int n>
590
+ static inline double norm(const Matx<_Tp, m, n> &M, int normType) {
591
+ switch (normType) {
592
+ case NORM_INF:
593
+ return (double)normInf<_Tp, typename DataType<_Tp>::work_type>(M.val,
594
+ m * n);
595
+ case NORM_L1:
596
+ return (double)normL1<_Tp, typename DataType<_Tp>::work_type>(M.val, m * n);
597
+ case NORM_L2SQR:
598
+ return (double)normL2Sqr<_Tp, typename DataType<_Tp>::work_type>(M.val,
599
+ m * n);
600
+ default:
601
+ case NORM_L2:
602
+ return std::sqrt((double)normL2Sqr<_Tp, typename DataType<_Tp>::work_type>(
603
+ M.val, m * n));
604
+ }
605
+ }
606
+
607
+ template <typename _Tp1, typename _Tp2, int m, int n>
608
+ static inline Matx<_Tp1, m, n> &operator+=(Matx<_Tp1, m, n> &a,
609
+ const Matx<_Tp2, m, n> &b) {
610
+ for (int i = 0; i < m * n; i++)
611
+ a.val[i] = saturate_cast<_Tp1>(a.val[i] + b.val[i]);
612
+ return a;
613
+ }
614
+
615
+ template <typename _Tp1, typename _Tp2, int m, int n>
616
+ static inline Matx<_Tp1, m, n> &operator-=(Matx<_Tp1, m, n> &a,
617
+ const Matx<_Tp2, m, n> &b) {
618
+ for (int i = 0; i < m * n; i++)
619
+ a.val[i] = saturate_cast<_Tp1>(a.val[i] - b.val[i]);
620
+ return a;
621
+ }
622
+
623
+ template <typename _Tp, int m, int n>
624
+ static inline Matx<_Tp, m, n> operator+(const Matx<_Tp, m, n> &a,
625
+ const Matx<_Tp, m, n> &b) {
626
+ return Matx<_Tp, m, n>(a, b, Matx_AddOp());
627
+ }
628
+
629
+ template <typename _Tp, int m, int n>
630
+ static inline Matx<_Tp, m, n> operator-(const Matx<_Tp, m, n> &a,
631
+ const Matx<_Tp, m, n> &b) {
632
+ return Matx<_Tp, m, n>(a, b, Matx_SubOp());
633
+ }
634
+
635
+ template <typename _Tp, int m, int n>
636
+ static inline Matx<_Tp, m, n> &operator*=(Matx<_Tp, m, n> &a, int alpha) {
637
+ for (int i = 0; i < m * n; i++)
638
+ a.val[i] = saturate_cast<_Tp>(a.val[i] * alpha);
639
+ return a;
640
+ }
641
+
642
+ template <typename _Tp, int m, int n>
643
+ static inline Matx<_Tp, m, n> &operator*=(Matx<_Tp, m, n> &a, float alpha) {
644
+ for (int i = 0; i < m * n; i++)
645
+ a.val[i] = saturate_cast<_Tp>(a.val[i] * alpha);
646
+ return a;
647
+ }
648
+
649
+ template <typename _Tp, int m, int n>
650
+ static inline Matx<_Tp, m, n> &operator*=(Matx<_Tp, m, n> &a, double alpha) {
651
+ for (int i = 0; i < m * n; i++)
652
+ a.val[i] = saturate_cast<_Tp>(a.val[i] * alpha);
653
+ return a;
654
+ }
655
+
656
+ template <typename _Tp, int m, int n>
657
+ static inline Matx<_Tp, m, n> operator*(const Matx<_Tp, m, n> &a, int alpha) {
658
+ return Matx<_Tp, m, n>(a, alpha, Matx_ScaleOp());
659
+ }
660
+
661
+ template <typename _Tp, int m, int n>
662
+ static inline Matx<_Tp, m, n> operator*(const Matx<_Tp, m, n> &a, float alpha) {
663
+ return Matx<_Tp, m, n>(a, alpha, Matx_ScaleOp());
664
+ }
665
+
666
+ template <typename _Tp, int m, int n>
667
+ static inline Matx<_Tp, m, n> operator*(const Matx<_Tp, m, n> &a,
668
+ double alpha) {
669
+ return Matx<_Tp, m, n>(a, alpha, Matx_ScaleOp());
670
+ }
671
+
672
+ template <typename _Tp, int m, int n>
673
+ static inline Matx<_Tp, m, n> operator*(int alpha, const Matx<_Tp, m, n> &a) {
674
+ return Matx<_Tp, m, n>(a, alpha, Matx_ScaleOp());
675
+ }
676
+
677
+ template <typename _Tp, int m, int n>
678
+ static inline Matx<_Tp, m, n> operator*(float alpha, const Matx<_Tp, m, n> &a) {
679
+ return Matx<_Tp, m, n>(a, alpha, Matx_ScaleOp());
680
+ }
681
+
682
+ template <typename _Tp, int m, int n>
683
+ static inline Matx<_Tp, m, n> operator*(double alpha,
684
+ const Matx<_Tp, m, n> &a) {
685
+ return Matx<_Tp, m, n>(a, alpha, Matx_ScaleOp());
686
+ }
687
+
688
+ template <typename _Tp, int m, int n>
689
+ static inline Matx<_Tp, m, n> &operator/=(Matx<_Tp, m, n> &a, float alpha) {
690
+ for (int i = 0; i < m * n; i++)
691
+ a.val[i] = a.val[i] / alpha;
692
+ return a;
693
+ }
694
+
695
+ template <typename _Tp, int m, int n>
696
+ static inline Matx<_Tp, m, n> &operator/=(Matx<_Tp, m, n> &a, double alpha) {
697
+ for (int i = 0; i < m * n; i++)
698
+ a.val[i] = a.val[i] / alpha;
699
+ return a;
700
+ }
701
+
702
+ template <typename _Tp, int m, int n>
703
+ static inline Matx<_Tp, m, n> operator/(const Matx<_Tp, m, n> &a, float alpha) {
704
+ return Matx<_Tp, m, n>(a, 1.f / alpha, Matx_ScaleOp());
705
+ }
706
+
707
+ template <typename _Tp, int m, int n>
708
+ static inline Matx<_Tp, m, n> operator/(const Matx<_Tp, m, n> &a,
709
+ double alpha) {
710
+ return Matx<_Tp, m, n>(a, 1. / alpha, Matx_ScaleOp());
711
+ }
712
+
713
+ template <typename _Tp, int m, int n>
714
+ static inline Matx<_Tp, m, n> operator-(const Matx<_Tp, m, n> &a) {
715
+ return Matx<_Tp, m, n>(a, -1, Matx_ScaleOp());
716
+ }
717
+
718
+ template <typename _Tp, int m, int n, int l>
719
+ static inline Matx<_Tp, m, n> operator*(const Matx<_Tp, m, l> &a,
720
+ const Matx<_Tp, l, n> &b) {
721
+ return Matx<_Tp, m, n>(a, b, Matx_MatMulOp());
722
+ }
723
+
724
+ template <typename _Tp, int m, int n>
725
+ static inline Vec<_Tp, m> operator*(const Matx<_Tp, m, n> &a,
726
+ const Vec<_Tp, n> &b) {
727
+ Matx<_Tp, m, 1> c(a, b, Matx_MatMulOp());
728
+ return (const Vec<_Tp, m> &)(c);
729
+ }
730
+
731
+ template <typename _Tp, int m, int n>
732
+ static inline bool operator==(const Matx<_Tp, m, n> &a,
733
+ const Matx<_Tp, m, n> &b) {
734
+ for (int i = 0; i < m * n; i++)
735
+ if (a.val[i] != b.val[i])
736
+ return false;
737
+ return true;
738
+ }
739
+
740
+ template <typename _Tp, int m, int n>
741
+ static inline bool operator!=(const Matx<_Tp, m, n> &a,
742
+ const Matx<_Tp, m, n> &b) {
743
+ return !(a == b);
744
+ }
745
+
746
+ //==============================================================================
747
+ // Vec
748
+
749
+ template <typename _Tp, int cn> class DataType<Vec<_Tp, cn>> {
750
+ public:
751
+ typedef Vec<_Tp, cn> value_type;
752
+ typedef Vec<typename DataType<_Tp>::work_type, cn> work_type;
753
+ typedef _Tp channel_type;
754
+ typedef value_type vec_type;
755
+
756
+ enum {
757
+ generic_type = 0,
758
+ channels = cn,
759
+ fmt = DataType<channel_type>::fmt + ((channels - 1) << 8),
760
+ #ifdef OPENCV_TRAITS_ENABLE_DEPRECATED
761
+ depth = DataType<channel_type>::depth,
762
+ type = CV_MAKETYPE(depth, channels),
763
+ #endif
764
+ _dummy_enum_finalizer = 0
765
+ };
766
+ };
767
+
768
+ namespace traits {
769
+ template <typename _Tp, int cn> struct Depth<Vec<_Tp, cn>> {
770
+ enum { value = Depth<_Tp>::value };
771
+ };
772
+ template <typename _Tp, int cn> struct Type<Vec<_Tp, cn>> {
773
+ enum { value = CV_MAKETYPE(Depth<_Tp>::value, cn) };
774
+ };
775
+ } // namespace traits
776
+
777
+ /** @brief Comma-separated Vec Initializer
778
+ */
779
+ template <typename _Tp, int m>
780
+ class VecCommaInitializer : public MatxCommaInitializer<_Tp, m, 1> {
781
+ public:
782
+ VecCommaInitializer(Vec<_Tp, m> *_vec);
783
+ template <typename T2> VecCommaInitializer<_Tp, m> &operator,(T2 val);
784
+ Vec<_Tp, m> operator*() const;
785
+ };
786
+
787
+ template <typename _Tp, typename _T2, int cn>
788
+ static inline VecCommaInitializer<_Tp, cn> operator<<(const Vec<_Tp, cn> &vec,
789
+ _T2 val) {
790
+ VecCommaInitializer<_Tp, cn> commaInitializer((Vec<_Tp, cn> *)&vec);
791
+ return (commaInitializer, val);
792
+ }
793
+
794
+ template <typename _Tp, int cn>
795
+ inline VecCommaInitializer<_Tp, cn>::VecCommaInitializer(Vec<_Tp, cn> *_vec)
796
+ : MatxCommaInitializer<_Tp, cn, 1>(_vec) {}
797
+
798
+ template <typename _Tp, int cn>
799
+ template <typename _T2>
800
+ inline VecCommaInitializer<_Tp, cn> &VecCommaInitializer<_Tp, cn>::operator,(
801
+ _T2 value) {
802
+ CV_DbgAssert(this->idx < cn);
803
+ this->dst->val[this->idx++] = saturate_cast<_Tp>(value);
804
+ return *this;
805
+ }
806
+
807
+ template <typename _Tp, int cn>
808
+ inline Vec<_Tp, cn> VecCommaInitializer<_Tp, cn>::operator*() const {
809
+ CV_DbgAssert(this->idx == cn);
810
+ return *this->dst;
811
+ }
812
+
813
+ template <typename _Tp, int cn> inline Vec<_Tp, cn>::Vec() {}
814
+
815
+ template <typename _Tp, int cn>
816
+ inline Vec<_Tp, cn>::Vec(_Tp v0) : Matx<_Tp, cn, 1>(v0) {}
817
+
818
+ template <typename _Tp, int cn>
819
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1) : Matx<_Tp, cn, 1>(v0, v1) {}
820
+
821
+ template <typename _Tp, int cn>
822
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2)
823
+ : Matx<_Tp, cn, 1>(v0, v1, v2) {}
824
+
825
+ template <typename _Tp, int cn>
826
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3)
827
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3) {}
828
+
829
+ template <typename _Tp, int cn>
830
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4)
831
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4) {}
832
+
833
+ template <typename _Tp, int cn>
834
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5)
835
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4, v5) {}
836
+
837
+ template <typename _Tp, int cn>
838
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6)
839
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4, v5, v6) {}
840
+
841
+ template <typename _Tp, int cn>
842
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6,
843
+ _Tp v7)
844
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4, v5, v6, v7) {}
845
+
846
+ template <typename _Tp, int cn>
847
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6,
848
+ _Tp v7, _Tp v8)
849
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4, v5, v6, v7, v8) {}
850
+
851
+ template <typename _Tp, int cn>
852
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6,
853
+ _Tp v7, _Tp v8, _Tp v9)
854
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {}
855
+
856
+ template <typename _Tp, int cn>
857
+ inline Vec<_Tp, cn>::Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6,
858
+ _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11, _Tp v12,
859
+ _Tp v13)
860
+ : Matx<_Tp, cn, 1>(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
861
+ v13) {}
862
+
863
+ template <typename _Tp, int cn>
864
+ inline Vec<_Tp, cn>::Vec(const _Tp *values) : Matx<_Tp, cn, 1>(values) {}
865
+
866
+ template <typename _Tp, int cn>
867
+ inline Vec<_Tp, cn>::Vec(std::initializer_list<_Tp> list)
868
+ : Matx<_Tp, cn, 1>(list) {}
869
+
870
+ template <typename _Tp, int cn>
871
+ inline Vec<_Tp, cn>::Vec(const Vec<_Tp, cn> &m) : Matx<_Tp, cn, 1>(m.val) {}
872
+
873
+ template <typename _Tp, int cn>
874
+ inline Vec<_Tp, cn>::Vec(const Matx<_Tp, cn, 1> &a, const Matx<_Tp, cn, 1> &b,
875
+ Matx_AddOp op)
876
+ : Matx<_Tp, cn, 1>(a, b, op) {}
877
+
878
+ template <typename _Tp, int cn>
879
+ inline Vec<_Tp, cn>::Vec(const Matx<_Tp, cn, 1> &a, const Matx<_Tp, cn, 1> &b,
880
+ Matx_SubOp op)
881
+ : Matx<_Tp, cn, 1>(a, b, op) {}
882
+
883
+ template <typename _Tp, int cn>
884
+ template <typename _T2>
885
+ inline Vec<_Tp, cn>::Vec(const Matx<_Tp, cn, 1> &a, _T2 alpha, Matx_ScaleOp op)
886
+ : Matx<_Tp, cn, 1>(a, alpha, op) {}
887
+
888
+ template <typename _Tp, int cn>
889
+ inline Vec<_Tp, cn> Vec<_Tp, cn>::all(_Tp alpha) {
890
+ Vec v;
891
+ for (int i = 0; i < cn; i++)
892
+ v.val[i] = alpha;
893
+ return v;
894
+ }
895
+
896
+ template <typename _Tp, int cn> inline Vec<_Tp, cn> Vec<_Tp, cn>::ones() {
897
+ return Vec::all(1);
898
+ }
899
+
900
+ template <typename _Tp, int cn> inline Vec<_Tp, cn> Vec<_Tp, cn>::zeros() {
901
+ return Vec::all(0);
902
+ }
903
+
904
+ template <typename _Tp, int cn>
905
+ inline Vec<_Tp, cn> Vec<_Tp, cn>::mul(const Vec<_Tp, cn> &v) const {
906
+ Vec<_Tp, cn> w;
907
+ for (int i = 0; i < cn; i++)
908
+ w.val[i] = saturate_cast<_Tp>(this->val[i] * v.val[i]);
909
+ return w;
910
+ }
911
+
912
+ template <> inline Vec<float, 2> Vec<float, 2>::conj() const {
913
+ return cv::internal::conjugate(*this);
914
+ }
915
+
916
+ template <> inline Vec<double, 2> Vec<double, 2>::conj() const {
917
+ return cv::internal::conjugate(*this);
918
+ }
919
+
920
+ template <> inline Vec<float, 4> Vec<float, 4>::conj() const {
921
+ return cv::internal::conjugate(*this);
922
+ }
923
+
924
+ template <> inline Vec<double, 4> Vec<double, 4>::conj() const {
925
+ return cv::internal::conjugate(*this);
926
+ }
927
+
928
+ template <typename _Tp, int cn>
929
+ inline Vec<_Tp, cn> Vec<_Tp, cn>::cross(const Vec<_Tp, cn> &) const {
930
+ CV_StaticAssert(
931
+ cn == 3, "for arbitrary-size vector there is no cross-product defined");
932
+ return Vec<_Tp, cn>();
933
+ }
934
+
935
+ template <>
936
+ inline Vec<float, 3> Vec<float, 3>::cross(const Vec<float, 3> &v) const {
937
+ return Vec<float, 3>(this->val[1] * v.val[2] - this->val[2] * v.val[1],
938
+ this->val[2] * v.val[0] - this->val[0] * v.val[2],
939
+ this->val[0] * v.val[1] - this->val[1] * v.val[0]);
940
+ }
941
+
942
+ template <>
943
+ inline Vec<double, 3> Vec<double, 3>::cross(const Vec<double, 3> &v) const {
944
+ return Vec<double, 3>(this->val[1] * v.val[2] - this->val[2] * v.val[1],
945
+ this->val[2] * v.val[0] - this->val[0] * v.val[2],
946
+ this->val[0] * v.val[1] - this->val[1] * v.val[0]);
947
+ }
948
+
949
+ template <typename _Tp, int cn>
950
+ template <typename T2>
951
+ inline Vec<_Tp, cn>::operator Vec<T2, cn>() const {
952
+ Vec<T2, cn> v;
953
+ for (int i = 0; i < cn; i++)
954
+ v.val[i] = saturate_cast<T2>(this->val[i]);
955
+ return v;
956
+ }
957
+
958
+ template <typename _Tp, int cn>
959
+ inline const _Tp &Vec<_Tp, cn>::operator[](int i) const {
960
+ CV_DbgAssert((unsigned)i < (unsigned)cn);
961
+ return this->val[i];
962
+ }
963
+
964
+ template <typename _Tp, int cn> inline _Tp &Vec<_Tp, cn>::operator[](int i) {
965
+ CV_DbgAssert((unsigned)i < (unsigned)cn);
966
+ return this->val[i];
967
+ }
968
+
969
+ template <typename _Tp, int cn>
970
+ inline const _Tp &Vec<_Tp, cn>::operator()(int i) const {
971
+ CV_DbgAssert((unsigned)i < (unsigned)cn);
972
+ return this->val[i];
973
+ }
974
+
975
+ template <typename _Tp, int cn> inline _Tp &Vec<_Tp, cn>::operator()(int i) {
976
+ CV_DbgAssert((unsigned)i < (unsigned)cn);
977
+ return this->val[i];
978
+ }
979
+
980
+ template <typename _Tp, int cn>
981
+ inline Vec<_Tp, cn> normalize(const Vec<_Tp, cn> &v) {
982
+ double nv = norm(v);
983
+ return v * (nv ? 1. / nv : 0.);
984
+ }
985
+
986
+ template <typename _Tp1, typename _Tp2, int cn>
987
+ static inline Vec<_Tp1, cn> &operator+=(Vec<_Tp1, cn> &a,
988
+ const Vec<_Tp2, cn> &b) {
989
+ for (int i = 0; i < cn; i++)
990
+ a.val[i] = saturate_cast<_Tp1>(a.val[i] + b.val[i]);
991
+ return a;
992
+ }
993
+
994
+ template <typename _Tp1, typename _Tp2, int cn>
995
+ static inline Vec<_Tp1, cn> &operator-=(Vec<_Tp1, cn> &a,
996
+ const Vec<_Tp2, cn> &b) {
997
+ for (int i = 0; i < cn; i++)
998
+ a.val[i] = saturate_cast<_Tp1>(a.val[i] - b.val[i]);
999
+ return a;
1000
+ }
1001
+
1002
+ template <typename _Tp, int cn>
1003
+ static inline Vec<_Tp, cn> operator+(const Vec<_Tp, cn> &a,
1004
+ const Vec<_Tp, cn> &b) {
1005
+ return Vec<_Tp, cn>(a, b, Matx_AddOp());
1006
+ }
1007
+
1008
+ template <typename _Tp, int cn>
1009
+ static inline Vec<_Tp, cn> operator-(const Vec<_Tp, cn> &a,
1010
+ const Vec<_Tp, cn> &b) {
1011
+ return Vec<_Tp, cn>(a, b, Matx_SubOp());
1012
+ }
1013
+
1014
+ template <typename _Tp, int cn>
1015
+ static inline Vec<_Tp, cn> &operator*=(Vec<_Tp, cn> &a, int alpha) {
1016
+ for (int i = 0; i < cn; i++)
1017
+ a[i] = saturate_cast<_Tp>(a[i] * alpha);
1018
+ return a;
1019
+ }
1020
+
1021
+ template <typename _Tp, int cn>
1022
+ static inline Vec<_Tp, cn> &operator*=(Vec<_Tp, cn> &a, float alpha) {
1023
+ for (int i = 0; i < cn; i++)
1024
+ a[i] = saturate_cast<_Tp>(a[i] * alpha);
1025
+ return a;
1026
+ }
1027
+
1028
+ template <typename _Tp, int cn>
1029
+ static inline Vec<_Tp, cn> &operator*=(Vec<_Tp, cn> &a, double alpha) {
1030
+ for (int i = 0; i < cn; i++)
1031
+ a[i] = saturate_cast<_Tp>(a[i] * alpha);
1032
+ return a;
1033
+ }
1034
+
1035
+ template <typename _Tp, int cn>
1036
+ static inline Vec<_Tp, cn> &operator/=(Vec<_Tp, cn> &a, int alpha) {
1037
+ double ialpha = 1. / alpha;
1038
+ for (int i = 0; i < cn; i++)
1039
+ a[i] = saturate_cast<_Tp>(a[i] * ialpha);
1040
+ return a;
1041
+ }
1042
+
1043
+ template <typename _Tp, int cn>
1044
+ static inline Vec<_Tp, cn> &operator/=(Vec<_Tp, cn> &a, float alpha) {
1045
+ float ialpha = 1.f / alpha;
1046
+ for (int i = 0; i < cn; i++)
1047
+ a[i] = saturate_cast<_Tp>(a[i] * ialpha);
1048
+ return a;
1049
+ }
1050
+
1051
+ template <typename _Tp, int cn>
1052
+ static inline Vec<_Tp, cn> &operator/=(Vec<_Tp, cn> &a, double alpha) {
1053
+ double ialpha = 1. / alpha;
1054
+ for (int i = 0; i < cn; i++)
1055
+ a[i] = saturate_cast<_Tp>(a[i] * ialpha);
1056
+ return a;
1057
+ }
1058
+
1059
+ template <typename _Tp, int cn>
1060
+ static inline Vec<_Tp, cn> operator*(const Vec<_Tp, cn> &a, int alpha) {
1061
+ return Vec<_Tp, cn>(a, alpha, Matx_ScaleOp());
1062
+ }
1063
+
1064
+ template <typename _Tp, int cn>
1065
+ static inline Vec<_Tp, cn> operator*(int alpha, const Vec<_Tp, cn> &a) {
1066
+ return Vec<_Tp, cn>(a, alpha, Matx_ScaleOp());
1067
+ }
1068
+
1069
+ template <typename _Tp, int cn>
1070
+ static inline Vec<_Tp, cn> operator*(const Vec<_Tp, cn> &a, float alpha) {
1071
+ return Vec<_Tp, cn>(a, alpha, Matx_ScaleOp());
1072
+ }
1073
+
1074
+ template <typename _Tp, int cn>
1075
+ static inline Vec<_Tp, cn> operator*(float alpha, const Vec<_Tp, cn> &a) {
1076
+ return Vec<_Tp, cn>(a, alpha, Matx_ScaleOp());
1077
+ }
1078
+
1079
+ template <typename _Tp, int cn>
1080
+ static inline Vec<_Tp, cn> operator*(const Vec<_Tp, cn> &a, double alpha) {
1081
+ return Vec<_Tp, cn>(a, alpha, Matx_ScaleOp());
1082
+ }
1083
+
1084
+ template <typename _Tp, int cn>
1085
+ static inline Vec<_Tp, cn> operator*(double alpha, const Vec<_Tp, cn> &a) {
1086
+ return Vec<_Tp, cn>(a, alpha, Matx_ScaleOp());
1087
+ }
1088
+
1089
+ template <typename _Tp, int cn>
1090
+ static inline Vec<_Tp, cn> operator/(const Vec<_Tp, cn> &a, int alpha) {
1091
+ return Vec<_Tp, cn>(a, 1. / alpha, Matx_ScaleOp());
1092
+ }
1093
+
1094
+ template <typename _Tp, int cn>
1095
+ static inline Vec<_Tp, cn> operator/(const Vec<_Tp, cn> &a, float alpha) {
1096
+ return Vec<_Tp, cn>(a, 1.f / alpha, Matx_ScaleOp());
1097
+ }
1098
+
1099
+ template <typename _Tp, int cn>
1100
+ static inline Vec<_Tp, cn> operator/(const Vec<_Tp, cn> &a, double alpha) {
1101
+ return Vec<_Tp, cn>(a, 1. / alpha, Matx_ScaleOp());
1102
+ }
1103
+
1104
+ template <typename _Tp, int cn>
1105
+ static inline Vec<_Tp, cn> operator-(const Vec<_Tp, cn> &a) {
1106
+ Vec<_Tp, cn> t;
1107
+ for (int i = 0; i < cn; i++)
1108
+ t.val[i] = saturate_cast<_Tp>(-a.val[i]);
1109
+ return t;
1110
+ }
1111
+
1112
+ template <typename _Tp>
1113
+ inline Vec<_Tp, 4> operator*(const Vec<_Tp, 4> &v1, const Vec<_Tp, 4> &v2) {
1114
+ return Vec<_Tp, 4>(saturate_cast<_Tp>(v1[0] * v2[0] - v1[1] * v2[1] -
1115
+ v1[2] * v2[2] - v1[3] * v2[3]),
1116
+ saturate_cast<_Tp>(v1[0] * v2[1] + v1[1] * v2[0] +
1117
+ v1[2] * v2[3] - v1[3] * v2[2]),
1118
+ saturate_cast<_Tp>(v1[0] * v2[2] - v1[1] * v2[3] +
1119
+ v1[2] * v2[0] + v1[3] * v2[1]),
1120
+ saturate_cast<_Tp>(v1[0] * v2[3] + v1[1] * v2[2] -
1121
+ v1[2] * v2[1] + v1[3] * v2[0]));
1122
+ }
1123
+
1124
+ template <typename _Tp>
1125
+ inline Vec<_Tp, 4> &operator*=(Vec<_Tp, 4> &v1, const Vec<_Tp, 4> &v2) {
1126
+ v1 = v1 * v2;
1127
+ return v1;
1128
+ }
1129
+
1130
+ } // namespace cv
1131
+
1132
+ #endif // OPENCV_CORE_MATX_INL_HPP