hyperverse 0.0.1__py3-none-any.whl

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 (746) hide show
  1. hyperdrone/__init__.py +31 -0
  2. hyperdrone/_native/cmake/hyperdrone_jit.cmake +65 -0
  3. hyperdrone/_native/common/bindings.h +39 -0
  4. hyperdrone/_native/common/cuda_staging.h +75 -0
  5. hyperdrone/_native/common/jit_host.h +69 -0
  6. hyperdrone/_native/common/models.h +24 -0
  7. hyperdrone/_native/dynamics/CMakeLists.txt +61 -0
  8. hyperdrone/_native/dynamics/host.cpp +193 -0
  9. hyperdrone/_native/dynamics/iface.h +76 -0
  10. hyperdrone/_native/dynamics/impl.cpp +608 -0
  11. hyperdrone/_native/env/CMakeLists.txt +71 -0
  12. hyperdrone/_native/env/environment.cpp +124 -0
  13. hyperdrone/_native/env/environment.h +407 -0
  14. hyperdrone/_native/env/rotorcraft_bindings.cpp +51 -0
  15. hyperdrone/_native/render/CMakeLists.txt +94 -0
  16. hyperdrone/_native/render/renderer.cpp +962 -0
  17. hyperdrone/_native/render/rig_bindings.h +151 -0
  18. hyperdrone/_native/render/scene_bindings.cpp +466 -0
  19. hyperdrone/_vendor/rl-tools/CMakeLists.txt +205 -0
  20. hyperdrone/_vendor/rl-tools/LICENSE +21 -0
  21. hyperdrone/_vendor/rl-tools/cmake/autodetect/all.cmake +34 -0
  22. hyperdrone/_vendor/rl-tools/cmake/autodetect/git-diff.cmake +100 -0
  23. hyperdrone/_vendor/rl-tools/cmake/autodetect/git-hash.cmake +24 -0
  24. hyperdrone/_vendor/rl-tools/cmake/autodetect/summary.cmake +64 -0
  25. hyperdrone/_vendor/rl-tools/cmake/autodetect/tier0-compiler.cmake +18 -0
  26. hyperdrone/_vendor/rl-tools/cmake/autodetect/tier1-blas.cmake +51 -0
  27. hyperdrone/_vendor/rl-tools/cmake/autodetect/tier2-json-hdf5-zlib.cmake +81 -0
  28. hyperdrone/_vendor/rl-tools/cmake/autodetect/tier3-tensorboard.cmake +25 -0
  29. hyperdrone/_vendor/rl-tools/cmake/autodetect/tier4-cuda.cmake +42 -0
  30. hyperdrone/_vendor/rl-tools/cmake/autodetect/tier5-cli11.cmake +24 -0
  31. hyperdrone/_vendor/rl-tools/cmake/dependencies/assimp.cmake +19 -0
  32. hyperdrone/_vendor/rl-tools/cmake/legacy_flags.cmake +33 -0
  33. hyperdrone/_vendor/rl-tools/cmake/optional/assimp.cmake +30 -0
  34. hyperdrone/_vendor/rl-tools/cmake/optional/googletest.cmake +20 -0
  35. hyperdrone/_vendor/rl-tools/cmake/optional/metal.cmake +25 -0
  36. hyperdrone/_vendor/rl-tools/cmake/optional/mujoco.cmake +89 -0
  37. hyperdrone/_vendor/rl-tools/cmake/optional/optix.cmake +25 -0
  38. hyperdrone/_vendor/rl-tools/cmake/optional/raytracing.cmake +105 -0
  39. hyperdrone/_vendor/rl-tools/cmake/optional/raytracing_generic.cmake +2 -0
  40. hyperdrone/_vendor/rl-tools/cmake/optional/vulkan.cmake +4 -0
  41. hyperdrone/_vendor/rl-tools/cmake/optional/webgpu.cmake +24 -0
  42. hyperdrone/_vendor/rl-tools/cmake/scripts/embed_text.cmake +7 -0
  43. hyperdrone/_vendor/rl-tools/cmake/scripts/generate-git-snapshot.cmake +138 -0
  44. hyperdrone/_vendor/rl-tools/include/conta/conta.h +1161 -0
  45. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/matrix.h +143 -0
  46. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_arm.h +33 -0
  47. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu.h +314 -0
  48. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_accelerate.h +37 -0
  49. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_blas.h +67 -0
  50. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_mkl.h +38 -0
  51. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cpu_openblas.h +34 -0
  52. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_cuda.h +289 -0
  53. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_dummy.h +20 -0
  54. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_esp32.h +29 -0
  55. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_generic.h +944 -0
  56. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/operations_wasm32.h +13 -0
  57. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/matrix/persist_code.h +136 -0
  58. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_arm.h +1 -0
  59. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu.h +94 -0
  60. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_accelerate.h +25 -0
  61. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_blas.h +115 -0
  62. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_mkl.h +25 -0
  63. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cpu_openblas.h +25 -0
  64. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_cuda.h +713 -0
  65. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/operations_generic.h +1356 -0
  66. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/persist_code.h +130 -0
  67. hyperdrone/_vendor/rl-tools/include/rl_tools/containers/tensor/tensor.h +490 -0
  68. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/arm.h +91 -0
  69. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu.h +209 -0
  70. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_accelerate.h +23 -0
  71. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_blas.h +21 -0
  72. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_mkl.h +45 -0
  73. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_openblas.h +56 -0
  74. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cpu_tensorboard.h +34 -0
  75. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/cuda.h +415 -0
  76. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/devices.h +97 -0
  77. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/dummy.h +55 -0
  78. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/esp32.h +85 -0
  79. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/generic.h +0 -0
  80. hyperdrone/_vendor/rl-tools/include/rl_tools/devices/wasm32.h +59 -0
  81. hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/model.h +218 -0
  82. hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/operations_generic.h +769 -0
  83. hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/persist.h +278 -0
  84. hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/policy_adapter.h +100 -0
  85. hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/policy_adapter_persist.h +52 -0
  86. hyperdrone/_vendor/rl-tools/include/rl_tools/dyn/tensor_operations_generic.h +55 -0
  87. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/c_backend.h +117 -0
  88. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/c_interface.h +36 -0
  89. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/l2f.h +98 -0
  90. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/operations_dyn.h +18 -0
  91. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/applications/l2f/operations_generic.h +268 -0
  92. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/debugging_pool/c_backend.h +31 -0
  93. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/debugging_pool/c_interface.h +12 -0
  94. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/c_backend.h +98 -0
  95. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/c_interface.h +50 -0
  96. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/executor.h +133 -0
  97. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/helper.h +109 -0
  98. hyperdrone/_vendor/rl-tools/include/rl_tools/inference/executor/operations_generic.h +219 -0
  99. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_arduino.h +117 -0
  100. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_arm.h +56 -0
  101. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cpu.h +93 -0
  102. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cpu_tensorboard.h +151 -0
  103. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_cuda.h +65 -0
  104. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_dummy.h +45 -0
  105. hyperdrone/_vendor/rl-tools/include/rl_tools/logging/operations_wasm32.h +56 -0
  106. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_arm.h +98 -0
  107. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cpu.h +138 -0
  108. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_cuda.h +380 -0
  109. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_dummy.h +93 -0
  110. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_esp32.h +92 -0
  111. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_generic.h +295 -0
  112. hyperdrone/_vendor/rl-tools/include/rl_tools/math/operations_wasm32.h +230 -0
  113. hyperdrone/_vendor/rl-tools/include/rl_tools/mode/mode.h +98 -0
  114. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/activation_functions.h +113 -0
  115. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/capability.h +61 -0
  116. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/capability/persist_code.h +31 -0
  117. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/group.h +99 -0
  118. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/layer.h +122 -0
  119. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/operations_cuda.h +64 -0
  120. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/operations_generic.h +186 -0
  121. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/avg_pool2d/persist.h +33 -0
  122. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/layer.h +300 -0
  123. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_cpu_mkl.h +590 -0
  124. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_cuda.h +809 -0
  125. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/operations_generic.h +1219 -0
  126. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/persist.h +99 -0
  127. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/conv2d/persist_code.h +170 -0
  128. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/layer.h +145 -0
  129. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_arm/dsp.h +63 -0
  130. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_arm/opt.h +173 -0
  131. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu.h +13 -0
  132. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_accelerate.h +66 -0
  133. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_blas.h +282 -0
  134. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_mkl.h +66 -0
  135. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cpu_openblas.h +65 -0
  136. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_cuda.h +519 -0
  137. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_dummy.h +8 -0
  138. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_esp32/dsp.h +58 -0
  139. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_esp32/opt.h +167 -0
  140. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/operations_generic.h +429 -0
  141. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist.h +62 -0
  142. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist_code.h +178 -0
  143. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dense/persist_common.h +59 -0
  144. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/layer.h +188 -0
  145. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/operations_cuda.h +356 -0
  146. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/operations_generic.h +536 -0
  147. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/dynamic_conv2d/persist.h +32 -0
  148. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/layer.h +119 -0
  149. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/operations_generic.h +223 -0
  150. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/embedding/persist.h +46 -0
  151. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/layer.h +121 -0
  152. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/operations_generic.h +154 -0
  153. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/persist.h +44 -0
  154. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/flatten/persist_code.h +106 -0
  155. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_cuda.h +602 -0
  156. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/helper_operations_generic.h +251 -0
  157. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/layer.h +206 -0
  158. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/operations_generic.h +889 -0
  159. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/persist.h +75 -0
  160. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/gru/persist_code.h +199 -0
  161. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/layers.h +3 -0
  162. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/layer.h +143 -0
  163. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/operations_cuda.h +80 -0
  164. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/operations_generic.h +216 -0
  165. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/max_pool2d/persist.h +39 -0
  166. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu.h +1 -0
  167. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_accelerate.h +1 -0
  168. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_blas.h +1 -0
  169. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_mkl.h +3 -0
  170. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cpu_openblas.h +1 -0
  171. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_cuda.h +9 -0
  172. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_dummy.h +1 -0
  173. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/operations_generic.h +3 -0
  174. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/layer.h +223 -0
  175. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/operations_cuda.h +138 -0
  176. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/operations_generic.h +446 -0
  177. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/resnet_block/persist.h +70 -0
  178. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/layer.h +154 -0
  179. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/operations_cuda.h +119 -0
  180. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/operations_generic.h +502 -0
  181. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/persist.h +50 -0
  182. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/sample_and_squash/persist_code.h +173 -0
  183. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/layer.h +116 -0
  184. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/operations_cuda.h +156 -0
  185. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/operations_generic.h +295 -0
  186. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/persist.h +83 -0
  187. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/standardize/persist_code.h +163 -0
  188. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/layer.h +123 -0
  189. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/operations_generic.h +272 -0
  190. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/persist.h +17 -0
  191. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/td3_sampling/persist_code.h +164 -0
  192. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/layer.h +122 -0
  193. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/operations_cuda.h +55 -0
  194. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/operations_generic.h +160 -0
  195. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/persist.h +47 -0
  196. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/unflatten/persist_code.h +106 -0
  197. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/layer.h +132 -0
  198. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/operations_cuda.h +141 -0
  199. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/layers/upsample2d/operations_generic.h +230 -0
  200. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/categorical_cross_entropy/operations_generic.h +102 -0
  201. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/mse/operations_cuda.h +97 -0
  202. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/mse/operations_generic.h +101 -0
  203. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/loss_functions/operations_generic.h +2 -0
  204. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/nn.h +14 -0
  205. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu.h +1 -0
  206. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_accelerate.h +1 -0
  207. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_blas.h +1 -0
  208. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_mkl.h +1 -0
  209. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_mux.h +16 -0
  210. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cpu_openblas.h +1 -0
  211. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_cuda.h +2 -0
  212. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_dummy.h +1 -0
  213. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/operations_generic.h +15 -0
  214. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/adam.h +121 -0
  215. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_cuda.h +98 -0
  216. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/operations_generic.h +150 -0
  217. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/persist.h +39 -0
  218. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/instance/persist_code.h +80 -0
  219. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_cuda.h +85 -0
  220. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/operations_generic.h +109 -0
  221. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/adam/persist.h +25 -0
  222. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/instance/operations_generic.h +107 -0
  223. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/lamb.h +40 -0
  224. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/lamb/operations_generic.h +68 -0
  225. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/optimizers.h +3 -0
  226. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_cuda.h +85 -0
  227. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/operations_generic.h +140 -0
  228. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/persist.h +37 -0
  229. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/instance/persist_code.h +72 -0
  230. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_cuda.h +49 -0
  231. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/operations_generic.h +50 -0
  232. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/sgd/sgd.h +92 -0
  233. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/optimizers/update.h +54 -0
  234. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/operations_cuda.h +0 -0
  235. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/operations_generic.h +98 -0
  236. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/parameters.h +79 -0
  237. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/persist.h +34 -0
  238. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/parameters/persist_code.h +136 -0
  239. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/persist.h +2 -0
  240. hyperdrone/_vendor/rl-tools/include/rl_tools/nn/persist_code.h +27 -0
  241. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/behaviors/skip_parameter_gradients.h +65 -0
  242. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/README.md +107 -0
  243. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/model.h +19 -0
  244. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/group/persist_code.h +77 -0
  245. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/network.h +174 -0
  246. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_cuda.h +10 -0
  247. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_dummy.h +8 -0
  248. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/operations_generic.h +407 -0
  249. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/persist.h +56 -0
  250. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp/persist_code.h +137 -0
  251. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/network.h +55 -0
  252. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/operations_generic.h +86 -0
  253. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/persist.h +43 -0
  254. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/mlp_unconditional_stddev/persist_code.h +142 -0
  255. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/models.h +3 -0
  256. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/model.h +148 -0
  257. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/operations_generic.h +288 -0
  258. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/persist.h +25 -0
  259. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/multi_agent_wrapper/persist_code.h +71 -0
  260. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_cpu.h +0 -0
  261. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_cuda.h +1 -0
  262. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_dummy.h +1 -0
  263. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/operations_generic.h +4 -0
  264. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/model.h +290 -0
  265. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_cuda.h +174 -0
  266. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/operations_generic.h +623 -0
  267. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/persist.h +80 -0
  268. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/parallel/persist_code.h +200 -0
  269. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/persist.h +1 -0
  270. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/persist_code.h +1 -0
  271. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/random_uniform/model.h +43 -0
  272. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/random_uniform/operations_generic.h +73 -0
  273. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/resnet/resnet.h +97 -0
  274. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/model.h +270 -0
  275. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/operations_generic.h +625 -0
  276. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/persist.h +99 -0
  277. hyperdrone/_vendor/rl-tools/include/rl_tools/nn_models/sequential/persist_code.h +115 -0
  278. hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/bf16.h +28 -0
  279. hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/categories.h +22 -0
  280. hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/persist_code.h +54 -0
  281. hyperdrone/_vendor/rl-tools/include/rl_tools/numeric_types/policy.h +48 -0
  282. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_1.h +18 -0
  283. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_2.h +14 -0
  284. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm/group_3.h +14 -0
  285. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/arm.h +19 -0
  286. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_1.h +17 -0
  287. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_2.h +12 -0
  288. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu/group_3.h +15 -0
  289. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu.h +19 -0
  290. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_1.h +16 -0
  291. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_2.h +12 -0
  292. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate/group_3.h +15 -0
  293. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_accelerate.h +19 -0
  294. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_1.h +17 -0
  295. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_2.h +12 -0
  296. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl/group_3.h +15 -0
  297. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mkl.h +18 -0
  298. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_mux.h +148 -0
  299. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_1.h +16 -0
  300. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_2.h +12 -0
  301. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas/group_3.h +15 -0
  302. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_openblas.h +18 -0
  303. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_1.h +16 -0
  304. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_2.h +12 -0
  305. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard/group_3.h +15 -0
  306. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cpu_tensorboard.h +19 -0
  307. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_1.h +18 -0
  308. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_2.h +12 -0
  309. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda/group_3.h +12 -0
  310. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/cuda.h +19 -0
  311. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_1.h +15 -0
  312. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_2.h +12 -0
  313. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy/group_3.h +12 -0
  314. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/dummy.h +19 -0
  315. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_1.h +16 -0
  316. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_2.h +12 -0
  317. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32/group_3.h +13 -0
  318. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/esp32.h +19 -0
  319. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_1.h +15 -0
  320. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_2.h +12 -0
  321. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32/group_3.h +12 -0
  322. hyperdrone/_vendor/rl-tools/include/rl_tools/operations/wasm32.h +19 -0
  323. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/hdf5/hdf5.h +54 -0
  324. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/hdf5/operations_cpu.h +419 -0
  325. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/io.h +55 -0
  326. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_cpu.h +58 -0
  327. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_generic.h +620 -0
  328. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/operations_posix.h +63 -0
  329. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/backends/tar/tar.h +74 -0
  330. hyperdrone/_vendor/rl-tools/include/rl_tools/persist/code.h +38 -0
  331. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_arm.h +39 -0
  332. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cpu.h +81 -0
  333. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_cuda.h +169 -0
  334. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_dummy.h +72 -0
  335. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_esp32.h +45 -0
  336. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_generic.h +133 -0
  337. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_generic_array.h +73 -0
  338. hyperdrone/_vendor/rl-tools/include/rl_tools/random/operations_wasm32.h +57 -0
  339. hyperdrone/_vendor/rl-tools/include/rl_tools/random/persist.h +77 -0
  340. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/camera.h +105 -0
  341. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/cache.h +26 -0
  342. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/free_space.h +60 -0
  343. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/annotations/operations_cpu.h +408 -0
  344. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/glb/operations_cpu.h +1313 -0
  345. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/operations_cpu.h +96 -0
  346. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/conversion.h +33 -0
  347. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/operations_cpu.h +141 -0
  348. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/datasets/procthor/procthor.h +40 -0
  349. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_cpu.h +733 -0
  350. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/generic/operations_generic.h +1299 -0
  351. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/context.h +198 -0
  352. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/device_source.h +17 -0
  353. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/metal/operations_cpu.h +1140 -0
  354. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device.h +233 -0
  355. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/device_impl.h +1084 -0
  356. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/operations_cuda.h +1808 -0
  357. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/optix/overlay_accel.h +64 -0
  358. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/specialization.h +38 -0
  359. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/context.h +248 -0
  360. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/device_source.h +48 -0
  361. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/vulkan/operations_cpu.h +2056 -0
  362. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/bvh_sah.h +182 -0
  363. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/context.h +303 -0
  364. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/device_source.h +17 -0
  365. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/backends/webgpu/operations_cpu.h +1455 -0
  366. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_common.h +916 -0
  367. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_mux.h +31 -0
  368. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/operations_cpu_post.h +85 -0
  369. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/renderer.h +478 -0
  370. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/save_cpu.h +315 -0
  371. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/scene.h +44 -0
  372. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/transforms_generic.h +25 -0
  373. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/raytracing/types.h +45 -0
  374. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/operations_cpu.h +119 -0
  375. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/operations_generic.h +121 -0
  376. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/rig/rig.h +70 -0
  377. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/scene.h +134 -0
  378. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/segmentation_cpu.h +145 -0
  379. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/transforms.h +204 -0
  380. hyperdrone/_vendor/rl-tools/include/rl_tools/rendering/types.h +55 -0
  381. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/algorithms.h +6 -0
  382. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_cpu.h +1 -0
  383. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_cpu_mkl.h +1 -0
  384. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/operations_generic.h +1 -0
  385. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/config.h +243 -0
  386. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_cuda.h +9 -0
  387. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/operations_generic.h +205 -0
  388. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/persist.h +109 -0
  389. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/loop/core/state.h +51 -0
  390. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/mixed_imitation.h +63 -0
  391. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_cuda.h +190 -0
  392. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic.h +332 -0
  393. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/operations_generic_mixed_imitation.h +81 -0
  394. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/persist.h +28 -0
  395. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/ppo/ppo.h +105 -0
  396. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/approximators_gru.h +84 -0
  397. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/approximators_mlp.h +61 -0
  398. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/config.h +106 -0
  399. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/operations_generic.h +193 -0
  400. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/loop/core/state.h +52 -0
  401. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu.h +9 -0
  402. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_accelerate.h +2 -0
  403. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_mkl.h +2 -0
  404. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cpu_mux.h +9 -0
  405. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_cuda.h +131 -0
  406. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/operations_generic.h +580 -0
  407. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/sac/sac.h +151 -0
  408. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/approximators_gru.h +72 -0
  409. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/approximators_mlp.h +54 -0
  410. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/config.h +107 -0
  411. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/operations_generic.h +174 -0
  412. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/loop/core/state.h +46 -0
  413. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu.h +9 -0
  414. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_accelerate.h +2 -0
  415. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_mkl.h +2 -0
  416. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cpu_mux.h +9 -0
  417. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_cuda.h +117 -0
  418. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/operations_generic.h +359 -0
  419. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/algorithms/td3/td3.h +141 -0
  420. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/components.h +4 -0
  421. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/off_policy_runner.h +225 -0
  422. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu.h +95 -0
  423. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu_accelerate.h +21 -0
  424. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cpu_mkl.h +21 -0
  425. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_cuda.h +237 -0
  426. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_generic.h +498 -0
  427. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/off_policy_runner/operations_generic_per_env.h +112 -0
  428. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/collection.h +57 -0
  429. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/on_policy_runner.h +122 -0
  430. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu.h +2 -0
  431. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_accelerate.h +8 -0
  432. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mkl.h +8 -0
  433. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cpu_mux.h +12 -0
  434. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_cuda.h +183 -0
  435. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic.h +366 -0
  436. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/operations_generic_common.h +74 -0
  437. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/on_policy_runner/persist.h +47 -0
  438. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu.h +2 -0
  439. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu_accelerate.h +1 -0
  440. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_cpu_mkl.h +1 -0
  441. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/operations_generic.h +2 -0
  442. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/operations_cpu.h +9 -0
  443. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/operations_generic.h +123 -0
  444. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/persist.h +57 -0
  445. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/replay_buffer/replay_buffer.h +93 -0
  446. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/operations_generic.h +76 -0
  447. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/persist.h +31 -0
  448. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/components/running_normalizer/running_normalizer.h +33 -0
  449. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/operations_generic.h +58 -0
  450. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/scale_observations/operations_generic.h +28 -0
  451. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/scale_observations/wrapper.h +26 -0
  452. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environment_wrappers/wrappers.h +29 -0
  453. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/acrobot.h +88 -0
  454. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/operations_cpu.h +152 -0
  455. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/acrobot/operations_generic.h +202 -0
  456. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/environment.h +40 -0
  457. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_cuda.h +204 -0
  458. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_generic.h +106 -0
  459. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/operations_generic_common.h +26 -0
  460. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/batch/persist.h +33 -0
  461. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/car.h +119 -0
  462. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_cpu.h +110 -0
  463. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_generic.h +206 -0
  464. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/operations_json.h +59 -0
  465. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/track.h +23 -0
  466. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/car/ui.h +189 -0
  467. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/environments.h +28 -0
  468. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/environment.h +87 -0
  469. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/operations_cpu.h +212 -0
  470. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/flag/operations_generic.h +215 -0
  471. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/observation.h +75 -0
  472. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cpu.h +938 -0
  473. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/operations_cuda.h +380 -0
  474. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/pose.h +228 -0
  475. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/presets.h +148 -0
  476. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_cpu.h +189 -0
  477. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/operations_generic.h +32 -0
  478. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/rig/rig.h +25 -0
  479. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/moving_gate.h +106 -0
  480. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cpu.h +262 -0
  481. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/moving_gate/operations_cuda.h +254 -0
  482. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cpu.h +224 -0
  483. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_cuda.h +218 -0
  484. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/operations_generic_position_hold.h +128 -0
  485. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/position_hold.h +22 -0
  486. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/target_frame/target_frame.h +77 -0
  487. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/autopilot.h +61 -0
  488. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/baseline.h +46 -0
  489. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/calibration.h +62 -0
  490. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/metrics.h +101 -0
  491. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/operations_cpu.h +389 -0
  492. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/tasks/visual_inertial_localization/visual_inertial_localization.h +123 -0
  493. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/hyperdrone/world.h +318 -0
  494. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/inertial_velocity.h +27 -0
  495. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/metrics.h +266 -0
  496. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/multirotor.h +1138 -0
  497. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_cpu.h +2246 -0
  498. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/05_state_is_nan.h +148 -0
  499. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/10_sample_initial_parameters.h +228 -0
  500. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/20_initial_state.h +208 -0
  501. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/30_sample_initial_state.h +300 -0
  502. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/35_get_desired_state.h +63 -0
  503. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/40_observe.h +637 -0
  504. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/50_state_algebra.h +57 -0
  505. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/60_dynamics.h +134 -0
  506. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/70_post_integration.h +368 -0
  507. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic/80_abs_diff.h +312 -0
  508. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic.h +367 -0
  509. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_generic_inertial_velocity.h +44 -0
  510. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_helper_generic.h +43 -0
  511. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic.h +70 -0
  512. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/operations_multitask_generic_forward.h +24 -0
  513. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/default.h +209 -0
  514. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/arpl.h +112 -0
  515. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/crazyflie.h +127 -0
  516. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/crazyflie_openmv.h +119 -0
  517. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/flightmare.h +111 -0
  518. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/fs.h +113 -0
  519. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/mrs.h +110 -0
  520. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/soft.h +117 -0
  521. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/soft_rigid.h +118 -0
  522. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500.h +88 -0
  523. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500_real.h +88 -0
  524. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/dynamics/x500_sim.h +114 -0
  525. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/init/default.h +56 -0
  526. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/registry.h +96 -0
  527. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/default.h +64 -0
  528. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/reward_functions.h +1 -0
  529. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/squared/operations_generic.h +202 -0
  530. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/reward_functions/squared/squared.h +52 -0
  531. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/termination/default.h +33 -0
  532. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/trajectories/lissajous.h +72 -0
  533. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/parameters/trajectories/trajectory.h +78 -0
  534. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/persist.h +21 -0
  535. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/persist_code.h +53 -0
  536. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/quaternion_helper.h +103 -0
  537. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/l2f/ui.h +180 -0
  538. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/environment.h +69 -0
  539. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/operations_cpu.h +46 -0
  540. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/memory/operations_generic.h +78 -0
  541. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/README.MD +5 -0
  542. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/ant.h +77 -0
  543. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/model.h +415 -0
  544. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/operations_cpu.h +162 -0
  545. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/persist.h +86 -0
  546. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/ant/ui.h +141 -0
  547. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/mujoco/mujoco.h +1 -0
  548. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/bottleneck.h +113 -0
  549. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/operations_cpu.h +289 -0
  550. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/bottleneck/operations_generic.h +495 -0
  551. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/multi_agent/environments.h +16 -0
  552. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/observation.h +37 -0
  553. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/operations_cpu.h +2 -0
  554. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/operations_generic.h +33 -0
  555. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/operations_cpu.h +146 -0
  556. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/operations_generic.h +262 -0
  557. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/pendulum.h +197 -0
  558. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/ui.h +97 -0
  559. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/pendulum/ui_xeus.h +124 -0
  560. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/operations_cpu.h +426 -0
  561. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/operations_generic.h +424 -0
  562. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/environments/reacher/reacher.h +137 -0
  563. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/loop.h +15 -0
  564. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/config.h +28 -0
  565. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/operations_cpu.h +233 -0
  566. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/persist.h +30 -0
  567. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/checkpoint/state.h +21 -0
  568. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/config.h +25 -0
  569. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/operations_generic.h +47 -0
  570. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/persist.h +20 -0
  571. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/curriculum/state.h +17 -0
  572. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/config.h +47 -0
  573. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/operations_generic.h +106 -0
  574. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/persist.h +40 -0
  575. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/evaluation/state.h +36 -0
  576. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/config.h +22 -0
  577. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/operations_cpu.h +44 -0
  578. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/persist.h +20 -0
  579. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/extrack/state.h +26 -0
  580. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/config.h +37 -0
  581. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/operations_cpu.h +113 -0
  582. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/persist.h +20 -0
  583. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/nn_analytics/state.h +24 -0
  584. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/config.h +43 -0
  585. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/operations_cpu.h +190 -0
  586. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/persist.h +30 -0
  587. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/save_trajectories/state.h +37 -0
  588. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/steps.h +4 -0
  589. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/config.h +27 -0
  590. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/operations_cpu.h +52 -0
  591. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/persist.h +20 -0
  592. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/loop/steps/timing/state.h +25 -0
  593. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/operations_generic.h +3 -0
  594. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/rl.h +5 -0
  595. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/evaluation.h +106 -0
  596. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/operations_cpu.h +48 -0
  597. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/evaluation/operations_generic.h +275 -0
  598. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/validation.h +269 -0
  599. hyperdrone/_vendor/rl-tools/include/rl_tools/rl/utils/validation_analysis.h +85 -0
  600. hyperdrone/_vendor/rl-tools/include/rl_tools/rl_tools.h +80 -0
  601. hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/client.h +50 -0
  602. hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_boost.h +92 -0
  603. hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_cpu.h +174 -0
  604. hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/client/operations_websocket.h +208 -0
  605. hyperdrone/_vendor/rl-tools/include/rl_tools/ui_server/server.h +448 -0
  606. hyperdrone/_vendor/rl-tools/include/rl_tools/universe.h +4 -0
  607. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/declarations_cpu.h +13 -0
  608. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_arm.h +29 -0
  609. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cpu.h +25 -0
  610. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_cuda.h +33 -0
  611. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_dummy.h +18 -0
  612. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_esp32.h +20 -0
  613. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_generic.h +19 -0
  614. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/assert/operations_wasm32.h +18 -0
  615. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/env/operations_cpu.h +16 -0
  616. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/env/operations_generic.h +14 -0
  617. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/extrack/extrack.h +129 -0
  618. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/extrack/operations_cpu.h +588 -0
  619. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/integrators.h +103 -0
  620. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/memcpy.h +16 -0
  621. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/tuple/operations_generic.h +48 -0
  622. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/tuple/tuple.h +147 -0
  623. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/typing.h +122 -0
  624. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/generic/vector_operations.h +172 -0
  625. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/polyak/operations_cuda.h +53 -0
  626. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/polyak/operations_generic.h +93 -0
  627. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/string/operations_generic.h +201 -0
  628. hyperdrone/_vendor/rl-tools/include/rl_tools/utils/zlib/operations_cpu.h +45 -0
  629. hyperdrone/_vendor/rl-tools/include/rl_tools/version.h +28 -0
  630. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/CMakeLists.txt +15 -0
  631. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/README.md +193 -0
  632. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/CMakeLists.txt +11 -0
  633. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/generic/CMakeLists.txt +17 -0
  634. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/generic/freestanding_check.cpp +135 -0
  635. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/CMakeLists.txt +31 -0
  636. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/device.metal +953 -0
  637. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/metal/metal_cpp_impl.cpp +6 -0
  638. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/CMakeLists.txt +51 -0
  639. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/device.cu +1 -0
  640. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/optix/overlay_accel.cu +311 -0
  641. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/CMakeLists.txt +37 -0
  642. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device.comp +1013 -0
  643. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/vulkan/device_spirv.cpp +44 -0
  644. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/webgpu/CMakeLists.txt +31 -0
  645. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/backends/webgpu/device.wgsl +1448 -0
  646. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/CMakeLists.txt +110 -0
  647. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/README.md +55 -0
  648. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark.cpp +180 -0
  649. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/benchmark_dynamic.cpp +491 -0
  650. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/rig.cpp +119 -0
  651. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix.cpp +1130 -0
  652. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/benchmark/simulator_matrix_config.h.in +13 -0
  653. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/camera_orbit.h +51 -0
  654. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/CMakeLists.txt +199 -0
  655. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/antialiasing.cpp +214 -0
  656. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone.cpp +320 -0
  657. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/drone_device.cu +359 -0
  658. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/environment.h +96 -0
  659. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/environment/operations_cpu.h +263 -0
  660. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/example.cpp +273 -0
  661. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/fixed_pose.cpp +221 -0
  662. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/flow.cpp +120 -0
  663. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/interactive.cpp +1015 -0
  664. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/make_drone_glb.py +172 -0
  665. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/minimal.cpp +82 -0
  666. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/minimal_overlay.cpp +137 -0
  667. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/motion_blur.cpp +232 -0
  668. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace.cpp +1829 -0
  669. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/render_pose_trace_motion_blur.cpp +647 -0
  670. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/assimp/CMakeLists.txt +8 -0
  671. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/build.sh +80 -0
  672. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/example/web/drone_web.cpp +234 -0
  673. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/CMakeLists.txt +147 -0
  674. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/README.md +15 -0
  675. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/job.sbatch +28 -0
  676. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model.h +260 -0
  677. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_config.h +24 -0
  678. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_forward_cuda.h +397 -0
  679. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_operations.h +418 -0
  680. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_persist.h +45 -0
  681. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/model_student.h +70 -0
  682. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/scene.cpp +222 -0
  683. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/scene.h +68 -0
  684. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/.gitignore +4 -0
  685. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/CMakeLists.txt +4 -0
  686. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Info.plist +24 -0
  687. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Info_ios.plist +36 -0
  688. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/CameraManager.swift +120 -0
  689. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/ContentView.swift +703 -0
  690. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/DatasetRecorder.swift +285 -0
  691. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/Sources/YawPredictorApp.swift +25 -0
  692. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/YawPredictor.entitlements +8 -0
  693. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/build.sh +66 -0
  694. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/build_ios.sh +133 -0
  695. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/generate.sh +6 -0
  696. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/h5_to_tar.cpp +82 -0
  697. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/inference.cpp +166 -0
  698. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/inference.h +26 -0
  699. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/project.yml +30 -0
  700. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/swift_app/test_tar_vs_hdf5.cpp +173 -0
  701. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_cuda.cu +699 -0
  702. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_dataset_overlay.cpp +475 -0
  703. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_distill_cuda.cu +995 -0
  704. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_eval.cu +457 -0
  705. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_real_world_eval.cpp +660 -0
  706. hyperdrone/_vendor/rl-tools/src/rendering/raytracing/yaw_prediction/yaw_prediction_viewer.cu +443 -0
  707. hyperdrone/cuda/__init__.py +78 -0
  708. hyperdrone/dynamics/__init__.py +22 -0
  709. hyperdrone/dynamics/_component.py +35 -0
  710. hyperdrone/dynamics/_config.py +48 -0
  711. hyperdrone/dynamics/_sim.py +195 -0
  712. hyperdrone/env/__init__.py +17 -0
  713. hyperdrone/env/_multi_environment.py +407 -0
  714. hyperdrone/env/_rotorcraft.py +31 -0
  715. hyperdrone/examples/.gitignore +2 -0
  716. hyperdrone/examples/Benchmark.ipynb +102 -0
  717. hyperdrone/examples/HyperDrone.ipynb +514 -0
  718. hyperdrone/examples/Orbiter.ipynb +462 -0
  719. hyperdrone/examples/Renderer.ipynb +173 -0
  720. hyperdrone/examples/__init__.py +16 -0
  721. hyperdrone/examples/articulation.py +55 -0
  722. hyperdrone/examples/benchmark.py +236 -0
  723. hyperdrone/examples/benchmark_minimal.py +65 -0
  724. hyperdrone/examples/data.py +70 -0
  725. hyperdrone/examples/drone_flythrough.py +169 -0
  726. hyperdrone/examples/hyperdrone_videos/my_world_preview.h +17 -0
  727. hyperdrone/examples/my_world.h +17 -0
  728. hyperdrone/examples/render_procthor.py +41 -0
  729. hyperdrone/examples/visual_inertial_localization.py +159 -0
  730. hyperdrone/gym/__init__.py +63 -0
  731. hyperdrone/jit/__init__.py +129 -0
  732. hyperdrone/jit/_build.py +113 -0
  733. hyperdrone/jit/_lock.py +23 -0
  734. hyperdrone/jit/_patches.py +99 -0
  735. hyperdrone/jit/_toolchain.py +17 -0
  736. hyperdrone/jit/_workspace.py +68 -0
  737. hyperdrone/render/__init__.py +53 -0
  738. hyperdrone/render/_component.py +51 -0
  739. hyperdrone/render/_config.py +92 -0
  740. hyperdrone/render/_renderer.py +447 -0
  741. hyperdrone/render/_rig.py +136 -0
  742. hyperdrone/render/_sampling.py +69 -0
  743. hyperdrone/render/_scene.py +36 -0
  744. hyperverse-0.0.1.dist-info/METADATA +370 -0
  745. hyperverse-0.0.1.dist-info/RECORD +746 -0
  746. hyperverse-0.0.1.dist-info/WHEEL +4 -0
@@ -0,0 +1,143 @@
1
+ #include "../../version.h"
2
+ #if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_CONTAINERS_MATRIX_MATRIX_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
3
+ #pragma once
4
+ #define RL_TOOLS_CONTAINERS_MATRIX_MATRIX_H
5
+
6
+ RL_TOOLS_NAMESPACE_WRAPPER_START
7
+ namespace rl_tools{
8
+ namespace matrix{
9
+ namespace layouts{
10
+
11
+ template <typename TI, TI ALIGNMENT = 1>
12
+ struct RowMajorAlignment{
13
+ template <TI ROWS, TI COLS>
14
+ static constexpr TI ROW_PITCH = ((COLS + ALIGNMENT - 1) / ALIGNMENT) * ALIGNMENT;
15
+ template <TI ROWS, TI COLS>
16
+ static constexpr TI COL_PITCH = 1;
17
+ };
18
+
19
+ template <typename TI, TI ALIGNMENT = 1>
20
+ using RowMajorAlignmentOptimized = RowMajorAlignment<TI, ALIGNMENT>;
21
+
22
+ template <typename TI, TI T_ROW_PITCH, TI T_COL_PITCH>
23
+ struct Fixed{
24
+ template <TI ROWS, TI COLS>
25
+ static constexpr TI ROW_PITCH = T_ROW_PITCH;
26
+ template <TI ROWS, TI COLS>
27
+ static constexpr TI COL_PITCH = T_COL_PITCH;
28
+ };
29
+
30
+ template <typename TI>
31
+ using DEFAULT = layouts::RowMajorAlignmentOptimized<TI>; // row-major by default
32
+
33
+ }
34
+ template <typename T_T, typename T_TI, T_TI T_ROWS, T_TI T_COLS, bool T_DYNAMIC_ALLOCATION = true, typename LAYOUT_FACTORY = matrix::layouts::DEFAULT<T_TI>, bool T_CONST = false>
35
+ struct Specification{
36
+ using T = T_T;
37
+ using TI = T_TI;
38
+ static constexpr TI ROWS = T_ROWS;
39
+ static constexpr TI COLS = T_COLS;
40
+ static constexpr TI ROW_PITCH = LAYOUT_FACTORY::template ROW_PITCH<ROWS, COLS>;
41
+ static constexpr TI COL_PITCH = LAYOUT_FACTORY::template COL_PITCH<ROWS, COLS>;
42
+ static constexpr bool DYNAMIC_ALLOCATION = T_DYNAMIC_ALLOCATION;
43
+ using LAYOUT = layouts::Fixed<TI, ROW_PITCH, COL_PITCH>;
44
+ static constexpr bool CONST = T_CONST;
45
+
46
+ static_assert(COL_PITCH * T_COLS <= ROW_PITCH || ROW_PITCH * T_ROWS <= COL_PITCH, "Pitches of the matrix dimensions are not compatible");
47
+ static constexpr bool ROW_MAJOR = ROWS * ROW_PITCH >= COL_PITCH * COLS;
48
+ static constexpr TI SIZE = ROW_MAJOR ? ROWS * ROW_PITCH : COLS * COL_PITCH;
49
+ static constexpr TI SIZE_BYTES = SIZE * sizeof(T); // todo: discount size for views
50
+ };
51
+ template <auto T_ROWS, auto T_COLS> // todo: replace old view() calling convention by new ViewSpec based one
52
+ struct ViewSpec{
53
+ static constexpr auto ROWS = T_ROWS;
54
+ static constexpr auto COLS = T_COLS;
55
+ };
56
+ }
57
+ namespace matrix{
58
+ template <typename T, typename TI, TI SIZE>
59
+ struct MatrixStatic{
60
+ static constexpr bool DYNAMIC_ALLOCATION = false;
61
+ T _data[SIZE];
62
+ };
63
+ template <typename T, typename TI, TI SIZE_BYTES, bool CONST = false>
64
+ struct MatrixDynamic{
65
+ static constexpr bool DYNAMIC_ALLOCATION = true;
66
+ T* RL_TOOLS_RESTRICT _data = nullptr;
67
+ };
68
+ template <typename T, typename TI, TI SIZE_BYTES>
69
+ struct MatrixDynamic<T, TI, SIZE_BYTES, true>{
70
+ static constexpr bool DYNAMIC_ALLOCATION = true;
71
+ const T* RL_TOOLS_RESTRICT _data = nullptr;
72
+ };
73
+ }
74
+
75
+ template <typename T_SPEC>
76
+ struct Matrix: utils::typing::conditional_t<T_SPEC::DYNAMIC_ALLOCATION, matrix::MatrixDynamic<typename T_SPEC::T, typename T_SPEC::TI, T_SPEC::SIZE_BYTES, T_SPEC::CONST>, matrix::MatrixStatic<typename T_SPEC::T, typename T_SPEC::TI, T_SPEC::SIZE>>{
77
+ using SPEC = T_SPEC;
78
+ using T = typename SPEC::T;
79
+ using TI = typename SPEC::TI;
80
+ static constexpr TI ROWS = SPEC::ROWS;
81
+ static constexpr TI COLS = SPEC::COLS;
82
+ static constexpr TI ROW_PITCH = SPEC::ROW_PITCH;
83
+ static constexpr TI COL_PITCH = SPEC::COL_PITCH;
84
+
85
+ using VIEW_LAYOUT = matrix::layouts::Fixed<typename SPEC::TI, SPEC::ROW_PITCH, SPEC::COL_PITCH>;
86
+
87
+ template<typename SPEC::TI ROWS = SPEC::ROWS, typename SPEC::TI COLS = SPEC::COLS>
88
+ using VIEW = Matrix<matrix::Specification<T, TI, ROWS, COLS, true, VIEW_LAYOUT>>;
89
+ // virtual void _abstract_tag(){};
90
+ // // pure virtual function to make this class abstract (should be instantiated by either the MatrixStatic or MatrixDynamic subclasses class)
91
+ // virtual void _abstract_tag() = 0;
92
+ // Matrix() = default;
93
+ // T* _data = nullptr;
94
+ // Matrix() = default;
95
+ // Matrix(T* data): _data(data){};
96
+ };
97
+ // template<typename T_SPEC>
98
+ // struct MatrixDynamic: Matrix<T_SPEC>{
99
+ // using T = typename MatrixDynamic::T;
100
+ // using TI = typename MatrixDynamic::TI;
101
+ // using SPEC = T_SPEC;
102
+ //
103
+ // template<typename SPEC::TI ROWS, typename SPEC::TI COLS>
104
+ // using VIEW = MatrixDynamic<matrix::Specification<T, TI, ROWS, COLS, typename MatrixDynamic::VIEW_LAYOUT, true>>;
105
+ //// virtual void _abstract_tag(){};
106
+ // };
107
+ // struct MatrixDynamicTag{
108
+ // template<typename T_SPEC>
109
+ // using type = MatrixDynamic<T_SPEC>;
110
+ // };
111
+ // template<typename T_SPEC>
112
+ // struct MatrixStatic: Matrix<T_SPEC>{
113
+ // using T = typename MatrixStatic::T;
114
+ // using TI = typename MatrixStatic::TI;
115
+ // using SPEC = T_SPEC;
116
+ //
117
+ // template<typename SPEC::TI ROWS, typename SPEC::TI COLS>
118
+ // using VIEW = MatrixDynamic<matrix::Specification<T, TI, ROWS, COLS, typename MatrixStatic::VIEW_LAYOUT, true>>;
119
+ //// virtual void _abstract_tag(){};
120
+ //
121
+ // alignas(T) unsigned char _data_memory[SPEC::SIZE_BYTES];
122
+ // MatrixStatic(): Matrix<T_SPEC>((T*)_data_memory){};
123
+ // };
124
+ // struct MatrixStaticTag{
125
+ // template<typename T_SPEC>
126
+ // using type = MatrixStatic<T_SPEC>;
127
+ // };
128
+ // namespace matrix{
129
+ // template <typename T, typename TI>
130
+ // using Empty = Matrix<matrix::Specification<T, TI, 0, 0>>;
131
+ // }
132
+
133
+
134
+ namespace containers{
135
+ template<typename SPEC_1, typename SPEC_2>
136
+ constexpr bool check_structure = SPEC_1::ROWS == SPEC_2::ROWS && SPEC_1::COLS == SPEC_2::COLS;
137
+ template<typename SPEC_1, typename SPEC_2>
138
+ constexpr bool check_memory_layout = check_structure<SPEC_1, SPEC_2> && SPEC_1::ROW_PITCH == SPEC_2::ROW_PITCH && SPEC_1::COL_PITCH == SPEC_2::COL_PITCH && utils::typing::is_same_v<typename SPEC_1::T, typename SPEC_2::T> && SPEC_1::SIZE_BYTES == SPEC_2::SIZE_BYTES; // check if e.g. direct memory copy is possible
139
+ }
140
+ }
141
+ RL_TOOLS_NAMESPACE_WRAPPER_END
142
+
143
+ #endif
@@ -0,0 +1,33 @@
1
+ #include "../../version.h"
2
+ #if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_ARM_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
3
+ #pragma once
4
+ #define RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_ARM_H
5
+
6
+ #include "operations_generic.h"
7
+ // #include <cstring> // formemcpy
8
+ RL_TOOLS_NAMESPACE_WRAPPER_START
9
+ namespace rl_tools{
10
+ template<typename SOURCE_DEV_SPEC, typename TARGET_DEV_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
11
+ void copy_view(devices::ARM<SOURCE_DEV_SPEC>& source_device, devices::ARM<TARGET_DEV_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
12
+ using SOURCE_DEVICE = devices::ARM<SOURCE_DEV_SPEC>;
13
+ static_assert(containers::check_structure<SOURCE_SPEC, TARGET_SPEC>);
14
+ using SPEC = SOURCE_SPEC;
15
+ vectorize_unary<SOURCE_DEVICE, SOURCE_SPEC, TARGET_SPEC, containers::vectorization::operators::copy<typename SOURCE_DEVICE::SPEC::MATH, typename SPEC::T>>(source_device, source, target);
16
+ }
17
+ template<typename SOURCE_DEV_SPEC, typename TARGET_DEV_SPEC, typename SPEC_1, typename SPEC_2>
18
+ void copy(devices::ARM<SOURCE_DEV_SPEC>& source_device, devices::ARM<TARGET_DEV_SPEC>& target_device, const Matrix<SPEC_1>& source, Matrix<SPEC_2>& target){
19
+ static_assert(containers::check_structure<SPEC_1, SPEC_2>);
20
+ using DEVICE = devices::ARM<SOURCE_DEV_SPEC>;
21
+ using TI = typename DEVICE::index_t;
22
+ if constexpr(containers::check_memory_layout<SPEC_1, SPEC_2>){
23
+ for(TI i = 0; i < SPEC_1::SIZE; i++){
24
+ target._data[i] = source._data[i];
25
+ }
26
+ }
27
+ else{
28
+ copy_view(source_device, target_device, source, target);
29
+ }
30
+ }
31
+ }
32
+ RL_TOOLS_NAMESPACE_WRAPPER_END
33
+ #endif
@@ -0,0 +1,314 @@
1
+ #include "../../version.h"
2
+ #if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
3
+ #pragma once
4
+ #define RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_H
5
+
6
+ #include "operations_generic.h"
7
+
8
+ #include <iostream>
9
+ #include <iomanip>
10
+ // #include <immintrin.h> // For AVX intrinsics
11
+ #include <cstdlib>
12
+ RL_TOOLS_NAMESPACE_WRAPPER_START
13
+ namespace rl_tools{
14
+ template<typename DEVICE, typename SPEC>
15
+ void print(DEVICE& device, const Matrix<SPEC>& m){
16
+ for(typename DEVICE::index_t row_i = 0; row_i < SPEC::ROWS; row_i++){
17
+ for(typename DEVICE::index_t col_i = 0; col_i < SPEC::COLS; col_i++){
18
+ std::cout << std::fixed << std::setw(12) << std::setprecision(6) << get(m, row_i, col_i) << " ";
19
+ }
20
+ std::cout << std::endl;
21
+ }
22
+ }
23
+ template<typename DEVICE, typename SPEC>
24
+ void print_python_literal(DEVICE& device, const Matrix<SPEC>& m){
25
+ std::cout << "[" << std::endl;
26
+ for(typename DEVICE::index_t row_i = 0; row_i < SPEC::ROWS; row_i++){
27
+ std::cout << " [";
28
+ for(typename DEVICE::index_t col_i = 0; col_i < SPEC::COLS; col_i++){
29
+ std::cout << std::fixed << std::setw(12) << std::setprecision(6) << get(m, row_i, col_i);
30
+ if(col_i < SPEC::COLS - 1){
31
+ std::cout << ", ";
32
+ }
33
+ }
34
+ std::cout << "],";
35
+ std::cout << std::endl;
36
+ }
37
+ std::cout << "]" << std::endl;
38
+ }
39
+ template<typename SOURCE_DEV_SPEC, typename TARGET_DEV_SPEC, typename SPEC_1, typename SPEC_2>
40
+ RL_TOOLS_FUNCTION_PLACEMENT void copy_view(devices::CPU<SOURCE_DEV_SPEC>& source_device, devices::CPU<TARGET_DEV_SPEC>& target_device, const Matrix<SPEC_1>& source, Matrix<SPEC_2>& target){
41
+ using SOURCE_DEVICE = devices::CPU<SOURCE_DEV_SPEC>;
42
+ static_assert(containers::check_structure<SPEC_1, SPEC_2>);
43
+ using SPEC = SPEC_1;
44
+ vectorize_unary<SOURCE_DEVICE, SPEC_1, SPEC_2, containers::vectorization::operators::copy<typename SOURCE_DEVICE::SPEC::MATH, typename SPEC::T>>(source_device, source, target);
45
+ }
46
+ template<typename SOURCE_DEV_SPEC, typename TARGET_DEV_SPEC, typename SPEC_1, typename SPEC_2>
47
+ RL_TOOLS_FUNCTION_PLACEMENT void copy(devices::CPU<SOURCE_DEV_SPEC>& source_device, devices::CPU<TARGET_DEV_SPEC>& target_device, const Matrix<SPEC_1>& source, Matrix<SPEC_2>& target){
48
+ using SOURCE_DEVICE = devices::CPU<SOURCE_DEV_SPEC>;
49
+ using TI = typename SOURCE_DEVICE::index_t;
50
+ static_assert(containers::check_structure<SPEC_1, SPEC_2>);
51
+ if constexpr(containers::check_memory_layout<SPEC_1, SPEC_2>){
52
+ for(TI i = 0; i < SPEC_1::SIZE; i++){
53
+ target._data[i] = source._data[i];
54
+ }
55
+ }
56
+ else{
57
+ copy_view(source_device, target_device, source, target);
58
+ }
59
+ }
60
+ template<typename DEV_SPEC, typename SPEC, typename SPEC::TI ROWS, typename SPEC::TI COLS>
61
+ RL_TOOLS_FUNCTION_PLACEMENT auto view(devices::CPU<DEV_SPEC>& device, const Matrix<SPEC>& m, typename SPEC::TI row, typename SPEC::TI col){
62
+ using DEVICE = devices::CPU<DEV_SPEC>;
63
+ static_assert(SPEC::ROWS >= ROWS);
64
+ static_assert(SPEC::COLS >= COLS);
65
+ #ifdef RL_TOOLS_DEBUG_CONTAINER_CHECK_BOUNDS
66
+ utils::assert_exit(device, (row + ROWS) <= SPEC::ROWS, "row + ROWS <= SPEC::ROWS");
67
+ utils::assert_exit(device, (col + COLS) <= SPEC::COLS, "col + COLS <= SPEC::COLS");
68
+ #endif
69
+ return _view<DEVICE, SPEC, ROWS, COLS>(device, m, row, col);
70
+ }
71
+ template<typename DEV_SPEC, typename SPEC>
72
+ RL_TOOLS_FUNCTION_PLACEMENT std::vector<std::vector<typename SPEC::T>> std_vector(devices::CPU<DEV_SPEC>& device, Matrix<SPEC>& matrix){
73
+ using DEVICE = devices::CPU<DEV_SPEC>;
74
+ using TI = typename DEVICE::index_t;
75
+ std::vector<std::vector<typename SPEC::T>> result;
76
+ for(TI row_i = 0; row_i < SPEC::ROWS; row_i++){
77
+ std::vector<typename SPEC::T> row;
78
+ for(TI col_i = 0; col_i < SPEC::COLS; col_i++){
79
+ row.push_back(get(matrix, row_i, col_i));
80
+ }
81
+ result.push_back(row);
82
+ }
83
+ return result;
84
+ }
85
+ template<typename DEVICE_SPEC, typename SPEC_A, typename SPEC_B, typename SPEC_C>
86
+ RL_TOOLS_FUNCTION_PLACEMENT void multiply_naive(devices::CPU<DEVICE_SPEC>& device, const Matrix<SPEC_A>& A, const Matrix<SPEC_B>& B, Matrix<SPEC_C>& C){
87
+ static_assert(SPEC_A::ROWS == SPEC_C::ROWS);
88
+ static_assert(SPEC_A::COLS == SPEC_B::ROWS);
89
+ static_assert(SPEC_B::COLS == SPEC_C::COLS);
90
+ using DEVICE = devices::CPU<DEVICE_SPEC>;
91
+
92
+ using TA = typename SPEC_A::T;
93
+ using TB = typename SPEC_B::T;
94
+ using TC = typename SPEC_C::T;
95
+ using TI = typename DEVICE::index_t;
96
+
97
+ constexpr TI M = SPEC_A::ROWS;
98
+ constexpr TI N = SPEC_B::COLS;
99
+ constexpr TI K = SPEC_A::COLS;
100
+
101
+ const TA * RL_TOOLS_RESTRICT A_data = A._data;
102
+ const TB * RL_TOOLS_RESTRICT B_data = B._data;
103
+ TC * RL_TOOLS_RESTRICT C_data = C._data;
104
+
105
+ for (TI i = 0; i < M * N; ++i) {
106
+ C_data[i] = (TC)0.0f;
107
+ }
108
+
109
+ for (TI i = 0; i < M; ++i) {
110
+ for (TI k_idx = 0; k_idx < K; ++k_idx) {
111
+ TA A_val = A_data[i * K + k_idx];
112
+ for (TI j = 0; j < N; ++j) {
113
+ C_data[i * N + j] += A_val * B_data[k_idx * N + j];
114
+ }
115
+ }
116
+ }
117
+ }
118
+ template<typename DEVICE_SPEC, typename SPEC_A, typename SPEC_B, typename SPEC_C>
119
+ RL_TOOLS_FUNCTION_PLACEMENT void multiply_tiled(devices::CPU<DEVICE_SPEC>& device, const Matrix<SPEC_A>& A, const Matrix<SPEC_B>& B, Matrix<SPEC_C>& C) {
120
+ static_assert(SPEC_A::ROWS == SPEC_C::ROWS);
121
+ static_assert(SPEC_A::COLS == SPEC_B::ROWS);
122
+ static_assert(SPEC_B::COLS == SPEC_C::COLS);
123
+ using DEVICE = devices::CPU<DEVICE_SPEC>;
124
+
125
+ using TA = typename SPEC_A::T;
126
+ using TB = typename SPEC_B::T;
127
+ using TC = typename SPEC_C::T;
128
+ using TI = typename DEVICE::index_t;
129
+
130
+ constexpr TI M = SPEC_A::ROWS;
131
+ constexpr TI N = SPEC_B::COLS;
132
+ constexpr TI K = SPEC_A::COLS;
133
+ constexpr TI blockSize = 32;
134
+
135
+ const TA * RL_TOOLS_RESTRICT A_data = A._data;
136
+ const TB * RL_TOOLS_RESTRICT B_data = B._data;
137
+ TC * RL_TOOLS_RESTRICT C_data = C._data;
138
+
139
+ // Initialize C to zero
140
+ for (TI i = 0; i < M * N; ++i) {
141
+ C_data[i] = (TC) 0.0f;
142
+ }
143
+
144
+ for (TI ii = 0; ii < M; ii += blockSize){
145
+ for (TI kk = 0; kk < K; kk += blockSize){
146
+ for (TI jj = 0; jj < N; jj += blockSize){
147
+ TI i_end = (ii + blockSize > M) ? M : ii + blockSize;
148
+ TI k_end = (kk + blockSize > K) ? K : kk + blockSize;
149
+ TI j_end = (jj + blockSize > N) ? N : jj + blockSize;
150
+ for (TI i = ii; i < i_end; ++i) {
151
+ for (TI k_idx = kk; k_idx < k_end; ++k_idx) {
152
+ TA A_val = A_data[i * K + k_idx];
153
+ for (TI j = jj; j < j_end; ++j) {
154
+ C_data[i * N + j] += A_val * B_data[k_idx * N + j];
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+
163
+ // template<typename DEVICE_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
164
+ // void multiply_tiled_simd(devices::CPU<DEVICE_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& C) {
165
+ // // Ensure matrix dimensions are compatible
166
+ // static_assert(INPUT_SPEC_A::ROWS == OUTPUT_SPEC::ROWS, "A.rows must equal C.rows");
167
+ // static_assert(INPUT_SPEC_A::COLS == INPUT_SPEC_B::ROWS, "A.cols must equal B.rows");
168
+ // static_assert(INPUT_SPEC_B::COLS == OUTPUT_SPEC::COLS, "B.cols must equal C.cols");
169
+ // using DEVICE = devices::CPU<DEVICE_SPEC>;
170
+ //
171
+ // using T = typename OUTPUT_SPEC::T;
172
+ // using TI = typename DEVICE_SPEC::index_t; // Corrected index type
173
+ //
174
+ // constexpr TI M = INPUT_SPEC_A::ROWS;
175
+ // constexpr TI N = INPUT_SPEC_B::COLS;
176
+ // constexpr TI K = INPUT_SPEC_A::COLS;
177
+ // constexpr TI blockSize = 32; // Adjust block size as needed
178
+ //
179
+ // T* RL_TOOLS_RESTRICT A_data = A._data;
180
+ // T* RL_TOOLS_RESTRICT B_data = B._data;
181
+ // T* RL_TOOLS_RESTRICT C_data = C._data;
182
+ //
183
+ // // Initialize C to zero
184
+ // for (TI i = 0; i < M * N; ++i) {
185
+ // C_data[i] = static_cast<T>(0);
186
+ // }
187
+ //
188
+ // // Tiled matrix multiplication with SIMD intrinsics
189
+ // for (TI ii = 0; ii < M; ii += blockSize) {
190
+ // for (TI kk = 0; kk < K; kk += blockSize) {
191
+ // for (TI jj = 0; jj < N; jj += blockSize) {
192
+ // TI i_end = (ii + blockSize > M) ? M : ii + blockSize;
193
+ // TI k_end = (kk + blockSize > K) ? K : kk + blockSize;
194
+ // TI j_end = (jj + blockSize > N) ? N : jj + blockSize;
195
+ //
196
+ // for (TI i = ii; i < i_end; ++i) {
197
+ // for (TI k_idx = kk; k_idx < k_end; ++k_idx) {
198
+ // T A_val = A_data[i * K + k_idx];
199
+ //
200
+ // // SIMD vectorization over the j loop
201
+ // TI j = jj;
202
+ // // Process 8 elements at a time using AVX
203
+ // for (; j <= j_end - 8; j += 8) {
204
+ // // Load B and C data into vectors
205
+ // __m256 B_vec = _mm256_loadu_ps(&B_data[k_idx * N + j]);
206
+ // __m256 C_vec = _mm256_loadu_ps(&C_data[i * N + j]);
207
+ // __m256 A_vec = _mm256_set1_ps(A_val); // Broadcast A_val
208
+ //
209
+ // // Perform fused multiply-add: C_vec += A_vec * B_vec
210
+ // C_vec = _mm256_fmadd_ps(A_vec, B_vec, C_vec);
211
+ //
212
+ // // Store the result back to C_data
213
+ // _mm256_storeu_ps(&C_data[i * N + j], C_vec);
214
+ // }
215
+ //
216
+ // // Handle remaining elements
217
+ // for (; j < j_end; ++j) {
218
+ // C_data[i * N + j] += A_val * B_data[k_idx * N + j];
219
+ // }
220
+ // }
221
+ // }
222
+ // }
223
+ // }
224
+ // }
225
+ // }
226
+ // template<typename DEVICE_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
227
+ // void multiply_tiled_simd_ptr(devices::CPU<DEVICE_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& C) {
228
+ // // Ensure matrix dimensions are compatible
229
+ // static_assert(INPUT_SPEC_A::ROWS == OUTPUT_SPEC::ROWS, "A.rows must equal C.rows");
230
+ // static_assert(INPUT_SPEC_A::COLS == INPUT_SPEC_B::ROWS, "A.cols must equal B.rows");
231
+ // static_assert(INPUT_SPEC_B::COLS == OUTPUT_SPEC::COLS, "B.cols must equal C.cols");
232
+ //
233
+ // using T = typename OUTPUT_SPEC::T;
234
+ // using TI = typename DEVICE_SPEC::index_t;
235
+ //
236
+ // constexpr TI M = INPUT_SPEC_A::ROWS;
237
+ // constexpr TI N = INPUT_SPEC_B::COLS;
238
+ // constexpr TI K = INPUT_SPEC_A::COLS;
239
+ // constexpr TI blockSize = 32; // Adjust as needed
240
+ //
241
+ // T* RL_TOOLS_RESTRICT A_data = A._data;
242
+ // T* RL_TOOLS_RESTRICT B_data = B._data;
243
+ // T* RL_TOOLS_RESTRICT C_data = C._data;
244
+ //
245
+ // // Initialize C to zero
246
+ // std::fill(C_data, C_data + M * N, static_cast<T>(0));
247
+ //
248
+ // // Tiled matrix multiplication with SIMD intrinsics and pointer arithmetic
249
+ // for (TI ii = 0; ii < M; ii += blockSize) {
250
+ // for (TI kk = 0; kk < K; kk += blockSize) {
251
+ // for (TI jj = 0; jj < N; jj += blockSize) {
252
+ // TI i_end = std::min(ii + blockSize, M);
253
+ // TI k_end = std::min(kk + blockSize, K);
254
+ // TI j_end = std::min(jj + blockSize, N);
255
+ //
256
+ // for (TI i = ii; i < i_end; ++i) {
257
+ // T* RL_TOOLS_RESTRICT C_row_ptr = C_data + i * N + jj;
258
+ // T* RL_TOOLS_RESTRICT A_row_ptr = A_data + i * K + kk;
259
+ //
260
+ // for (TI k_idx = kk; k_idx < k_end; ++k_idx) {
261
+ // T A_val = A_row_ptr[k_idx - kk]; // Offset within the block
262
+ // T* RL_TOOLS_RESTRICT B_row_ptr = B_data + k_idx * N + jj;
263
+ //
264
+ // TI j = jj;
265
+ //
266
+ // // SIMD vectorization over the j loop
267
+ // for (; j <= j_end - 8; j += 8) {
268
+ // __m256 A_vec = _mm256_set1_ps(A_val);
269
+ // __m256 B_vec = _mm256_loadu_ps(B_row_ptr + (j - jj));
270
+ // __m256 C_vec = _mm256_loadu_ps(C_row_ptr + (j - jj));
271
+ //
272
+ // C_vec = _mm256_fmadd_ps(A_vec, B_vec, C_vec);
273
+ //
274
+ // _mm256_storeu_ps(C_row_ptr + (j - jj), C_vec);
275
+ // }
276
+ //
277
+ // // Handle remaining elements
278
+ // for (; j < j_end; ++j) {
279
+ // C_row_ptr[j - jj] += A_val * B_row_ptr[j - jj];
280
+ // }
281
+ // }
282
+ // }
283
+ // }
284
+ // }
285
+ // }
286
+ // }
287
+
288
+ template<typename DEVICE_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
289
+ RL_TOOLS_FUNCTION_PLACEMENT void multiply(devices::CPU<DEVICE_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& C){
290
+ using DEVICE = devices::CPU<DEVICE_SPEC>;
291
+ using TI = typename DEVICE::index_t;
292
+ constexpr TI M = INPUT_SPEC_A::ROWS;
293
+ constexpr TI N = INPUT_SPEC_B::COLS;
294
+ constexpr TI K = INPUT_SPEC_A::COLS;
295
+ if constexpr(INPUT_SPEC_A::COL_PITCH == 1 && INPUT_SPEC_B::COL_PITCH == 1 && OUTPUT_SPEC::COL_PITCH == 1 && INPUT_SPEC_A::ROW_PITCH == INPUT_SPEC_A::COLS && INPUT_SPEC_B::ROW_PITCH == INPUT_SPEC_B::COLS && OUTPUT_SPEC::ROW_PITCH == OUTPUT_SPEC::COLS){
296
+ if(M <= 32 || N <= 32 || K <= 32){
297
+ multiply_tiled(device, A, B, C);
298
+ }
299
+ else{
300
+ if(M <= 64 || N <= 64 || K <= 64){
301
+ multiply_tiled(device, A, B, C);
302
+ } else {
303
+ multiply_naive(device, A, B, C);
304
+ }
305
+ }
306
+ }
307
+ else{
308
+ multiply_generic<false>(device, A, B, C);
309
+ }
310
+ }
311
+ }
312
+ RL_TOOLS_NAMESPACE_WRAPPER_END
313
+
314
+ #endif
@@ -0,0 +1,37 @@
1
+ #include "../../version.h"
2
+ #if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_ACCELERATE_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
3
+ #pragma once
4
+ #define RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_ACCELERATE_H
5
+
6
+ #include <Accelerate/Accelerate.h>
7
+ #include "matrix.h"
8
+ #include "operations_cpu_blas.h"
9
+ #include "../../devices/cpu_accelerate.h"
10
+
11
+ RL_TOOLS_NAMESPACE_WRAPPER_START
12
+ namespace rl_tools{
13
+ template<typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
14
+ void multiply(devices::CPU_ACCELERATE<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output) {
15
+ multiply(static_cast<devices::CPU_BLAS<DEV_SPEC>&>(device), A, B, output);
16
+ }
17
+ template<typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
18
+ void multiply_accumulate(devices::CPU_ACCELERATE<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output) {
19
+ multiply_accumulate(static_cast<devices::CPU_BLAS<DEV_SPEC>&>(device), A, B, output);
20
+ }
21
+ template<typename SOURCE_DEVICE_SPEC, typename TARGET_DEVICE_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
22
+ void copy(devices::CPU_ACCELERATE<SOURCE_DEVICE_SPEC>& source_device, devices::CPU_ACCELERATE<TARGET_DEVICE_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
23
+ copy(static_cast<devices::CPU_BLAS<SOURCE_DEVICE_SPEC>&>(source_device), static_cast<devices::CPU_BLAS<TARGET_DEVICE_SPEC>&>(target_device), source, target);
24
+ }
25
+ template<typename SOURCE_DEVICE_SPEC, typename TARGET_DEVICE, typename SOURCE_SPEC, typename TARGET_SPEC>
26
+ void copy(devices::CPU_ACCELERATE<SOURCE_DEVICE_SPEC>& source_device, TARGET_DEVICE& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
27
+ copy(static_cast<devices::CPU_BLAS<SOURCE_DEVICE_SPEC>&>(source_device), target_device, source, target);
28
+ }
29
+ template<typename SOURCE_DEVICE, typename TARGET_DEVICE_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
30
+ void copy(SOURCE_DEVICE& source_device, devices::CPU_ACCELERATE<TARGET_DEVICE_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
31
+ copy(source_device, static_cast<devices::CPU_BLAS<TARGET_DEVICE_SPEC>&>(target_device), source, target);
32
+ }
33
+ }
34
+ RL_TOOLS_NAMESPACE_WRAPPER_END
35
+ #endif
36
+
37
+ #include "operations_cpu_blas.h"
@@ -0,0 +1,67 @@
1
+ #include "../../version.h"
2
+ #if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_BLAS_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
3
+ #pragma once
4
+ #define RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_BLAS_H
5
+
6
+ #include "operations_cpu.h"
7
+ RL_TOOLS_NAMESPACE_WRAPPER_START
8
+ namespace rl_tools{
9
+ namespace containers::matrix{
10
+ template<bool ACCUMULATE, typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
11
+ void multiply_blas(devices::CPU_BLAS<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output) {
12
+ static_assert(INPUT_SPEC_A::ROWS == OUTPUT_SPEC::ROWS);
13
+ static_assert(INPUT_SPEC_A::COLS == INPUT_SPEC_B::ROWS);
14
+ static_assert(INPUT_SPEC_B::COLS == OUTPUT_SPEC::COLS);
15
+ static_assert(INPUT_SPEC_A::ROW_PITCH == 1 || INPUT_SPEC_A::COL_PITCH == 1); // dense row- or column-major
16
+ static_assert(INPUT_SPEC_B::ROW_PITCH == 1 || INPUT_SPEC_B::COL_PITCH == 1); // dense row- or column-major
17
+
18
+ using T = typename OUTPUT_SPEC::T;
19
+ using TI = typename DEV_SPEC::index_t;
20
+
21
+ constexpr bool A_ROW_MAJOR = INPUT_SPEC_A::ROW_PITCH >= INPUT_SPEC_A::COLS;
22
+ constexpr bool B_ROW_MAJOR = INPUT_SPEC_B::ROW_PITCH >= INPUT_SPEC_B::COLS;
23
+ constexpr auto A_TRANSPOSE = A_ROW_MAJOR ? CblasNoTrans : CblasTrans;
24
+ constexpr auto B_TRANSPOSE = B_ROW_MAJOR ? CblasNoTrans : CblasTrans;
25
+
26
+ constexpr TI A_PITCH = A_ROW_MAJOR ? INPUT_SPEC_A::ROW_PITCH : INPUT_SPEC_A::COL_PITCH;
27
+ constexpr TI B_PITCH = B_ROW_MAJOR ? INPUT_SPEC_B::ROW_PITCH : INPUT_SPEC_B::COL_PITCH;
28
+
29
+ constexpr T alpha = 1;
30
+ constexpr T beta = ACCUMULATE ? 1 : 0;
31
+ constexpr auto m = OUTPUT_SPEC::ROWS;
32
+ constexpr auto k = INPUT_SPEC_A::COLS;
33
+ constexpr auto n = OUTPUT_SPEC::COLS;
34
+
35
+ if constexpr(utils::typing::is_same_v<T, float>){
36
+ cblas_sgemm(CblasRowMajor, A_TRANSPOSE, B_TRANSPOSE, m, n, k, alpha, A._data, A_PITCH, B._data, B_PITCH, beta, output._data, row_pitch(output));
37
+ }
38
+ else{
39
+ cblas_dgemm(CblasRowMajor, A_TRANSPOSE, B_TRANSPOSE, m, n, k, alpha, A._data, A_PITCH, B._data, B_PITCH, beta, output._data, row_pitch(output));
40
+ }
41
+ }
42
+ }
43
+ template<typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
44
+ void multiply(devices::CPU_BLAS<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output){
45
+ containers::matrix::multiply_blas<false>(device, A, B, output);
46
+ }
47
+ template<typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
48
+ void multiply_accumulate(devices::CPU_BLAS<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output){
49
+ containers::matrix::multiply_blas<true>(device, A, B, output);
50
+ }
51
+ template<typename SOURCE_DEVICE_SPEC, typename TARGET_DEVICE_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
52
+ void copy(devices::CPU_BLAS<SOURCE_DEVICE_SPEC>& source_device, devices::CPU_BLAS<TARGET_DEVICE_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
53
+ copy(static_cast<devices::CPU<SOURCE_DEVICE_SPEC>&>(source_device), static_cast<devices::CPU<TARGET_DEVICE_SPEC>&>(target_device), source, target);
54
+ }
55
+ template<typename SOURCE_DEVICE_SPEC, typename TARGET_DEVICE, typename SOURCE_SPEC, typename TARGET_SPEC>
56
+ void copy(devices::CPU_BLAS<SOURCE_DEVICE_SPEC>& source_device, TARGET_DEVICE& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
57
+ copy(static_cast<devices::CPU<SOURCE_DEVICE_SPEC>&>(source_device), target_device, source, target);
58
+ }
59
+ template<typename SOURCE_DEVICE, typename TARGET_DEVICE_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
60
+ void copy(SOURCE_DEVICE& source_device, devices::CPU_BLAS<TARGET_DEVICE_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
61
+ copy(source_device, static_cast<devices::CPU<TARGET_DEVICE_SPEC>&>(target_device), source, target);
62
+ }
63
+ }
64
+ RL_TOOLS_NAMESPACE_WRAPPER_END
65
+
66
+
67
+ #endif
@@ -0,0 +1,38 @@
1
+ #include "../../version.h"
2
+ #if (defined(RL_TOOLS_DISABLE_INCLUDE_GUARDS) || !defined(RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_MKL_H)) && (RL_TOOLS_USE_THIS_VERSION == 1)
3
+ #pragma once
4
+ #define RL_TOOLS_CONTAINERS_MATRIX_OPERATIONS_CPU_MKL_H
5
+
6
+ #include "matrix.h"
7
+ #include "operations_cpu_blas.h"
8
+ #include "../../devices/cpu_mkl.h"
9
+
10
+ #include <mkl.h>
11
+
12
+ RL_TOOLS_NAMESPACE_WRAPPER_START
13
+ namespace rl_tools{
14
+ template<typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
15
+ void multiply(devices::CPU_MKL<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output) {
16
+ multiply(static_cast<devices::CPU_BLAS<DEV_SPEC>&>(device), A, B, output);
17
+ }
18
+ template<typename DEV_SPEC, typename INPUT_SPEC_A, typename INPUT_SPEC_B, typename OUTPUT_SPEC>
19
+ void multiply_accumulate(devices::CPU_MKL<DEV_SPEC>& device, const Matrix<INPUT_SPEC_A>& A, const Matrix<INPUT_SPEC_B>& B, Matrix<OUTPUT_SPEC>& output) {
20
+ multiply_accumulate(static_cast<devices::CPU_BLAS<DEV_SPEC>&>(device), A, B, output);
21
+ }
22
+ template<typename SOURCE_DEVICE_SPEC, typename TARGET_DEVICE_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
23
+ void copy(devices::CPU_MKL<SOURCE_DEVICE_SPEC>& source_device, devices::CPU_MKL<TARGET_DEVICE_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
24
+ copy(static_cast<devices::CPU_BLAS<SOURCE_DEVICE_SPEC>&>(source_device), static_cast<devices::CPU_BLAS<TARGET_DEVICE_SPEC>&>(target_device), source, target);
25
+ }
26
+ template<typename SOURCE_DEVICE_SPEC, typename TARGET_DEVICE, typename SOURCE_SPEC, typename TARGET_SPEC>
27
+ void copy(devices::CPU_MKL<SOURCE_DEVICE_SPEC>& source_device, TARGET_DEVICE& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
28
+ copy(static_cast<devices::CPU_BLAS<SOURCE_DEVICE_SPEC>&>(source_device), target_device, source, target);
29
+ }
30
+ template<typename SOURCE_DEVICE, typename TARGET_DEVICE_SPEC, typename SOURCE_SPEC, typename TARGET_SPEC>
31
+ void copy(SOURCE_DEVICE& source_device, devices::CPU_MKL<TARGET_DEVICE_SPEC>& target_device, const Matrix<SOURCE_SPEC>& source, Matrix<TARGET_SPEC>& target){
32
+ copy(source_device, static_cast<devices::CPU_BLAS<TARGET_DEVICE_SPEC>&>(target_device), source, target);
33
+ }
34
+ }
35
+ RL_TOOLS_NAMESPACE_WRAPPER_END
36
+ #endif
37
+
38
+ #include "operations_cpu_blas.h"