larmor-dmri 1.0.0__tar.gz

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.

Potentially problematic release.


This version of larmor-dmri might be problematic. Click here for more details.

Files changed (1266) hide show
  1. larmor_dmri-1.0.0/.gitattributes +17 -0
  2. larmor_dmri-1.0.0/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  3. larmor_dmri-1.0.0/.github/ISSUE_TEMPLATE/config.yml +2 -0
  4. larmor_dmri-1.0.0/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
  5. larmor_dmri-1.0.0/.github/pull_request_template.md +36 -0
  6. larmor_dmri-1.0.0/.github/workflows/ci.yml +218 -0
  7. larmor_dmri-1.0.0/.github/workflows/docs.yml +153 -0
  8. larmor_dmri-1.0.0/.github/workflows/wheels.yml +102 -0
  9. larmor_dmri-1.0.0/.gitignore +67 -0
  10. larmor_dmri-1.0.0/CITATION.cff +29 -0
  11. larmor_dmri-1.0.0/CODE_OF_CONDUCT.md +132 -0
  12. larmor_dmri-1.0.0/CONTRIBUTING.md +20 -0
  13. larmor_dmri-1.0.0/COPYING +674 -0
  14. larmor_dmri-1.0.0/COPYING.LESSER +165 -0
  15. larmor_dmri-1.0.0/NOTICE +67 -0
  16. larmor_dmri-1.0.0/PKG-INFO +125 -0
  17. larmor_dmri-1.0.0/README.md +80 -0
  18. larmor_dmri-1.0.0/SECURITY.md +36 -0
  19. larmor_dmri-1.0.0/cpp/.clang-format +17 -0
  20. larmor_dmri-1.0.0/cpp/.clang-tidy +54 -0
  21. larmor_dmri-1.0.0/cpp/CMakeLists.txt +160 -0
  22. larmor_dmri-1.0.0/cpp/CMakePresets.json +51 -0
  23. larmor_dmri-1.0.0/cpp/cmake/blas.cmake +29 -0
  24. larmor_dmri-1.0.0/cpp/cmake/third_party.cmake +13 -0
  25. larmor_dmri-1.0.0/cpp/cmake/vendor.cmake +25 -0
  26. larmor_dmri-1.0.0/cpp/src/common/CMakeLists.txt +4 -0
  27. larmor_dmri-1.0.0/cpp/src/common/blas.cpp +32 -0
  28. larmor_dmri-1.0.0/cpp/src/common/blas.hpp +29 -0
  29. larmor_dmri-1.0.0/cpp/src/common/maths.cpp +32 -0
  30. larmor_dmri-1.0.0/cpp/src/common/maths.hpp +36 -0
  31. larmor_dmri-1.0.0/cpp/src/common/parallel.hpp +105 -0
  32. larmor_dmri-1.0.0/cpp/src/common/types.hpp +29 -0
  33. larmor_dmri-1.0.0/cpp/src/dwi/CMakeLists.txt +6 -0
  34. larmor_dmri-1.0.0/cpp/src/dwi/gibbs.cpp +205 -0
  35. larmor_dmri-1.0.0/cpp/src/dwi/gibbs.hpp +114 -0
  36. larmor_dmri-1.0.0/cpp/src/dwi/log_fit.cpp +184 -0
  37. larmor_dmri-1.0.0/cpp/src/dwi/log_fit.hpp +96 -0
  38. larmor_dmri-1.0.0/cpp/src/dwi/mppca.cpp +122 -0
  39. larmor_dmri-1.0.0/cpp/src/dwi/mppca.hpp +97 -0
  40. larmor_dmri-1.0.0/cpp/src/python/CMakeLists.txt +18 -0
  41. larmor_dmri-1.0.0/cpp/src/python/arrays.hpp +192 -0
  42. larmor_dmri-1.0.0/cpp/src/python/bindings.hpp +26 -0
  43. larmor_dmri-1.0.0/cpp/src/python/dwi.cpp +262 -0
  44. larmor_dmri-1.0.0/cpp/src/python/module.cpp +67 -0
  45. larmor_dmri-1.0.0/cpp/src/python/sd.cpp +372 -0
  46. larmor_dmri-1.0.0/cpp/src/python/sh.cpp +230 -0
  47. larmor_dmri-1.0.0/cpp/src/python/streamlines.cpp +179 -0
  48. larmor_dmri-1.0.0/cpp/src/python/tracking.cpp +508 -0
  49. larmor_dmri-1.0.0/cpp/src/sd/CMakeLists.txt +9 -0
  50. larmor_dmri-1.0.0/cpp/src/sd/drl.cpp +101 -0
  51. larmor_dmri-1.0.0/cpp/src/sd/drl.hpp +40 -0
  52. larmor_dmri-1.0.0/cpp/src/sd/elastic_net.cpp +152 -0
  53. larmor_dmri-1.0.0/cpp/src/sd/elastic_net.hpp +61 -0
  54. larmor_dmri-1.0.0/cpp/src/sd/fractions.cpp +78 -0
  55. larmor_dmri-1.0.0/cpp/src/sd/fractions.hpp +79 -0
  56. larmor_dmri-1.0.0/cpp/src/sd/multi_tissue.cpp +102 -0
  57. larmor_dmri-1.0.0/cpp/src/sd/multi_tissue.hpp +48 -0
  58. larmor_dmri-1.0.0/cpp/src/sd/nnls.cpp +330 -0
  59. larmor_dmri-1.0.0/cpp/src/sd/nnls.hpp +69 -0
  60. larmor_dmri-1.0.0/cpp/src/sd/solver.cpp +47 -0
  61. larmor_dmri-1.0.0/cpp/src/sd/solver.hpp +98 -0
  62. larmor_dmri-1.0.0/cpp/src/sh/CMakeLists.txt +5 -0
  63. larmor_dmri-1.0.0/cpp/src/sh/harmonics.cpp +195 -0
  64. larmor_dmri-1.0.0/cpp/src/sh/harmonics.hpp +111 -0
  65. larmor_dmri-1.0.0/cpp/src/sh/peaks.cpp +134 -0
  66. larmor_dmri-1.0.0/cpp/src/sh/peaks.hpp +87 -0
  67. larmor_dmri-1.0.0/cpp/src/streamlines/CMakeLists.txt +5 -0
  68. larmor_dmri-1.0.0/cpp/src/streamlines/density.cpp +160 -0
  69. larmor_dmri-1.0.0/cpp/src/streamlines/density.hpp +67 -0
  70. larmor_dmri-1.0.0/cpp/src/streamlines/resample.cpp +372 -0
  71. larmor_dmri-1.0.0/cpp/src/streamlines/resample.hpp +111 -0
  72. larmor_dmri-1.0.0/cpp/src/streamlines/spline.hpp +84 -0
  73. larmor_dmri-1.0.0/cpp/src/tracking/CMakeLists.txt +11 -0
  74. larmor_dmri-1.0.0/cpp/src/tracking/algorithm.cpp +18 -0
  75. larmor_dmri-1.0.0/cpp/src/tracking/algorithm.hpp +100 -0
  76. larmor_dmri-1.0.0/cpp/src/tracking/calibrate.cpp +107 -0
  77. larmor_dmri-1.0.0/cpp/src/tracking/calibrate.hpp +53 -0
  78. larmor_dmri-1.0.0/cpp/src/tracking/det.cpp +77 -0
  79. larmor_dmri-1.0.0/cpp/src/tracking/det.hpp +57 -0
  80. larmor_dmri-1.0.0/cpp/src/tracking/grid.cpp +108 -0
  81. larmor_dmri-1.0.0/cpp/src/tracking/grid.hpp +114 -0
  82. larmor_dmri-1.0.0/cpp/src/tracking/prob.cpp +98 -0
  83. larmor_dmri-1.0.0/cpp/src/tracking/prob.hpp +72 -0
  84. larmor_dmri-1.0.0/cpp/src/tracking/rng.cpp +65 -0
  85. larmor_dmri-1.0.0/cpp/src/tracking/rng.hpp +73 -0
  86. larmor_dmri-1.0.0/cpp/src/tracking/testing.cpp +41 -0
  87. larmor_dmri-1.0.0/cpp/src/tracking/testing.hpp +51 -0
  88. larmor_dmri-1.0.0/cpp/src/tracking/tracker.cpp +138 -0
  89. larmor_dmri-1.0.0/cpp/src/tracking/tracker.hpp +121 -0
  90. larmor_dmri-1.0.0/cpp/tests/CMakeLists.txt +24 -0
  91. larmor_dmri-1.0.0/cpp/tests/dwi/CMakeLists.txt +5 -0
  92. larmor_dmri-1.0.0/cpp/tests/dwi/test_gibbs.cpp +90 -0
  93. larmor_dmri-1.0.0/cpp/tests/dwi/test_log_fit.cpp +165 -0
  94. larmor_dmri-1.0.0/cpp/tests/dwi/test_mppca.cpp +94 -0
  95. larmor_dmri-1.0.0/cpp/tests/sd/CMakeLists.txt +6 -0
  96. larmor_dmri-1.0.0/cpp/tests/sd/test_drl.cpp +108 -0
  97. larmor_dmri-1.0.0/cpp/tests/sd/test_fractions.cpp +50 -0
  98. larmor_dmri-1.0.0/cpp/tests/sd/test_multi_tissue.cpp +88 -0
  99. larmor_dmri-1.0.0/cpp/tests/sd/test_nnls.cpp +243 -0
  100. larmor_dmri-1.0.0/cpp/tests/sd/toy_kernel.hpp +60 -0
  101. larmor_dmri-1.0.0/cpp/tests/sh/CMakeLists.txt +4 -0
  102. larmor_dmri-1.0.0/cpp/tests/sh/test_harmonics.cpp +217 -0
  103. larmor_dmri-1.0.0/cpp/tests/sh/test_peaks.cpp +196 -0
  104. larmor_dmri-1.0.0/cpp/tests/streamlines/CMakeLists.txt +4 -0
  105. larmor_dmri-1.0.0/cpp/tests/streamlines/test_density.cpp +93 -0
  106. larmor_dmri-1.0.0/cpp/tests/streamlines/test_resample.cpp +126 -0
  107. larmor_dmri-1.0.0/cpp/tests/test_blas.cpp +40 -0
  108. larmor_dmri-1.0.0/cpp/tests/test_main.cpp +3 -0
  109. larmor_dmri-1.0.0/cpp/tests/test_maths.cpp +60 -0
  110. larmor_dmri-1.0.0/cpp/tests/test_parallel.cpp +98 -0
  111. larmor_dmri-1.0.0/cpp/tests/tracking/CMakeLists.txt +9 -0
  112. larmor_dmri-1.0.0/cpp/tests/tracking/test_algorithm.cpp +39 -0
  113. larmor_dmri-1.0.0/cpp/tests/tracking/test_calibrate.cpp +104 -0
  114. larmor_dmri-1.0.0/cpp/tests/tracking/test_det.cpp +204 -0
  115. larmor_dmri-1.0.0/cpp/tests/tracking/test_grid.cpp +131 -0
  116. larmor_dmri-1.0.0/cpp/tests/tracking/test_prob.cpp +260 -0
  117. larmor_dmri-1.0.0/cpp/tests/tracking/test_rng.cpp +80 -0
  118. larmor_dmri-1.0.0/cpp/tests/tracking/test_tracker.cpp +336 -0
  119. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/COPYING.APACHE +203 -0
  120. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/COPYING.BSD +26 -0
  121. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/COPYING.MINPACK +51 -0
  122. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/COPYING.MPL2 +373 -0
  123. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/COPYING.README +6 -0
  124. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/AccelerateSupport +52 -0
  125. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Cholesky +43 -0
  126. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/CholmodSupport +48 -0
  127. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Core +451 -0
  128. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Dense +7 -0
  129. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Eigen +2 -0
  130. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Eigenvalues +63 -0
  131. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Geometry +59 -0
  132. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Householder +31 -0
  133. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/IterativeLinearSolvers +52 -0
  134. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Jacobi +33 -0
  135. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/KLUSupport +43 -0
  136. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/LU +46 -0
  137. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/MetisSupport +35 -0
  138. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/OrderingMethods +73 -0
  139. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/PaStiXSupport +51 -0
  140. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/PardisoSupport +38 -0
  141. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/QR +48 -0
  142. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/QtAlignedMalloc +32 -0
  143. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SPQRSupport +41 -0
  144. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SVD +56 -0
  145. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Sparse +33 -0
  146. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseCholesky +40 -0
  147. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseCore +70 -0
  148. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseLU +50 -0
  149. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseQR +38 -0
  150. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/StdDeque +30 -0
  151. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/StdList +29 -0
  152. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/StdVector +30 -0
  153. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/SuperLUSupport +70 -0
  154. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/ThreadPool +80 -0
  155. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/UmfPackSupport +42 -0
  156. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/Version +14 -0
  157. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  158. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  159. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  160. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/LDLT.h +649 -0
  161. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/LLT.h +514 -0
  162. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/LLT_LAPACKE.h +124 -0
  163. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/CholmodSupport/CholmodSupport.h +738 -0
  164. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  165. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ArithmeticSequence.h +239 -0
  166. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Array.h +376 -0
  167. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ArrayBase.h +213 -0
  168. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ArrayWrapper.h +165 -0
  169. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Assign.h +80 -0
  170. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/AssignEvaluator.h +1057 -0
  171. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Assign_MKL.h +183 -0
  172. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/BandMatrix.h +338 -0
  173. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Block.h +429 -0
  174. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CommaInitializer.h +149 -0
  175. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ConditionEstimator.h +173 -0
  176. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CoreEvaluators.h +2018 -0
  177. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CoreIterators.h +141 -0
  178. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseBinaryOp.h +166 -0
  179. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseNullaryOp.h +975 -0
  180. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseTernaryOp.h +171 -0
  181. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseUnaryOp.h +91 -0
  182. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseUnaryView.h +167 -0
  183. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DenseBase.h +673 -0
  184. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DenseCoeffsBase.h +568 -0
  185. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DenseStorage.h +573 -0
  186. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DeviceWrapper.h +153 -0
  187. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Diagonal.h +219 -0
  188. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DiagonalMatrix.h +420 -0
  189. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DiagonalProduct.h +30 -0
  190. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Dot.h +268 -0
  191. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/EigenBase.h +149 -0
  192. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Fill.h +138 -0
  193. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/FindCoeff.h +464 -0
  194. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ForceAlignedAccess.h +127 -0
  195. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Fuzzy.h +132 -0
  196. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/GeneralProduct.h +519 -0
  197. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/GenericPacketMath.h +1702 -0
  198. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/GlobalFunctions.h +230 -0
  199. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/IO.h +233 -0
  200. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/IndexedView.h +321 -0
  201. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/InnerProduct.h +260 -0
  202. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  203. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Inverse.h +108 -0
  204. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Map.h +153 -0
  205. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MapBase.h +283 -0
  206. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MathFunctions.h +2103 -0
  207. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MathFunctionsImpl.h +263 -0
  208. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Matrix.h +534 -0
  209. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MatrixBase.h +545 -0
  210. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/NestByValue.h +91 -0
  211. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/NoAlias.h +102 -0
  212. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/NumTraits.h +335 -0
  213. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  214. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/PermutationMatrix.h +555 -0
  215. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/PlainObjectBase.h +1014 -0
  216. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Product.h +307 -0
  217. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ProductEvaluators.h +1287 -0
  218. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Random.h +207 -0
  219. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/RandomImpl.h +262 -0
  220. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/RealView.h +250 -0
  221. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Redux.h +535 -0
  222. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Ref.h +383 -0
  223. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Replicate.h +130 -0
  224. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Reshaped.h +398 -0
  225. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ReturnByValue.h +111 -0
  226. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Reverse.h +202 -0
  227. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Select.h +92 -0
  228. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SelfAdjointView.h +329 -0
  229. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SelfCwiseBinaryOp.h +50 -0
  230. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  231. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Solve.h +174 -0
  232. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SolveTriangular.h +237 -0
  233. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SolverBase.h +167 -0
  234. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/StableNorm.h +217 -0
  235. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/StlIterators.h +619 -0
  236. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Stride.h +114 -0
  237. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Swap.h +99 -0
  238. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Transpose.h +427 -0
  239. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Transpositions.h +323 -0
  240. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/TriangularMatrix.h +900 -0
  241. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/VectorBlock.h +83 -0
  242. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/VectorwiseOp.h +733 -0
  243. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Visitor.h +537 -0
  244. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/Complex.h +565 -0
  245. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/MathFunctions.h +130 -0
  246. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/PacketMath.h +3081 -0
  247. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  248. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/TypeCasting.h +308 -0
  249. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  250. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  251. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/MathFunctions.h +141 -0
  252. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  253. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/PacketMath.h +3146 -0
  254. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  255. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  256. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  257. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  258. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  259. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  260. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/Complex.h +653 -0
  261. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MathFunctions.h +81 -0
  262. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  263. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  264. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  265. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  266. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  267. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/PacketMath.h +3729 -0
  268. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  269. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  270. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/ConjHelper.h +128 -0
  271. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  272. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  273. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/Half.h +1091 -0
  274. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/Settings.h +47 -0
  275. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  276. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  277. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  278. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  279. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  280. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  281. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  282. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  283. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  284. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  285. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  286. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  287. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  288. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  289. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  290. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/Complex.h +732 -0
  291. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  292. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/MathFunctions.h +68 -0
  293. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/PacketMath.h +6096 -0
  294. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  295. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  296. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/Complex.h +503 -0
  297. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/MathFunctions.h +88 -0
  298. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/PacketMath.h +2384 -0
  299. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  300. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/TypeCasting.h +230 -0
  301. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  302. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  303. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  304. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  305. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  306. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  307. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  308. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/ZVector/Complex.h +570 -0
  309. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/ZVector/MathFunctions.h +244 -0
  310. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/ZVector/PacketMath.h +1413 -0
  311. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/AssignmentFunctors.h +174 -0
  312. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/BinaryFunctors.h +747 -0
  313. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/NullaryFunctors.h +274 -0
  314. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/StlFunctors.h +149 -0
  315. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/TernaryFunctors.h +52 -0
  316. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/UnaryFunctors.h +1420 -0
  317. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralBlockPanelKernel.h +3153 -0
  318. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrix.h +459 -0
  319. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +330 -0
  320. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +148 -0
  321. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +205 -0
  322. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixVector.h +473 -0
  323. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +139 -0
  324. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/Parallelizer.h +282 -0
  325. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +483 -0
  326. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +277 -0
  327. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixVector.h +253 -0
  328. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +115 -0
  329. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  330. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointRank2Update.h +95 -0
  331. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixMatrix.h +397 -0
  332. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +325 -0
  333. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixVector.h +347 -0
  334. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +275 -0
  335. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularSolverMatrix.h +388 -0
  336. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +166 -0
  337. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularSolverVector.h +122 -0
  338. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Assert.h +158 -0
  339. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/BlasUtil.h +622 -0
  340. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  341. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Constants.h +598 -0
  342. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/DisableStupidWarnings.h +146 -0
  343. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/EmulateArray.h +270 -0
  344. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ForwardDeclarations.h +524 -0
  345. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  346. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  347. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  348. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/IntegralConstant.h +279 -0
  349. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/MKL_support.h +139 -0
  350. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Macros.h +1346 -0
  351. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  352. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Memory.h +1385 -0
  353. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Meta.h +760 -0
  354. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/MoreMeta.h +638 -0
  355. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ReenableStupidWarnings.h +44 -0
  356. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  357. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Serializer.h +209 -0
  358. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/StaticAssert.h +105 -0
  359. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  360. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/XprHelper.h +1093 -0
  361. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/ComplexEigenSolver.h +315 -0
  362. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/ComplexSchur.h +442 -0
  363. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +95 -0
  364. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/EigenSolver.h +579 -0
  365. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +402 -0
  366. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +212 -0
  367. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/HessenbergDecomposition.h +356 -0
  368. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  369. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +142 -0
  370. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/RealQZ.h +587 -0
  371. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/RealSchur.h +519 -0
  372. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +83 -0
  373. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +850 -0
  374. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +90 -0
  375. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/Tridiagonalization.h +529 -0
  376. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/AlignedBox.h +485 -0
  377. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/AngleAxis.h +245 -0
  378. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/EulerAngles.h +203 -0
  379. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Homogeneous.h +453 -0
  380. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Hyperplane.h +273 -0
  381. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  382. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/OrthoMethods.h +257 -0
  383. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  384. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Quaternion.h +930 -0
  385. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Rotation2D.h +201 -0
  386. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/RotationBase.h +209 -0
  387. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Scaling.h +195 -0
  388. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Transform.h +1485 -0
  389. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Translation.h +204 -0
  390. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Umeyama.h +161 -0
  391. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  392. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/BlockHouseholder.h +115 -0
  393. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/Householder.h +154 -0
  394. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/HouseholderSequence.h +504 -0
  395. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  396. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +213 -0
  397. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +217 -0
  398. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +217 -0
  399. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +402 -0
  400. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +449 -0
  401. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  402. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +395 -0
  403. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +193 -0
  404. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +111 -0
  405. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  406. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Jacobi/Jacobi.h +427 -0
  407. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  408. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  409. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/Determinant.h +98 -0
  410. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/FullPivLU.h +826 -0
  411. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  412. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/InverseImpl.h +353 -0
  413. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/PartialPivLU.h +586 -0
  414. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/PartialPivLU_LAPACKE.h +97 -0
  415. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/arch/InverseSize4.h +353 -0
  416. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  417. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/MetisSupport/MetisSupport.h +125 -0
  418. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/Amd.h +413 -0
  419. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/Eigen_Colamd.h +1690 -0
  420. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  421. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/Ordering.h +146 -0
  422. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  423. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PaStiXSupport/PaStiXSupport.h +632 -0
  424. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  425. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PardisoSupport/PardisoSupport.h +500 -0
  426. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  427. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +161 -0
  428. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/CompleteOrthogonalDecomposition.h +648 -0
  429. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/FullPivHouseholderQR.h +733 -0
  430. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/HouseholderQR.h +543 -0
  431. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/HouseholderQR_LAPACKE.h +77 -0
  432. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  433. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  434. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +315 -0
  435. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/BDCSVD.h +1470 -0
  436. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  437. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  438. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/JacobiSVD.h +846 -0
  439. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/JacobiSVD_LAPACKE.h +127 -0
  440. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/SVDBase.h +436 -0
  441. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/UpperBidiagonalization.h +379 -0
  442. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  443. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCholesky/SimplicialCholesky.h +868 -0
  444. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +388 -0
  445. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/AmbiVector.h +329 -0
  446. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/CompressedStorage.h +206 -0
  447. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +308 -0
  448. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  449. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseAssign.h +279 -0
  450. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseBlock.h +534 -0
  451. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseColEtree.h +194 -0
  452. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseCompressedBase.h +592 -0
  453. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +938 -0
  454. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +142 -0
  455. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseDenseProduct.h +314 -0
  456. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  457. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseDot.h +100 -0
  458. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseFuzzy.h +31 -0
  459. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseMap.h +295 -0
  460. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseMatrix.h +1876 -0
  461. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseMatrixBase.h +451 -0
  462. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparsePermutation.h +249 -0
  463. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseProduct.h +178 -0
  464. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseRedux.h +47 -0
  465. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseRef.h +370 -0
  466. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseSelfAdjointView.h +613 -0
  467. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseSolverBase.h +115 -0
  468. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +184 -0
  469. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseTranspose.h +83 -0
  470. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseTriangularView.h +177 -0
  471. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseUtil.h +209 -0
  472. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseVector.h +532 -0
  473. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseView.h +225 -0
  474. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/TriangularSolver.h +274 -0
  475. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  476. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU.h +969 -0
  477. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLUImpl.h +79 -0
  478. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_Memory.h +210 -0
  479. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_Structs.h +113 -0
  480. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +319 -0
  481. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_Utils.h +75 -0
  482. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_column_bmod.h +177 -0
  483. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_column_dfs.h +168 -0
  484. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +106 -0
  485. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +114 -0
  486. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +133 -0
  487. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_panel_bmod.h +215 -0
  488. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_panel_dfs.h +235 -0
  489. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_pivotL.h +136 -0
  490. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_pruneL.h +130 -0
  491. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_relax_snode.h +81 -0
  492. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  493. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseQR/SparseQR.h +706 -0
  494. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/StdDeque.h +51 -0
  495. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/StdList.h +50 -0
  496. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/StdVector.h +51 -0
  497. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/details.h +82 -0
  498. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  499. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SuperLUSupport/SuperLUSupport.h +929 -0
  500. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/Barrier.h +70 -0
  501. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  502. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/EventCount.h +241 -0
  503. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  504. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  505. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  506. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/RunQueue.h +230 -0
  507. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  508. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  509. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  510. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  511. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  512. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  513. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/UmfPackSupport/UmfPackSupport.h +606 -0
  514. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/Image.h +80 -0
  515. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  516. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/Kernel.h +77 -0
  517. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/RealSvd2x2.h +53 -0
  518. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/blas.h +97 -0
  519. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/lapacke.h +10085 -0
  520. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/lapacke_helpers.h +163 -0
  521. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/lapacke_mangling.h +16 -0
  522. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  523. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  524. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/BlockMethods.inc +1370 -0
  525. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  526. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  527. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  528. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  529. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  530. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  531. larmor_dmri-1.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  532. larmor_dmri-1.0.0/cpp/third_party/pocketfft-c90e55b3d529f8efa40ed01a20de22405f45fc65/LICENSE.md +25 -0
  533. larmor_dmri-1.0.0/cpp/third_party/pocketfft-c90e55b3d529f8efa40ed01a20de22405f45fc65/pocketfft_hdronly.h +3853 -0
  534. larmor_dmri-1.0.0/docs/404.md +14 -0
  535. larmor_dmri-1.0.0/docs/README.md +25 -0
  536. larmor_dmri-1.0.0/docs/_ext/api_reference.py +206 -0
  537. larmor_dmri-1.0.0/docs/_ext/carousel.py +93 -0
  538. larmor_dmri-1.0.0/docs/_ext/gallery_images.py +267 -0
  539. larmor_dmri-1.0.0/docs/_ext/viewer_docs.py +151 -0
  540. larmor_dmri-1.0.0/docs/_extra/favicon.ico +0 -0
  541. larmor_dmri-1.0.0/docs/_extra/llms.txt +122 -0
  542. larmor_dmri-1.0.0/docs/_extra/robots.txt +19 -0
  543. larmor_dmri-1.0.0/docs/_snippets/cite-larmor.md +3 -0
  544. larmor_dmri-1.0.0/docs/_snippets/ismrm-credit.md +3 -0
  545. larmor_dmri-1.0.0/docs/_snippets/synthetic-dwi.md +37 -0
  546. larmor_dmri-1.0.0/docs/_snippets/synthetic-fod.md +41 -0
  547. larmor_dmri-1.0.0/docs/_static/apple-touch-icon.png +0 -0
  548. larmor_dmri-1.0.0/docs/_static/carousel/dti-colours.webp +0 -0
  549. larmor_dmri-1.0.0/docs/_static/carousel/fod-asymmetric.webp +0 -0
  550. larmor_dmri-1.0.0/docs/_static/carousel/fod-glyphs.webp +0 -0
  551. larmor_dmri-1.0.0/docs/_static/carousel/peaks.webp +0 -0
  552. larmor_dmri-1.0.0/docs/_static/carousel/slices-3d.webp +0 -0
  553. larmor_dmri-1.0.0/docs/_static/carousel/t1-fa.webp +0 -0
  554. larmor_dmri-1.0.0/docs/_static/carousel/tubes.webp +0 -0
  555. larmor_dmri-1.0.0/docs/_static/favicon-32.png +0 -0
  556. larmor_dmri-1.0.0/docs/_static/gallery-thumb.png +0 -0
  557. larmor_dmri-1.0.0/docs/_static/larmor-card.png +0 -0
  558. larmor_dmri-1.0.0/docs/_static/larmor-carousel.js +47 -0
  559. larmor_dmri-1.0.0/docs/_static/larmor.css +199 -0
  560. larmor_dmri-1.0.0/docs/_templates/layout.html +10 -0
  561. larmor_dmri-1.0.0/docs/about/changelog.md +32 -0
  562. larmor_dmri-1.0.0/docs/about/citing.md +108 -0
  563. larmor_dmri-1.0.0/docs/about/contributing.md +19 -0
  564. larmor_dmri-1.0.0/docs/about/index.md +45 -0
  565. larmor_dmri-1.0.0/docs/about/roadmap.md +26 -0
  566. larmor_dmri-1.0.0/docs/agents/connecting.md +9 -0
  567. larmor_dmri-1.0.0/docs/agents/index.md +24 -0
  568. larmor_dmri-1.0.0/docs/agents/security.md +41 -0
  569. larmor_dmri-1.0.0/docs/agents/tools.md +16 -0
  570. larmor_dmri-1.0.0/docs/background/conventions.md +163 -0
  571. larmor_dmri-1.0.0/docs/background/index.md +18 -0
  572. larmor_dmri-1.0.0/docs/cli.md +565 -0
  573. larmor_dmri-1.0.0/docs/conf.py +330 -0
  574. larmor_dmri-1.0.0/docs/contributing.md +578 -0
  575. larmor_dmri-1.0.0/docs/example-data.md +81 -0
  576. larmor_dmri-1.0.0/docs/getting-started.md +194 -0
  577. larmor_dmri-1.0.0/docs/guides/dki.md +78 -0
  578. larmor_dmri-1.0.0/docs/guides/dti.md +88 -0
  579. larmor_dmri-1.0.0/docs/guides/fods.md +172 -0
  580. larmor_dmri-1.0.0/docs/guides/gradient-tables.md +117 -0
  581. larmor_dmri-1.0.0/docs/guides/index.md +42 -0
  582. larmor_dmri-1.0.0/docs/guides/isolating-a-bundle.md +61 -0
  583. larmor_dmri-1.0.0/docs/guides/loading-and-saving.md +141 -0
  584. larmor_dmri-1.0.0/docs/guides/peaks.md +89 -0
  585. larmor_dmri-1.0.0/docs/guides/surfaces.md +122 -0
  586. larmor_dmri-1.0.0/docs/guides/tract-profiles.md +61 -0
  587. larmor_dmri-1.0.0/docs/guides/tractography.md +137 -0
  588. larmor_dmri-1.0.0/docs/guides/what-larmor-does.md +46 -0
  589. larmor_dmri-1.0.0/docs/index.md +132 -0
  590. larmor_dmri-1.0.0/docs/install.md +107 -0
  591. larmor_dmri-1.0.0/docs/reference/api/data.rst +7 -0
  592. larmor_dmri-1.0.0/docs/reference/api/dwi.rst +7 -0
  593. larmor_dmri-1.0.0/docs/reference/api/index.md +43 -0
  594. larmor_dmri-1.0.0/docs/reference/api/io-formats.rst +7 -0
  595. larmor_dmri-1.0.0/docs/reference/api/io.rst +7 -0
  596. larmor_dmri-1.0.0/docs/reference/api/larmor.rst +7 -0
  597. larmor_dmri-1.0.0/docs/reference/api/registration.rst +7 -0
  598. larmor_dmri-1.0.0/docs/reference/api/sd.rst +7 -0
  599. larmor_dmri-1.0.0/docs/reference/api/surfaces.rst +7 -0
  600. larmor_dmri-1.0.0/docs/reference/api/tractography.rst +7 -0
  601. larmor_dmri-1.0.0/docs/reference/api/types.rst +7 -0
  602. larmor_dmri-1.0.0/docs/reference/api/viewer.rst +7 -0
  603. larmor_dmri-1.0.0/docs/reference/file-formats.md +93 -0
  604. larmor_dmri-1.0.0/docs/reference/index.md +19 -0
  605. larmor_dmri-1.0.0/docs/releasing.md +151 -0
  606. larmor_dmri-1.0.0/docs/style.md +116 -0
  607. larmor_dmri-1.0.0/docs/update_carousel.py +60 -0
  608. larmor_dmri-1.0.0/docs/viewer/2d-views.md +9 -0
  609. larmor_dmri-1.0.0/docs/viewer/3d-view.md +9 -0
  610. larmor_dmri-1.0.0/docs/viewer/fod-glyphs.md +9 -0
  611. larmor_dmri-1.0.0/docs/viewer/getting-started.md +9 -0
  612. larmor_dmri-1.0.0/docs/viewer/index.md +50 -0
  613. larmor_dmri-1.0.0/docs/viewer/matlab-files.md +9 -0
  614. larmor_dmri-1.0.0/docs/viewer/parcellations.md +9 -0
  615. larmor_dmri-1.0.0/docs/viewer/peaks.md +9 -0
  616. larmor_dmri-1.0.0/docs/viewer/screenshots.md +9 -0
  617. larmor_dmri-1.0.0/docs/viewer/sessions.md +9 -0
  618. larmor_dmri-1.0.0/docs/viewer/settings.md +9 -0
  619. larmor_dmri-1.0.0/docs/viewer/shortcuts.md +14 -0
  620. larmor_dmri-1.0.0/docs/viewer/surfaces.md +9 -0
  621. larmor_dmri-1.0.0/docs/viewer/tractograms.md +9 -0
  622. larmor_dmri-1.0.0/docs/viewer/volumes-and-overlays.md +9 -0
  623. larmor_dmri-1.0.0/examples/GALLERY_HEADER.txt +8 -0
  624. larmor_dmri-1.0.0/examples/README.md +81 -0
  625. larmor_dmri-1.0.0/examples/files/GALLERY_HEADER.txt +5 -0
  626. larmor_dmri-1.0.0/examples/files/file_io.py +112 -0
  627. larmor_dmri-1.0.0/examples/files/mritoolkit_files.py +115 -0
  628. larmor_dmri-1.0.0/examples/models/GALLERY_HEADER.txt +5 -0
  629. larmor_dmri-1.0.0/examples/models/dki_real_data.py +72 -0
  630. larmor_dmri-1.0.0/examples/models/dki_synthetic_kurtosis.py +64 -0
  631. larmor_dmri-1.0.0/examples/models/dti_ismrm.py +61 -0
  632. larmor_dmri-1.0.0/examples/models/dti_synthetic_tensor.py +60 -0
  633. larmor_dmri-1.0.0/examples/preprocessing/GALLERY_HEADER.txt +4 -0
  634. larmor_dmri-1.0.0/examples/preprocessing/dwi_denoise_mppca.py +65 -0
  635. larmor_dmri-1.0.0/examples/preprocessing/gibbs_ringing_removal.py +108 -0
  636. larmor_dmri-1.0.0/examples/sd/GALLERY_HEADER.txt +5 -0
  637. larmor_dmri-1.0.0/examples/sd/fod_fit_synthetic.py +106 -0
  638. larmor_dmri-1.0.0/examples/sd/fods_ismrm.py +144 -0
  639. larmor_dmri-1.0.0/examples/sd/peaks_synthetic.py +73 -0
  640. larmor_dmri-1.0.0/examples/tractography/GALLERY_HEADER.txt +5 -0
  641. larmor_dmri-1.0.0/examples/tractography/connectome_synthetic.py +93 -0
  642. larmor_dmri-1.0.0/examples/tractography/registration_atlas_region.py +113 -0
  643. larmor_dmri-1.0.0/examples/tractography/track_density_synthetic.py +95 -0
  644. larmor_dmri-1.0.0/examples/tractography/tracking_ismrm.py +110 -0
  645. larmor_dmri-1.0.0/examples/tractography/tracking_synthetic.py +90 -0
  646. larmor_dmri-1.0.0/examples/tractography/tract_profiles.py +136 -0
  647. larmor_dmri-1.0.0/examples/tractography/tractogram_batch_writing.py +102 -0
  648. larmor_dmri-1.0.0/examples/viewer/GALLERY_HEADER.txt +6 -0
  649. larmor_dmri-1.0.0/examples/viewer/viewer_2d_views.py +116 -0
  650. larmor_dmri-1.0.0/examples/viewer/viewer_3d_view.py +76 -0
  651. larmor_dmri-1.0.0/examples/viewer/viewer_4d_volumes.py +79 -0
  652. larmor_dmri-1.0.0/examples/viewer/viewer_dti.py +99 -0
  653. larmor_dmri-1.0.0/examples/viewer/viewer_fod_glyphs.py +118 -0
  654. larmor_dmri-1.0.0/examples/viewer/viewer_parcellation.py +109 -0
  655. larmor_dmri-1.0.0/examples/viewer/viewer_peaks.py +81 -0
  656. larmor_dmri-1.0.0/examples/viewer/viewer_real_brain.py +62 -0
  657. larmor_dmri-1.0.0/examples/viewer/viewer_screenshot_modes.py +83 -0
  658. larmor_dmri-1.0.0/examples/viewer/viewer_sessions.py +82 -0
  659. larmor_dmri-1.0.0/examples/viewer/viewer_surfaces.py +99 -0
  660. larmor_dmri-1.0.0/examples/viewer/viewer_tractograms.py +108 -0
  661. larmor_dmri-1.0.0/examples/viewer/viewer_tubes.py +75 -0
  662. larmor_dmri-1.0.0/examples/viewer/viewer_volumes_and_overlays.py +91 -0
  663. larmor_dmri-1.0.0/pyproject.toml +305 -0
  664. larmor_dmri-1.0.0/resources/larmor-logo.svg +48 -0
  665. larmor_dmri-1.0.0/resources/larmor-symbol.svg +47 -0
  666. larmor_dmri-1.0.0/src/larmor/__init__.py +79 -0
  667. larmor_dmri-1.0.0/src/larmor/_core.pyi +333 -0
  668. larmor_dmri-1.0.0/src/larmor/_log.py +6 -0
  669. larmor_dmri-1.0.0/src/larmor/_threads.py +18 -0
  670. larmor_dmri-1.0.0/src/larmor/cli/__init__.py +1 -0
  671. larmor_dmri-1.0.0/src/larmor/cli/bv.py +181 -0
  672. larmor_dmri-1.0.0/src/larmor/cli/command.py +69 -0
  673. larmor_dmri-1.0.0/src/larmor/cli/connectome.py +193 -0
  674. larmor_dmri-1.0.0/src/larmor/cli/convert.py +354 -0
  675. larmor_dmri-1.0.0/src/larmor/cli/degibbs.py +70 -0
  676. larmor_dmri-1.0.0/src/larmor/cli/denoise.py +91 -0
  677. larmor_dmri-1.0.0/src/larmor/cli/dki.py +98 -0
  678. larmor_dmri-1.0.0/src/larmor/cli/dti.py +87 -0
  679. larmor_dmri-1.0.0/src/larmor/cli/fod.py +284 -0
  680. larmor_dmri-1.0.0/src/larmor/cli/info.py +107 -0
  681. larmor_dmri-1.0.0/src/larmor/cli/mask.py +41 -0
  682. larmor_dmri-1.0.0/src/larmor/cli/options.py +89 -0
  683. larmor_dmri-1.0.0/src/larmor/cli/outputs.py +62 -0
  684. larmor_dmri-1.0.0/src/larmor/cli/peaks.py +115 -0
  685. larmor_dmri-1.0.0/src/larmor/cli/sh_convert.py +70 -0
  686. larmor_dmri-1.0.0/src/larmor/cli/sh_input.py +19 -0
  687. larmor_dmri-1.0.0/src/larmor/cli/track.py +312 -0
  688. larmor_dmri-1.0.0/src/larmor/cli/tract_density.py +116 -0
  689. larmor_dmri-1.0.0/src/larmor/cli/tract_edit.py +252 -0
  690. larmor_dmri-1.0.0/src/larmor/cli/tract_profile.py +175 -0
  691. larmor_dmri-1.0.0/src/larmor/cli/transform.py +188 -0
  692. larmor_dmri-1.0.0/src/larmor/data/__init__.py +22 -0
  693. larmor_dmri-1.0.0/src/larmor/data/datasets.py +181 -0
  694. larmor_dmri-1.0.0/src/larmor/data/dir300.txt +300 -0
  695. larmor_dmri-1.0.0/src/larmor/data/fetch.py +270 -0
  696. larmor_dmri-1.0.0/src/larmor/data/files.py +121 -0
  697. larmor_dmri-1.0.0/src/larmor/dwi/__init__.py +23 -0
  698. larmor_dmri-1.0.0/src/larmor/dwi/denoise.py +161 -0
  699. larmor_dmri-1.0.0/src/larmor/dwi/dki.py +534 -0
  700. larmor_dmri-1.0.0/src/larmor/dwi/dti.py +216 -0
  701. larmor_dmri-1.0.0/src/larmor/dwi/fitting.py +89 -0
  702. larmor_dmri-1.0.0/src/larmor/dwi/gibbs.py +93 -0
  703. larmor_dmri-1.0.0/src/larmor/dwi/inputs.py +156 -0
  704. larmor_dmri-1.0.0/src/larmor/dwi/mask.py +151 -0
  705. larmor_dmri-1.0.0/src/larmor/dwi/shells.py +22 -0
  706. larmor_dmri-1.0.0/src/larmor/io/__init__.py +98 -0
  707. larmor_dmri-1.0.0/src/larmor/io/bvals_bvecs.py +398 -0
  708. larmor_dmri-1.0.0/src/larmor/io/dwi.py +70 -0
  709. larmor_dmri-1.0.0/src/larmor/io/formats/__init__.py +50 -0
  710. larmor_dmri-1.0.0/src/larmor/io/formats/_affine.py +17 -0
  711. larmor_dmri-1.0.0/src/larmor/io/formats/_track_file.py +118 -0
  712. larmor_dmri-1.0.0/src/larmor/io/formats/freesurfer.py +319 -0
  713. larmor_dmri-1.0.0/src/larmor/io/formats/gifti.py +326 -0
  714. larmor_dmri-1.0.0/src/larmor/io/formats/lookup_table.py +54 -0
  715. larmor_dmri-1.0.0/src/larmor/io/formats/matlab.py +778 -0
  716. larmor_dmri-1.0.0/src/larmor/io/formats/mif.py +430 -0
  717. larmor_dmri-1.0.0/src/larmor/io/formats/nifti.py +480 -0
  718. larmor_dmri-1.0.0/src/larmor/io/formats/streamline_weights.py +99 -0
  719. larmor_dmri-1.0.0/src/larmor/io/formats/tck.py +354 -0
  720. larmor_dmri-1.0.0/src/larmor/io/formats/trk.py +797 -0
  721. larmor_dmri-1.0.0/src/larmor/io/formats/tsf.py +249 -0
  722. larmor_dmri-1.0.0/src/larmor/io/formats/vtk.py +453 -0
  723. larmor_dmri-1.0.0/src/larmor/io/load_save.py +651 -0
  724. larmor_dmri-1.0.0/src/larmor/io/mritoolkit.py +550 -0
  725. larmor_dmri-1.0.0/src/larmor/io/reader.py +332 -0
  726. larmor_dmri-1.0.0/src/larmor/io/writer.py +170 -0
  727. larmor_dmri-1.0.0/src/larmor/main.py +76 -0
  728. larmor_dmri-1.0.0/src/larmor/py.typed +0 -0
  729. larmor_dmri-1.0.0/src/larmor/registration/__init__.py +57 -0
  730. larmor_dmri-1.0.0/src/larmor/registration/apply.py +473 -0
  731. larmor_dmri-1.0.0/src/larmor/registration/files.py +576 -0
  732. larmor_dmri-1.0.0/src/larmor/registration/sampling.py +104 -0
  733. larmor_dmri-1.0.0/src/larmor/registration/transforms.py +385 -0
  734. larmor_dmri-1.0.0/src/larmor/sd/__init__.py +46 -0
  735. larmor_dmri-1.0.0/src/larmor/sd/kernel.py +105 -0
  736. larmor_dmri-1.0.0/src/larmor/sd/method.py +91 -0
  737. larmor_dmri-1.0.0/src/larmor/sd/model.py +412 -0
  738. larmor_dmri-1.0.0/src/larmor/sd/mritoolkit.py +206 -0
  739. larmor_dmri-1.0.0/src/larmor/sd/peaks.py +220 -0
  740. larmor_dmri-1.0.0/src/larmor/sd/rf.py +664 -0
  741. larmor_dmri-1.0.0/src/larmor/sd/sh.py +306 -0
  742. larmor_dmri-1.0.0/src/larmor/sd/solvers.py +358 -0
  743. larmor_dmri-1.0.0/src/larmor/sd/sphere.py +62 -0
  744. larmor_dmri-1.0.0/src/larmor/surfaces/__init__.py +9 -0
  745. larmor_dmri-1.0.0/src/larmor/surfaces/mesh.py +121 -0
  746. larmor_dmri-1.0.0/src/larmor/tractography/__init__.py +81 -0
  747. larmor_dmri-1.0.0/src/larmor/tractography/connectome.py +360 -0
  748. larmor_dmri-1.0.0/src/larmor/tractography/density.py +212 -0
  749. larmor_dmri-1.0.0/src/larmor/tractography/editing.py +910 -0
  750. larmor_dmri-1.0.0/src/larmor/tractography/file_editing.py +608 -0
  751. larmor_dmri-1.0.0/src/larmor/tractography/profiles.py +294 -0
  752. larmor_dmri-1.0.0/src/larmor/tractography/regions.py +190 -0
  753. larmor_dmri-1.0.0/src/larmor/tractography/resampling.py +129 -0
  754. larmor_dmri-1.0.0/src/larmor/tractography/sampling.py +93 -0
  755. larmor_dmri-1.0.0/src/larmor/tractography/seed.py +279 -0
  756. larmor_dmri-1.0.0/src/larmor/tractography/termination.py +42 -0
  757. larmor_dmri-1.0.0/src/larmor/tractography/tracker.py +772 -0
  758. larmor_dmri-1.0.0/src/larmor/types/__init__.py +17 -0
  759. larmor_dmri-1.0.0/src/larmor/types/_affine.py +138 -0
  760. larmor_dmri-1.0.0/src/larmor/types/_arrays.py +31 -0
  761. larmor_dmri-1.0.0/src/larmor/types/gradient_table.py +248 -0
  762. larmor_dmri-1.0.0/src/larmor/types/grid.py +108 -0
  763. larmor_dmri-1.0.0/src/larmor/types/label.py +16 -0
  764. larmor_dmri-1.0.0/src/larmor/types/surface.py +77 -0
  765. larmor_dmri-1.0.0/src/larmor/types/tractogram.py +247 -0
  766. larmor_dmri-1.0.0/src/larmor/types/volume.py +191 -0
  767. larmor_dmri-1.0.0/src/larmor/viewer/__init__.py +234 -0
  768. larmor_dmri-1.0.0/src/larmor/viewer/app.py +225 -0
  769. larmor_dmri-1.0.0/src/larmor/viewer/launcher.py +627 -0
  770. larmor_dmri-1.0.0/src/larmor/viewer/loading.py +468 -0
  771. larmor_dmri-1.0.0/src/larmor/viewer/macos.py +58 -0
  772. larmor_dmri-1.0.0/src/larmor/viewer/mcp_server.py +576 -0
  773. larmor_dmri-1.0.0/src/larmor/viewer/model/__init__.py +1 -0
  774. larmor_dmri-1.0.0/src/larmor/viewer/model/camera.py +175 -0
  775. larmor_dmri-1.0.0/src/larmor/viewer/model/events.py +43 -0
  776. larmor_dmri-1.0.0/src/larmor/viewer/model/item.py +90 -0
  777. larmor_dmri-1.0.0/src/larmor/viewer/model/labels.py +61 -0
  778. larmor_dmri-1.0.0/src/larmor/viewer/model/matlab_import.py +624 -0
  779. larmor_dmri-1.0.0/src/larmor/viewer/model/options.py +954 -0
  780. larmor_dmri-1.0.0/src/larmor/viewer/model/readout.py +83 -0
  781. larmor_dmri-1.0.0/src/larmor/viewer/model/regions.py +111 -0
  782. larmor_dmri-1.0.0/src/larmor/viewer/model/registration.py +280 -0
  783. larmor_dmri-1.0.0/src/larmor/viewer/model/registry.py +185 -0
  784. larmor_dmri-1.0.0/src/larmor/viewer/model/scene.py +128 -0
  785. larmor_dmri-1.0.0/src/larmor/viewer/model/session.py +340 -0
  786. larmor_dmri-1.0.0/src/larmor/viewer/model/settings.py +382 -0
  787. larmor_dmri-1.0.0/src/larmor/viewer/model/shortcuts.py +324 -0
  788. larmor_dmri-1.0.0/src/larmor/viewer/model/surface.py +93 -0
  789. larmor_dmri-1.0.0/src/larmor/viewer/model/view_state.py +39 -0
  790. larmor_dmri-1.0.0/src/larmor/viewer/model/viewer.py +2197 -0
  791. larmor_dmri-1.0.0/src/larmor/viewer/qt/__init__.py +1 -0
  792. larmor_dmri-1.0.0/src/larmor/viewer/qt/app_icon.py +24 -0
  793. larmor_dmri-1.0.0/src/larmor/viewer/qt/docks.py +617 -0
  794. larmor_dmri-1.0.0/src/larmor/viewer/qt/field.py +313 -0
  795. larmor_dmri-1.0.0/src/larmor/viewer/qt/fod_inspector_panel.py +134 -0
  796. larmor_dmri-1.0.0/src/larmor/viewer/qt/help_panel.py +111 -0
  797. larmor_dmri-1.0.0/src/larmor/viewer/qt/labels_panel.py +224 -0
  798. larmor_dmri-1.0.0/src/larmor/viewer/qt/layers.py +316 -0
  799. larmor_dmri-1.0.0/src/larmor/viewer/qt/loading.py +101 -0
  800. larmor_dmri-1.0.0/src/larmor/viewer/qt/main_window.py +694 -0
  801. larmor_dmri-1.0.0/src/larmor/viewer/qt/matlab_dialog.py +261 -0
  802. larmor_dmri-1.0.0/src/larmor/viewer/qt/options_panel.py +337 -0
  803. larmor_dmri-1.0.0/src/larmor/viewer/qt/regions_editor.py +199 -0
  804. larmor_dmri-1.0.0/src/larmor/viewer/qt/registration_dialog.py +215 -0
  805. larmor_dmri-1.0.0/src/larmor/viewer/qt/screenshot_panel.py +631 -0
  806. larmor_dmri-1.0.0/src/larmor/viewer/qt/settings_panel.py +238 -0
  807. larmor_dmri-1.0.0/src/larmor/viewer/qt/shortcuts.py +137 -0
  808. larmor_dmri-1.0.0/src/larmor/viewer/qt/style.py +227 -0
  809. larmor_dmri-1.0.0/src/larmor/viewer/qt/views.py +309 -0
  810. larmor_dmri-1.0.0/src/larmor/viewer/render/__init__.py +1 -0
  811. larmor_dmri-1.0.0/src/larmor/viewer/render/adapter.py +31 -0
  812. larmor_dmri-1.0.0/src/larmor/viewer/render/annotations.py +190 -0
  813. larmor_dmri-1.0.0/src/larmor/viewer/render/backing.py +62 -0
  814. larmor_dmri-1.0.0/src/larmor/viewer/render/colour_bars.py +152 -0
  815. larmor_dmri-1.0.0/src/larmor/viewer/render/colour_space.py +41 -0
  816. larmor_dmri-1.0.0/src/larmor/viewer/render/fod_adapter.py +277 -0
  817. larmor_dmri-1.0.0/src/larmor/viewer/render/fod_inspector.py +361 -0
  818. larmor_dmri-1.0.0/src/larmor/viewer/render/geometry.py +704 -0
  819. larmor_dmri-1.0.0/src/larmor/viewer/render/glyphs.py +327 -0
  820. larmor_dmri-1.0.0/src/larmor/viewer/render/gpu.py +55 -0
  821. larmor_dmri-1.0.0/src/larmor/viewer/render/labels_3d.py +144 -0
  822. larmor_dmri-1.0.0/src/larmor/viewer/render/navigation.py +57 -0
  823. larmor_dmri-1.0.0/src/larmor/viewer/render/offscreen.py +710 -0
  824. larmor_dmri-1.0.0/src/larmor/viewer/render/overlay_slice.py +35 -0
  825. larmor_dmri-1.0.0/src/larmor/viewer/render/peaks_adapter.py +168 -0
  826. larmor_dmri-1.0.0/src/larmor/viewer/render/scene_renderer.py +175 -0
  827. larmor_dmri-1.0.0/src/larmor/viewer/render/surface_adapter.py +413 -0
  828. larmor_dmri-1.0.0/src/larmor/viewer/render/surfaces.py +131 -0
  829. larmor_dmri-1.0.0/src/larmor/viewer/render/tractogram_adapter.py +742 -0
  830. larmor_dmri-1.0.0/src/larmor/viewer/render/view.py +218 -0
  831. larmor_dmri-1.0.0/src/larmor/viewer/render/view_3d.py +51 -0
  832. larmor_dmri-1.0.0/src/larmor/viewer/render/view_button.py +125 -0
  833. larmor_dmri-1.0.0/src/larmor/viewer/render/view_labels.py +105 -0
  834. larmor_dmri-1.0.0/src/larmor/viewer/render/volume_3d.py +288 -0
  835. larmor_dmri-1.0.0/src/larmor/viewer/render/volume_adapter.py +375 -0
  836. larmor_dmri-1.0.0/src/larmor/viewer/render/volume_blend.py +227 -0
  837. larmor_dmri-1.0.0/src/larmor/viewer/render/volume_blend.wgsl +199 -0
  838. larmor_dmri-1.0.0/src/larmor/viewer/render/worker.py +150 -0
  839. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/01-getting-started.md +126 -0
  840. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/02-2d-views.md +38 -0
  841. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/03-volumes-and-overlays.md +40 -0
  842. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/04-parcellations.md +36 -0
  843. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/05-tractograms.md +95 -0
  844. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/06-3d-view.md +31 -0
  845. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/07-fod-glyphs.md +39 -0
  846. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/08-peaks.md +25 -0
  847. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/09-settings.md +61 -0
  848. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/10-screenshots.md +41 -0
  849. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/11-sessions.md +24 -0
  850. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/12-agents.md +118 -0
  851. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/13-surfaces.md +56 -0
  852. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/14-matlab-files.md +36 -0
  853. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/2d-view.png +0 -0
  854. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/3d-view.png +0 -0
  855. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/dti-colours.png +0 -0
  856. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/fod-glyphs.png +0 -0
  857. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/labels.png +0 -0
  858. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/overlay.png +0 -0
  859. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/peaks.png +0 -0
  860. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/settings.png +0 -0
  861. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/surfaces-2d.png +0 -0
  862. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/surfaces-3d.png +0 -0
  863. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/tracts-3d.png +0 -0
  864. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/tracts-regions.png +0 -0
  865. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/tracts-slab.png +0 -0
  866. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/tracts-values.png +0 -0
  867. larmor_dmri-1.0.0/src/larmor/viewer/resources/guides/images/window.png +0 -0
  868. larmor_dmri-1.0.0/src/larmor/viewer/resources/icon.svg +42 -0
  869. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/LICENSE-lucide.txt +43 -0
  870. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/camera.svg +16 -0
  871. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/check.svg +15 -0
  872. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/chevron-down.svg +15 -0
  873. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/chevron-right.svg +15 -0
  874. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/chevron-up.svg +15 -0
  875. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/circle-help.svg +17 -0
  876. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/eye-dashed.svg +23 -0
  877. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/eye-off.svg +18 -0
  878. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/eye.svg +16 -0
  879. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/info.svg +17 -0
  880. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/layers.svg +17 -0
  881. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/maximize-2.svg +18 -0
  882. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/minimize-2.svg +18 -0
  883. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/minus.svg +15 -0
  884. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/pin-off.svg +18 -0
  885. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/pin.svg +16 -0
  886. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/scan-search.svg +20 -0
  887. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/settings.svg +16 -0
  888. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/sliders-horizontal.svg +23 -0
  889. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/tags.svg +17 -0
  890. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/trash-2.svg +19 -0
  891. larmor_dmri-1.0.0/src/larmor/viewer/resources/icons/x.svg +16 -0
  892. larmor_dmri-1.0.0/src/larmor/viewer/resources/viewer.qss +656 -0
  893. larmor_dmri-1.0.0/src/larmor/viewer/system.py +152 -0
  894. larmor_dmri-1.0.0/tests/cli/cli_fixtures.py +25 -0
  895. larmor_dmri-1.0.0/tests/cli/test_bv_command.py +264 -0
  896. larmor_dmri-1.0.0/tests/cli/test_cli.py +839 -0
  897. larmor_dmri-1.0.0/tests/cli/test_convert.py +427 -0
  898. larmor_dmri-1.0.0/tests/cli/test_convert_matlab.py +102 -0
  899. larmor_dmri-1.0.0/tests/cli/test_degibbs_command.py +51 -0
  900. larmor_dmri-1.0.0/tests/cli/test_denoise_command.py +40 -0
  901. larmor_dmri-1.0.0/tests/cli/test_density_connectome_commands.py +123 -0
  902. larmor_dmri-1.0.0/tests/cli/test_dki_command.py +144 -0
  903. larmor_dmri-1.0.0/tests/cli/test_info.py +221 -0
  904. larmor_dmri-1.0.0/tests/cli/test_peaks_command.py +422 -0
  905. larmor_dmri-1.0.0/tests/cli/test_sh_convert.py +222 -0
  906. larmor_dmri-1.0.0/tests/cli/test_startup.py +38 -0
  907. larmor_dmri-1.0.0/tests/cli/test_track_command.py +708 -0
  908. larmor_dmri-1.0.0/tests/cli/test_tract_edit_command.py +551 -0
  909. larmor_dmri-1.0.0/tests/cli/test_tract_profile_command.py +84 -0
  910. larmor_dmri-1.0.0/tests/cli/test_transform_command.py +97 -0
  911. larmor_dmri-1.0.0/tests/conftest.py +295 -0
  912. larmor_dmri-1.0.0/tests/data/README.md +129 -0
  913. larmor_dmri-1.0.0/tests/data/asym/fod_block.nii.gz +0 -0
  914. larmor_dmri-1.0.0/tests/data/asym/make_asym_fod.py +44 -0
  915. larmor_dmri-1.0.0/tests/data/asym/make_asym_ref.py +24 -0
  916. larmor_dmri-1.0.0/tests/data/bmat.txt +33 -0
  917. larmor_dmri-1.0.0/tests/data/bvals.txt +1 -0
  918. larmor_dmri-1.0.0/tests/data/bvecs.txt +3 -0
  919. larmor_dmri-1.0.0/tests/data/connectome/lut.txt +61 -0
  920. larmor_dmri-1.0.0/tests/data/connectome/make_connectome_ref.py +153 -0
  921. larmor_dmri-1.0.0/tests/data/connectome/parcellation.nii.gz +0 -0
  922. larmor_dmri-1.0.0/tests/data/connectome/ref.npz +0 -0
  923. larmor_dmri-1.0.0/tests/data/connectome/template.nii.gz +0 -0
  924. larmor_dmri-1.0.0/tests/data/connectome/tracks.tck +0 -0
  925. larmor_dmri-1.0.0/tests/data/connectome/weights.txt +1 -0
  926. larmor_dmri-1.0.0/tests/data/deconv_obj.mat +0 -0
  927. larmor_dmri-1.0.0/tests/data/dki/bvals +1 -0
  928. larmor_dmri-1.0.0/tests/data/dki/bvecs +3 -0
  929. larmor_dmri-1.0.0/tests/data/dki/dwi.nii.gz +0 -0
  930. larmor_dmri-1.0.0/tests/data/dki/mask.nii.gz +0 -0
  931. larmor_dmri-1.0.0/tests/data/dki/mrtrix_dkt_ref.npz +0 -0
  932. larmor_dmri-1.0.0/tests/data/dki/mrtrix_dt_ref.npz +0 -0
  933. larmor_dmri-1.0.0/tests/data/dki/mrtrix_mppca_ref.npz +0 -0
  934. larmor_dmri-1.0.0/tests/data/editing/crop_float.tck +0 -0
  935. larmor_dmri-1.0.0/tests/data/editing/crop_shell.tck +0 -0
  936. larmor_dmri-1.0.0/tests/data/editing/crop_shell_inverse.tck +0 -0
  937. larmor_dmri-1.0.0/tests/data/editing/crop_spheres.tck +0 -0
  938. larmor_dmri-1.0.0/tests/data/editing/edge_cases.tck +0 -0
  939. larmor_dmri-1.0.0/tests/data/editing/edge_cases_num_points_2.tck +0 -0
  940. larmor_dmri-1.0.0/tests/data/editing/edge_cases_num_points_5.tck +0 -0
  941. larmor_dmri-1.0.0/tests/data/editing/edge_cases_step_size_0.5.tck +0 -0
  942. larmor_dmri-1.0.0/tests/data/editing/edge_cases_step_size_2.tck +0 -0
  943. larmor_dmri-1.0.0/tests/data/editing/float_mask.nii.gz +0 -0
  944. larmor_dmri-1.0.0/tests/data/editing/lengths_ref.npz +0 -0
  945. larmor_dmri-1.0.0/tests/data/editing/make_editing_input.py +20 -0
  946. larmor_dmri-1.0.0/tests/data/editing/make_lengths_ref.py +133 -0
  947. larmor_dmri-1.0.0/tests/data/editing/make_regions_ref.py +206 -0
  948. larmor_dmri-1.0.0/tests/data/editing/make_resample_ref.py +63 -0
  949. larmor_dmri-1.0.0/tests/data/editing/make_tract_edit_ref.py +141 -0
  950. larmor_dmri-1.0.0/tests/data/editing/regions_ref.npz +0 -0
  951. larmor_dmri-1.0.0/tests/data/editing/shell_mask.nii.gz +0 -0
  952. larmor_dmri-1.0.0/tests/data/editing/sift2_weights.txt +2 -0
  953. larmor_dmri-1.0.0/tests/data/editing/tracks.tck +0 -0
  954. larmor_dmri-1.0.0/tests/data/editing/tracks_num_points_10.tck +0 -0
  955. larmor_dmri-1.0.0/tests/data/editing/tracks_num_points_2.tck +0 -0
  956. larmor_dmri-1.0.0/tests/data/editing/tracks_num_points_50.tck +0 -0
  957. larmor_dmri-1.0.0/tests/data/editing/tracks_step_size_0.5.tck +0 -0
  958. larmor_dmri-1.0.0/tests/data/editing/tracks_step_size_2.tck +0 -0
  959. larmor_dmri-1.0.0/tests/data/editing/tract_edit_join.tck +0 -0
  960. larmor_dmri-1.0.0/tests/data/editing/tract_edit_ref.npz +0 -0
  961. larmor_dmri-1.0.0/tests/data/editing/weights.txt +1 -0
  962. larmor_dmri-1.0.0/tests/data/editing/weights_selected.txt +1 -0
  963. larmor_dmri-1.0.0/tests/data/gibbs/dwi.nii.gz +0 -0
  964. larmor_dmri-1.0.0/tests/data/gibbs/mrdegibbs_ref.npz +0 -0
  965. larmor_dmri-1.0.0/tests/data/gibbs/phantom.nii.gz +0 -0
  966. larmor_dmri-1.0.0/tests/data/grl/block_dwi.nii.gz +0 -0
  967. larmor_dmri-1.0.0/tests/data/grl/block_dwi_brain_mask.nii.gz +0 -0
  968. larmor_dmri-1.0.0/tests/data/grl_kurtosis_kernel.mat +0 -0
  969. larmor_dmri-1.0.0/tests/data/grl_obj.mat +0 -0
  970. larmor_dmri-1.0.0/tests/data/lasso/lasso_problems.mat +0 -0
  971. larmor_dmri-1.0.0/tests/data/leemans_tournier_ref.mat +0 -0
  972. larmor_dmri-1.0.0/tests/data/make_dki_mrtrix_ref.py +96 -0
  973. larmor_dmri-1.0.0/tests/data/make_dki_ref.py +61 -0
  974. larmor_dmri-1.0.0/tests/data/make_dti_mrtrix_ref.py +86 -0
  975. larmor_dmri-1.0.0/tests/data/make_gibbs_ref.py +106 -0
  976. larmor_dmri-1.0.0/tests/data/make_mif_ref.py +49 -0
  977. larmor_dmri-1.0.0/tests/data/make_mppca_mrtrix_ref.py +81 -0
  978. larmor_dmri-1.0.0/tests/data/make_mrtrix_grad_ref.py +68 -0
  979. larmor_dmri-1.0.0/tests/data/make_peaks_ref.py +61 -0
  980. larmor_dmri-1.0.0/tests/data/make_sh_ref.py +36 -0
  981. larmor_dmri-1.0.0/tests/data/make_tck_ref.py +26 -0
  982. larmor_dmri-1.0.0/tests/data/make_tckgen_det_ref.py +186 -0
  983. larmor_dmri-1.0.0/tests/data/make_tckgen_prob_ref.py +116 -0
  984. larmor_dmri-1.0.0/tests/data/make_vtk_ref.py +20 -0
  985. larmor_dmri-1.0.0/tests/data/matlab/expected.mat +0 -0
  986. larmor_dmri-1.0.0/tests/data/matlab/values_v4.mat +0 -0
  987. larmor_dmri-1.0.0/tests/data/matlab/values_v6.mat +0 -0
  988. larmor_dmri-1.0.0/tests/data/matlab/values_v7.mat +0 -0
  989. larmor_dmri-1.0.0/tests/data/matlab/values_v73.mat +0 -0
  990. larmor_dmri-1.0.0/tests/data/mfod/mfod_kernel.mat +0 -0
  991. larmor_dmri-1.0.0/tests/data/mfod/mfod_lasso_ref.mat +0 -0
  992. larmor_dmri-1.0.0/tests/data/mfod/mfod_ref.mat +0 -0
  993. larmor_dmri-1.0.0/tests/data/mif/dwi.b +6 -0
  994. larmor_dmri-1.0.0/tests/data/mif/dwi.bval +1 -0
  995. larmor_dmri-1.0.0/tests/data/mif/dwi.bvec +3 -0
  996. larmor_dmri-1.0.0/tests/data/mif/dwi.mif +0 -0
  997. larmor_dmri-1.0.0/tests/data/mif/float32be.mif +0 -0
  998. larmor_dmri-1.0.0/tests/data/mif/grad_odd.b +6 -0
  999. larmor_dmri-1.0.0/tests/data/mif/grad_odd_export.b +6 -0
  1000. larmor_dmri-1.0.0/tests/data/mif/grad_odd_export.bval +1 -0
  1001. larmor_dmri-1.0.0/tests/data/mif/grad_odd_export.bvec +3 -0
  1002. larmor_dmri-1.0.0/tests/data/mif/int16be.mif.gz +0 -0
  1003. larmor_dmri-1.0.0/tests/data/mif/larmor_dwi.b +5 -0
  1004. larmor_dmri-1.0.0/tests/data/mif/larmor_dwi.bval +1 -0
  1005. larmor_dmri-1.0.0/tests/data/mif/larmor_dwi.bvec +3 -0
  1006. larmor_dmri-1.0.0/tests/data/mif/layout_permuted.mif +0 -0
  1007. larmor_dmri-1.0.0/tests/data/mif/mask.nii +0 -0
  1008. larmor_dmri-1.0.0/tests/data/mif/mask_bit.mif +0 -0
  1009. larmor_dmri-1.0.0/tests/data/mif/source.nii +0 -0
  1010. larmor_dmri-1.0.0/tests/data/mif/split.dat +0 -0
  1011. larmor_dmri-1.0.0/tests/data/mif/split.mih +11 -0
  1012. larmor_dmri-1.0.0/tests/data/mritoolkit/bvals +1 -0
  1013. larmor_dmri-1.0.0/tests/data/mritoolkit/bvecs +3 -0
  1014. larmor_dmri-1.0.0/tests/data/mritoolkit/dki_fit.mat +0 -0
  1015. larmor_dmri-1.0.0/tests/data/mritoolkit/dti_fit.mat +0 -0
  1016. larmor_dmri-1.0.0/tests/data/mritoolkit/dti_fit_v7.mat +0 -0
  1017. larmor_dmri-1.0.0/tests/data/mritoolkit/dwi.nii.gz +0 -0
  1018. larmor_dmri-1.0.0/tests/data/mritoolkit/grl.mat +0 -0
  1019. larmor_dmri-1.0.0/tests/data/mritoolkit/grl_CSD_FOD.nii.gz +0 -0
  1020. larmor_dmri-1.0.0/tests/data/mritoolkit/grl_fractions.nii.gz +0 -0
  1021. larmor_dmri-1.0.0/tests/data/mritoolkit/grl_v7.mat +0 -0
  1022. larmor_dmri-1.0.0/tests/data/mritoolkit/make_mritoolkit_input.py +42 -0
  1023. larmor_dmri-1.0.0/tests/data/mritoolkit/mask.nii.gz +0 -0
  1024. larmor_dmri-1.0.0/tests/data/mritoolkit/tracts.mat +0 -0
  1025. larmor_dmri-1.0.0/tests/data/mritoolkit/tracts_v73.mat +0 -0
  1026. larmor_dmri-1.0.0/tests/data/peaks/fod.mif +0 -0
  1027. larmor_dmri-1.0.0/tests/data/peaks/peaks_ref.mif +0 -0
  1028. larmor_dmri-1.0.0/tests/data/registration/ants_affine.mat +0 -0
  1029. larmor_dmri-1.0.0/tests/data/registration/ants_affine.txt +5 -0
  1030. larmor_dmri-1.0.0/tests/data/registration/ants_affine_cubic.nii.gz +0 -0
  1031. larmor_dmri-1.0.0/tests/data/registration/ants_affine_inverse_linear.nii.gz +0 -0
  1032. larmor_dmri-1.0.0/tests/data/registration/ants_affine_inverse_points.txt +21 -0
  1033. larmor_dmri-1.0.0/tests/data/registration/ants_affine_linear.nii.gz +0 -0
  1034. larmor_dmri-1.0.0/tests/data/registration/ants_affine_nearest.nii.gz +0 -0
  1035. larmor_dmri-1.0.0/tests/data/registration/ants_chain_linear.nii.gz +0 -0
  1036. larmor_dmri-1.0.0/tests/data/registration/ants_chain_points.txt +21 -0
  1037. larmor_dmri-1.0.0/tests/data/registration/ants_warp.nii.gz +0 -0
  1038. larmor_dmri-1.0.0/tests/data/registration/fixed.nii.gz +0 -0
  1039. larmor_dmri-1.0.0/tests/data/registration/flirt.mat +4 -0
  1040. larmor_dmri-1.0.0/tests/data/registration/flirt_inverse.mat +4 -0
  1041. larmor_dmri-1.0.0/tests/data/registration/fsl_flirt_linear.nii.gz +0 -0
  1042. larmor_dmri-1.0.0/tests/data/registration/fsl_flirt_nearest.nii.gz +0 -0
  1043. larmor_dmri-1.0.0/tests/data/registration/fsl_flirt_points.txt +21 -0
  1044. larmor_dmri-1.0.0/tests/data/registration/fsl_warp.nii.gz +0 -0
  1045. larmor_dmri-1.0.0/tests/data/registration/fsl_warp_linear.nii.gz +0 -0
  1046. larmor_dmri-1.0.0/tests/data/registration/fsl_warp_nearest.nii.gz +0 -0
  1047. larmor_dmri-1.0.0/tests/data/registration/fsl_warp_points.txt +21 -0
  1048. larmor_dmri-1.0.0/tests/data/registration/make_registration_ref.py +354 -0
  1049. larmor_dmri-1.0.0/tests/data/registration/moving.nii.gz +0 -0
  1050. larmor_dmri-1.0.0/tests/data/registration/moving_labels.nii.gz +0 -0
  1051. larmor_dmri-1.0.0/tests/data/registration/mrtrix_affine.txt +5 -0
  1052. larmor_dmri-1.0.0/tests/data/registration/mrtrix_affine_inverse_tracks.tck +0 -0
  1053. larmor_dmri-1.0.0/tests/data/registration/mrtrix_affine_linear.nii.gz +0 -0
  1054. larmor_dmri-1.0.0/tests/data/registration/mrtrix_affine_nearest.nii.gz +0 -0
  1055. larmor_dmri-1.0.0/tests/data/registration/mrtrix_affine_tracks.tck +0 -0
  1056. larmor_dmri-1.0.0/tests/data/registration/mrtrix_from_flirt.txt +5 -0
  1057. larmor_dmri-1.0.0/tests/data/registration/mrtrix_warp.mif +0 -0
  1058. larmor_dmri-1.0.0/tests/data/registration/mrtrix_warp_inverse.mif +0 -0
  1059. larmor_dmri-1.0.0/tests/data/registration/mrtrix_warp_inverse_tracks.tck +0 -0
  1060. larmor_dmri-1.0.0/tests/data/registration/mrtrix_warp_linear.nii.gz +0 -0
  1061. larmor_dmri-1.0.0/tests/data/registration/mrtrix_warp_tracks.tck +0 -0
  1062. larmor_dmri-1.0.0/tests/data/registration/points_fixed.txt +21 -0
  1063. larmor_dmri-1.0.0/tests/data/registration/tracks_fixed.tck +0 -0
  1064. larmor_dmri-1.0.0/tests/data/sh_tournier_ref.npz +0 -0
  1065. larmor_dmri-1.0.0/tests/data/surfaces/gifti/lh.labels.label.gii +9 -0
  1066. larmor_dmri-1.0.0/tests/data/surfaces/gifti/lh.white.surf.gii +9 -0
  1067. larmor_dmri-1.0.0/tests/data/surfaces/label/lh.Medial_wall.label +66 -0
  1068. larmor_dmri-1.0.0/tests/data/surfaces/label/lh.cortex.label +580 -0
  1069. larmor_dmri-1.0.0/tests/data/surfaces/make_surfaces.py +170 -0
  1070. larmor_dmri-1.0.0/tests/data/surfaces/surf/lh.curv +0 -0
  1071. larmor_dmri-1.0.0/tests/data/surfaces/surf/lh.sphere +0 -0
  1072. larmor_dmri-1.0.0/tests/data/surfaces/surf/lh.sulc +0 -0
  1073. larmor_dmri-1.0.0/tests/data/surfaces/surf/lh.thickness +0 -0
  1074. larmor_dmri-1.0.0/tests/data/surfaces/surf/lh.white +0 -0
  1075. larmor_dmri-1.0.0/tests/data/surfaces/surf/rh.curv +0 -0
  1076. larmor_dmri-1.0.0/tests/data/surfaces/surf/rh.white +0 -0
  1077. larmor_dmri-1.0.0/tests/data/tck/ref.tck +0 -0
  1078. larmor_dmri-1.0.0/tests/data/tck/s-0.txt +5 -0
  1079. larmor_dmri-1.0.0/tests/data/tck/s-1.txt +1 -0
  1080. larmor_dmri-1.0.0/tests/data/tck/s-2.txt +3 -0
  1081. larmor_dmri-1.0.0/tests/data/tck/s-3.txt +2 -0
  1082. larmor_dmri-1.0.0/tests/data/tracking/det_ref.tck +0 -0
  1083. larmor_dmri-1.0.0/tests/data/tracking/det_ref_maxlen.tck +0 -0
  1084. larmor_dmri-1.0.0/tests/data/tracking/det_ref_maxlen_seeds.txt +35 -0
  1085. larmor_dmri-1.0.0/tests/data/tracking/det_ref_seeds.txt +35 -0
  1086. larmor_dmri-1.0.0/tests/data/tracking/fod.nii.gz +0 -0
  1087. larmor_dmri-1.0.0/tests/data/tracking/mask.nii.gz +0 -0
  1088. larmor_dmri-1.0.0/tests/data/tracking/prob_ref.tck +0 -0
  1089. larmor_dmri-1.0.0/tests/data/tracking/prob_ref_info.json +165 -0
  1090. larmor_dmri-1.0.0/tests/data/tracking/prob_ref_seeds.txt +259 -0
  1091. larmor_dmri-1.0.0/tests/data/tracking/seeds.nii.gz +0 -0
  1092. larmor_dmri-1.0.0/tests/data/tsf/bzero.tsf +0 -0
  1093. larmor_dmri-1.0.0/tests/data/tsf/bzero_crop.nii.gz +0 -0
  1094. larmor_dmri-1.0.0/tests/data/tsf/bzero_smooth.tsf +0 -0
  1095. larmor_dmri-1.0.0/tests/data/tsf/edges.nii +0 -0
  1096. larmor_dmri-1.0.0/tests/data/tsf/edges.tck +0 -0
  1097. larmor_dmri-1.0.0/tests/data/tsf/edges.tsf +0 -0
  1098. larmor_dmri-1.0.0/tests/data/tsf/make_sampling_ref.py +90 -0
  1099. larmor_dmri-1.0.0/tests/data/tsf/make_tsf_ref.py +86 -0
  1100. larmor_dmri-1.0.0/tests/data/vtk/ascii.vtk +21 -0
  1101. larmor_dmri-1.0.0/tests/data/vtk/binary.vtk +0 -0
  1102. larmor_dmri-1.0.0/tests/data/wm_rf/wm_rf_ref.mat +0 -0
  1103. larmor_dmri-1.0.0/tests/dwi/reference_fitting.py +177 -0
  1104. larmor_dmri-1.0.0/tests/dwi/reference_mppca.py +56 -0
  1105. larmor_dmri-1.0.0/tests/dwi/test_denoise.py +111 -0
  1106. larmor_dmri-1.0.0/tests/dwi/test_dki.py +609 -0
  1107. larmor_dmri-1.0.0/tests/dwi/test_dti.py +147 -0
  1108. larmor_dmri-1.0.0/tests/dwi/test_fitting.py +90 -0
  1109. larmor_dmri-1.0.0/tests/dwi/test_gibbs.py +125 -0
  1110. larmor_dmri-1.0.0/tests/dwi/test_inputs.py +107 -0
  1111. larmor_dmri-1.0.0/tests/io/formats/test_affine.py +35 -0
  1112. larmor_dmri-1.0.0/tests/io/formats/test_freesurfer.py +454 -0
  1113. larmor_dmri-1.0.0/tests/io/formats/test_gifti.py +416 -0
  1114. larmor_dmri-1.0.0/tests/io/formats/test_lookup_table.py +139 -0
  1115. larmor_dmri-1.0.0/tests/io/formats/test_matlab.py +196 -0
  1116. larmor_dmri-1.0.0/tests/io/formats/test_mif.py +930 -0
  1117. larmor_dmri-1.0.0/tests/io/formats/test_nifti.py +533 -0
  1118. larmor_dmri-1.0.0/tests/io/formats/test_streamline_weights.py +57 -0
  1119. larmor_dmri-1.0.0/tests/io/formats/test_tck.py +612 -0
  1120. larmor_dmri-1.0.0/tests/io/formats/test_trk.py +961 -0
  1121. larmor_dmri-1.0.0/tests/io/formats/test_tsf.py +310 -0
  1122. larmor_dmri-1.0.0/tests/io/formats/test_vtk.py +835 -0
  1123. larmor_dmri-1.0.0/tests/io/test_batch_writers.py +615 -0
  1124. larmor_dmri-1.0.0/tests/io/test_bvals_bvecs.py +752 -0
  1125. larmor_dmri-1.0.0/tests/io/test_dwi.py +127 -0
  1126. larmor_dmri-1.0.0/tests/io/test_iter_tractogram.py +358 -0
  1127. larmor_dmri-1.0.0/tests/io/test_load_save.py +348 -0
  1128. larmor_dmri-1.0.0/tests/io/test_load_surface.py +245 -0
  1129. larmor_dmri-1.0.0/tests/io/test_mritoolkit.py +181 -0
  1130. larmor_dmri-1.0.0/tests/io/test_mrtrix_gradients.py +126 -0
  1131. larmor_dmri-1.0.0/tests/io/test_progress.py +292 -0
  1132. larmor_dmri-1.0.0/tests/io/test_reader.py +344 -0
  1133. larmor_dmri-1.0.0/tests/io/test_writer.py +247 -0
  1134. larmor_dmri-1.0.0/tests/matlab_scripts/make_grl_kurtosis_kernel_ref.m +21 -0
  1135. larmor_dmri-1.0.0/tests/matlab_scripts/make_lasso_ref.m +156 -0
  1136. larmor_dmri-1.0.0/tests/matlab_scripts/make_leemans_tournier_ref.m +53 -0
  1137. larmor_dmri-1.0.0/tests/matlab_scripts/make_matlab_values_ref.m +67 -0
  1138. larmor_dmri-1.0.0/tests/matlab_scripts/make_mfod_lasso_ref.m +133 -0
  1139. larmor_dmri-1.0.0/tests/matlab_scripts/make_mfod_ref.m +184 -0
  1140. larmor_dmri-1.0.0/tests/matlab_scripts/make_mritoolkit_ref.m +89 -0
  1141. larmor_dmri-1.0.0/tests/matlab_scripts/make_wm_rf_ref.m +217 -0
  1142. larmor_dmri-1.0.0/tests/matlab_scripts/run_grl.m +67 -0
  1143. larmor_dmri-1.0.0/tests/registration/test_apply.py +242 -0
  1144. larmor_dmri-1.0.0/tests/registration/test_oracles.py +293 -0
  1145. larmor_dmri-1.0.0/tests/sd/reference_peaks.py +243 -0
  1146. larmor_dmri-1.0.0/tests/sd/reference_solvers.py +294 -0
  1147. larmor_dmri-1.0.0/tests/sd/test_drl.py +234 -0
  1148. larmor_dmri-1.0.0/tests/sd/test_fit.py +544 -0
  1149. larmor_dmri-1.0.0/tests/sd/test_grl.py +358 -0
  1150. larmor_dmri-1.0.0/tests/sd/test_l2nnls.py +161 -0
  1151. larmor_dmri-1.0.0/tests/sd/test_lasso.py +112 -0
  1152. larmor_dmri-1.0.0/tests/sd/test_matlab_match.py +193 -0
  1153. larmor_dmri-1.0.0/tests/sd/test_method.py +153 -0
  1154. larmor_dmri-1.0.0/tests/sd/test_mritoolkit_fod.py +71 -0
  1155. larmor_dmri-1.0.0/tests/sd/test_noddi.py +63 -0
  1156. larmor_dmri-1.0.0/tests/sd/test_peaks.py +1297 -0
  1157. larmor_dmri-1.0.0/tests/sd/test_peaks_compiled.py +538 -0
  1158. larmor_dmri-1.0.0/tests/sd/test_peaks_reference.py +84 -0
  1159. larmor_dmri-1.0.0/tests/sd/test_rf.py +155 -0
  1160. larmor_dmri-1.0.0/tests/sd/test_rf_kurtosis.py +430 -0
  1161. larmor_dmri-1.0.0/tests/sd/test_sh.py +246 -0
  1162. larmor_dmri-1.0.0/tests/surfaces/test_mesh.py +194 -0
  1163. larmor_dmri-1.0.0/tests/test_core.py +56 -0
  1164. larmor_dmri-1.0.0/tests/test_core_stub.py +24 -0
  1165. larmor_dmri-1.0.0/tests/test_docs.py +472 -0
  1166. larmor_dmri-1.0.0/tests/test_docstrings.py +73 -0
  1167. larmor_dmri-1.0.0/tests/test_example_data.py +282 -0
  1168. larmor_dmri-1.0.0/tests/test_layout.py +169 -0
  1169. larmor_dmri-1.0.0/tests/test_naming.py +55 -0
  1170. larmor_dmri-1.0.0/tests/test_public_api.py +73 -0
  1171. larmor_dmri-1.0.0/tests/tractography/reference_density.py +84 -0
  1172. larmor_dmri-1.0.0/tests/tractography/reference_prob.py +333 -0
  1173. larmor_dmri-1.0.0/tests/tractography/reference_random.py +68 -0
  1174. larmor_dmri-1.0.0/tests/tractography/reference_resampling.py +236 -0
  1175. larmor_dmri-1.0.0/tests/tractography/reference_tracking.py +233 -0
  1176. larmor_dmri-1.0.0/tests/tractography/test_asymmetric.py +221 -0
  1177. larmor_dmri-1.0.0/tests/tractography/test_connectome.py +141 -0
  1178. larmor_dmri-1.0.0/tests/tractography/test_density.py +194 -0
  1179. larmor_dmri-1.0.0/tests/tractography/test_det.py +934 -0
  1180. larmor_dmri-1.0.0/tests/tractography/test_det_tckgen.py +232 -0
  1181. larmor_dmri-1.0.0/tests/tractography/test_edit.py +367 -0
  1182. larmor_dmri-1.0.0/tests/tractography/test_editing.py +551 -0
  1183. larmor_dmri-1.0.0/tests/tractography/test_kernels.py +551 -0
  1184. larmor_dmri-1.0.0/tests/tractography/test_prob.py +589 -0
  1185. larmor_dmri-1.0.0/tests/tractography/test_prob_tckgen.py +280 -0
  1186. larmor_dmri-1.0.0/tests/tractography/test_profiles.py +171 -0
  1187. larmor_dmri-1.0.0/tests/tractography/test_random.py +233 -0
  1188. larmor_dmri-1.0.0/tests/tractography/test_regions.py +183 -0
  1189. larmor_dmri-1.0.0/tests/tractography/test_resampling.py +332 -0
  1190. larmor_dmri-1.0.0/tests/tractography/test_sampling.py +57 -0
  1191. larmor_dmri-1.0.0/tests/tractography/test_seed.py +377 -0
  1192. larmor_dmri-1.0.0/tests/tractography/test_termination.py +248 -0
  1193. larmor_dmri-1.0.0/tests/tractography/test_tracker.py +718 -0
  1194. larmor_dmri-1.0.0/tests/tractography/test_tracking_reference.py +213 -0
  1195. larmor_dmri-1.0.0/tests/tractography/test_trilinear.py +271 -0
  1196. larmor_dmri-1.0.0/tests/types/test_gradient_table.py +324 -0
  1197. larmor_dmri-1.0.0/tests/types/test_grid.py +291 -0
  1198. larmor_dmri-1.0.0/tests/types/test_surface.py +127 -0
  1199. larmor_dmri-1.0.0/tests/types/test_tractogram.py +317 -0
  1200. larmor_dmri-1.0.0/tests/types/test_volume.py +513 -0
  1201. larmor_dmri-1.0.0/tests/viewer/model/test_actions.py +1194 -0
  1202. larmor_dmri-1.0.0/tests/viewer/model/test_dti_colours.py +149 -0
  1203. larmor_dmri-1.0.0/tests/viewer/model/test_fod.py +40 -0
  1204. larmor_dmri-1.0.0/tests/viewer/model/test_labels.py +130 -0
  1205. larmor_dmri-1.0.0/tests/viewer/model/test_matlab_import.py +327 -0
  1206. larmor_dmri-1.0.0/tests/viewer/model/test_navigation.py +647 -0
  1207. larmor_dmri-1.0.0/tests/viewer/model/test_options.py +422 -0
  1208. larmor_dmri-1.0.0/tests/viewer/model/test_registration_items.py +274 -0
  1209. larmor_dmri-1.0.0/tests/viewer/model/test_registry.py +31 -0
  1210. larmor_dmri-1.0.0/tests/viewer/model/test_scene.py +161 -0
  1211. larmor_dmri-1.0.0/tests/viewer/model/test_session.py +269 -0
  1212. larmor_dmri-1.0.0/tests/viewer/model/test_settings.py +194 -0
  1213. larmor_dmri-1.0.0/tests/viewer/model/test_shortcuts.py +303 -0
  1214. larmor_dmri-1.0.0/tests/viewer/model/test_surface_items.py +316 -0
  1215. larmor_dmri-1.0.0/tests/viewer/model/test_tract_regions.py +254 -0
  1216. larmor_dmri-1.0.0/tests/viewer/model/test_tract_values.py +169 -0
  1217. larmor_dmri-1.0.0/tests/viewer/render_helpers.py +176 -0
  1218. larmor_dmri-1.0.0/tests/viewer/test_annotations.py +448 -0
  1219. larmor_dmri-1.0.0/tests/viewer/test_colour_bars.py +506 -0
  1220. larmor_dmri-1.0.0/tests/viewer/test_colour_space.py +13 -0
  1221. larmor_dmri-1.0.0/tests/viewer/test_density_overlay.py +39 -0
  1222. larmor_dmri-1.0.0/tests/viewer/test_docks.py +278 -0
  1223. larmor_dmri-1.0.0/tests/viewer/test_dti_render.py +123 -0
  1224. larmor_dmri-1.0.0/tests/viewer/test_fod_adapter.py +182 -0
  1225. larmor_dmri-1.0.0/tests/viewer/test_fod_inspector.py +163 -0
  1226. larmor_dmri-1.0.0/tests/viewer/test_geometry.py +639 -0
  1227. larmor_dmri-1.0.0/tests/viewer/test_glyphs.py +208 -0
  1228. larmor_dmri-1.0.0/tests/viewer/test_help_panel.py +205 -0
  1229. larmor_dmri-1.0.0/tests/viewer/test_inspect_fod.py +187 -0
  1230. larmor_dmri-1.0.0/tests/viewer/test_keys.py +472 -0
  1231. larmor_dmri-1.0.0/tests/viewer/test_labels_3d.py +244 -0
  1232. larmor_dmri-1.0.0/tests/viewer/test_labels_panel.py +234 -0
  1233. larmor_dmri-1.0.0/tests/viewer/test_launcher.py +312 -0
  1234. larmor_dmri-1.0.0/tests/viewer/test_layers.py +820 -0
  1235. larmor_dmri-1.0.0/tests/viewer/test_loader.py +524 -0
  1236. larmor_dmri-1.0.0/tests/viewer/test_macos.py +67 -0
  1237. larmor_dmri-1.0.0/tests/viewer/test_matlab_dialog.py +98 -0
  1238. larmor_dmri-1.0.0/tests/viewer/test_mcp_server.py +727 -0
  1239. larmor_dmri-1.0.0/tests/viewer/test_opening.py +1132 -0
  1240. larmor_dmri-1.0.0/tests/viewer/test_options_panel.py +2339 -0
  1241. larmor_dmri-1.0.0/tests/viewer/test_peaks_adapter.py +200 -0
  1242. larmor_dmri-1.0.0/tests/viewer/test_redraws.py +154 -0
  1243. larmor_dmri-1.0.0/tests/viewer/test_regions_editor.py +76 -0
  1244. larmor_dmri-1.0.0/tests/viewer/test_registration_dialog.py +48 -0
  1245. larmor_dmri-1.0.0/tests/viewer/test_render_3d.py +884 -0
  1246. larmor_dmri-1.0.0/tests/viewer/test_render_adapters.py +443 -0
  1247. larmor_dmri-1.0.0/tests/viewer/test_render_labels.py +441 -0
  1248. larmor_dmri-1.0.0/tests/viewer/test_render_scene.py +278 -0
  1249. larmor_dmri-1.0.0/tests/viewer/test_render_slices.py +349 -0
  1250. larmor_dmri-1.0.0/tests/viewer/test_render_textures.py +321 -0
  1251. larmor_dmri-1.0.0/tests/viewer/test_render_tract_values.py +197 -0
  1252. larmor_dmri-1.0.0/tests/viewer/test_render_tractograms.py +633 -0
  1253. larmor_dmri-1.0.0/tests/viewer/test_screenshot.py +502 -0
  1254. larmor_dmri-1.0.0/tests/viewer/test_screenshot_panel.py +266 -0
  1255. larmor_dmri-1.0.0/tests/viewer/test_session_window.py +223 -0
  1256. larmor_dmri-1.0.0/tests/viewer/test_settings_panel.py +598 -0
  1257. larmor_dmri-1.0.0/tests/viewer/test_style.py +189 -0
  1258. larmor_dmri-1.0.0/tests/viewer/test_surface_adapter.py +316 -0
  1259. larmor_dmri-1.0.0/tests/viewer/test_system.py +203 -0
  1260. larmor_dmri-1.0.0/tests/viewer/test_view_input.py +286 -0
  1261. larmor_dmri-1.0.0/tests/viewer/test_view_labels.py +166 -0
  1262. larmor_dmri-1.0.0/tests/viewer/test_window.py +421 -0
  1263. larmor_dmri-1.0.0/tests/viewer/test_worker.py +188 -0
  1264. larmor_dmri-1.0.0/tests/viewer/viewer_fixtures.py +139 -0
  1265. larmor_dmri-1.0.0/tests/viewer/viewer_helpers.py +50 -0
  1266. larmor_dmri-1.0.0/uv.lock +2635 -0
@@ -0,0 +1,17 @@
1
+ # Text files are stored with LF and checked out with LF on every platform.
2
+ * text=auto eol=lf
3
+
4
+ # Binary data and images are never converted.
5
+ *.nii binary
6
+ *.nii.gz binary
7
+ *.mif binary
8
+ *.mif.gz binary
9
+ *.mat binary
10
+ *.npz binary
11
+ *.npy binary
12
+ *.tck binary
13
+ *.trk binary
14
+ *.tsf binary
15
+ *.png binary
16
+ *.webp binary
17
+ *.gii binary
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: Bug report
3
+ about: Something in Larmor gives a wrong result, crashes, or behaves differently from its documentation
4
+ title: ""
5
+ labels: ["type:bug"]
6
+ ---
7
+
8
+ <!--
9
+ Describe the bug in full sentences, so someone who was not there can understand and reproduce it.
10
+ The text inside these arrows is a hint and does not appear in the ticket.
11
+ -->
12
+
13
+ ## What happens
14
+
15
+ <!-- What you did and what Larmor did: the command or code you ran, and the output or error message (copied, not
16
+ retyped). -->
17
+
18
+ ## What should happen
19
+
20
+ <!-- What you expected instead, and why: for example what the documentation says, or what MRtrix3 or nibabel give
21
+ for the same input. -->
22
+
23
+ ## How to reproduce
24
+
25
+ <!-- The smallest set of steps or code that shows the problem. Say which data you used; if it is not shared, say
26
+ what kind of data it is (format, size, number of volumes). -->
27
+
28
+ 1.
29
+ 2.
30
+ 3.
31
+
32
+ ## Environment
33
+
34
+ <!-- The Larmor version is printed by `python -c "import larmor; print(larmor.__version__)"`. -->
35
+
36
+ - Larmor version:
37
+ - Python version:
38
+ - Operating system:
@@ -0,0 +1,2 @@
1
+ # Allow an empty issue for anything that fits neither template.
2
+ blank_issues_enabled: true
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: Feature or task
3
+ about: A new capability, an improvement, or a piece of work to plan
4
+ title: ""
5
+ labels: ["type:feature"]
6
+ ---
7
+
8
+ <!--
9
+ A ticket says what the work should achieve and why, not how to write the code. Write in full sentences.
10
+ The text inside these arrows is a hint and does not appear in the ticket.
11
+ If this is not a new feature (for example a refactor or documentation), change the type label after creating it.
12
+ -->
13
+
14
+ ## Context
15
+
16
+ <!-- The situation today and why it matters: what is missing or not working well, and who is affected. Link the
17
+ relevant page of the documentation if there is one. -->
18
+
19
+ ## Goal
20
+
21
+ <!-- What should be true when the work is done, described from the user's or the code's point of view. -->
22
+
23
+ ## Finished when
24
+
25
+ <!-- Concrete checks that tell anyone whether the ticket is done. -->
26
+
27
+ -
28
+ -
29
+
30
+ <!-- If this ticket depends on other tickets, say so here, for example "This ticket depends on #12." -->
@@ -0,0 +1,36 @@
1
+ <!--
2
+ See docs/contributing.md, "Pull requests". The title says what this pull request does, as a command
3
+ (for example "Add the bug report template"), not the branch name.
4
+ The text inside these arrows is a hint and does not appear in the pull request.
5
+ -->
6
+
7
+ ## What
8
+
9
+ <!-- What changed, so the reviewer knows what to expect before reading the code. -->
10
+
11
+ ## Why
12
+
13
+ <!-- The reason for the change. A year from now, this is what explains why the code looks the way it does. -->
14
+
15
+ ## How I tested
16
+
17
+ <!-- The proof that the change works: the tests added, and any check run by hand with its result.
18
+ A speed-up shows the measured timings and that the results did not change. A viewer change includes a
19
+ screenshot. -->
20
+
21
+ ## Before asking for a review
22
+
23
+ <!-- Tick what applies; delete lines that do not apply to this change. -->
24
+
25
+ - [ ] The checks pass locally (`uv run pytest`, `uv run ruff format .`, `uv run ruff check .`,
26
+ `uv run mypy`).
27
+ - [ ] New or changed public functions and classes have docstrings with units, conventions and array shapes.
28
+ - [ ] A method taken from another toolbox or paper (MRtrix3, dipy, MRIToolkit, ...) cites its original papers
29
+ and names the toolbox it follows, in its docstring and in the documentation.
30
+ - [ ] A new user-facing feature has an example in `examples/`.
31
+ - [ ] I read my own changes in the "Files changed" tab.
32
+
33
+ <!-- Replace the number with the ticket this pull request finishes. "Closes" must stay in this description,
34
+ not the title, so that merging closes the ticket. -->
35
+
36
+ Closes #
@@ -0,0 +1,218 @@
1
+ # Runs the project's checks on every pull request and on every push to main, unless the change only touches
2
+ # Markdown files. The same commands can be run locally; see docs/contributing.md, step 6.
3
+ name: CI
4
+
5
+ # The paths are read in order and a later pattern overrides an earlier one: every file counts, then Markdown files
6
+ # are taken out, then the Markdown of the website in docs/ is put back, because a test builds the website from it
7
+ # and another compares docs/cli.md with the CLI; the pages the website leaves out (exclude_patterns in
8
+ # docs/conf.py) are taken out again. CI runs when any changed file is still in the list.
9
+ on:
10
+ pull_request:
11
+ paths:
12
+ - "**"
13
+ - "!**/*.md"
14
+ - "docs/**/*.md"
15
+ - "!docs/README.md"
16
+ - "!docs/contributing.md"
17
+ - "!docs/releasing.md"
18
+ - "!docs/style.md"
19
+ push:
20
+ branches: [main]
21
+ paths:
22
+ - "**"
23
+ - "!**/*.md"
24
+ - "docs/**/*.md"
25
+ - "!docs/README.md"
26
+ - "!docs/contributing.md"
27
+ - "!docs/releasing.md"
28
+ - "!docs/style.md"
29
+ workflow_dispatch: # allows a manual run from the Actions tab, whatever changed
30
+
31
+ permissions:
32
+ contents: read
33
+
34
+ # A new push to a pull request cancels the run still going for the previous push.
35
+ concurrency:
36
+ group: ${{ github.workflow }}-${{ github.ref }}
37
+ cancel-in-progress: true
38
+
39
+ jobs:
40
+ # Formatting, linting and type checking do not depend on the operating system, so they
41
+ # run once, on Linux (macOS and Windows minutes cost more on GitHub's plans). They need
42
+ # the tools but not the compiled module, which builds on macOS only for now: mypy reads
43
+ # its types from _core.pyi, and import-linter reads the package from src/.
44
+ checks:
45
+ name: ruff, mypy and import-linter
46
+ runs-on: ubuntu-latest
47
+ steps:
48
+ - uses: actions/checkout@v7
49
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
50
+ with:
51
+ python-version: "3.14"
52
+ enable-cache: true
53
+ # The development tools without Larmor itself; --no-sync keeps uv run from installing it.
54
+ - name: Install the development tools
55
+ run: uv sync --locked --no-install-project
56
+ # Each check runs even if an earlier one failed, so a pull request shows every
57
+ # problem at once.
58
+ - name: ruff format
59
+ if: success() || failure()
60
+ run: uv run --no-sync ruff format --check .
61
+ - name: ruff check
62
+ if: success() || failure()
63
+ run: uv run --no-sync ruff check --output-format github .
64
+ - name: mypy
65
+ if: success() || failure()
66
+ run: uv run --no-sync mypy
67
+ - name: import-linter
68
+ if: success() || failure()
69
+ env:
70
+ PYTHONPATH: src
71
+ run: uv run --no-sync lint-imports
72
+
73
+ # The C++ backend's own checks on each operating system: a build in which every compiler warning
74
+ # is an error, and its unit tests; on Linux also the format and lint checks, which do not depend
75
+ # on the platform. The tools come from the uv environment. macOS links Accelerate for Eigen's
76
+ # matrix products; Linux (GCC) and Windows (MSVC) use Eigen's own. sccache keeps the compiled
77
+ # objects between runs, and link-time optimisation is off: these builds run once.
78
+ cpp:
79
+ name: C++ build and ctest (${{ matrix.name }})
80
+ runs-on: ${{ matrix.os }}
81
+ timeout-minutes: 20
82
+ strategy:
83
+ fail-fast: false
84
+ matrix:
85
+ include:
86
+ - { name: Linux, os: ubuntu-latest, lint: true }
87
+ - { name: macOS, os: macos-latest, lint: false }
88
+ - { name: Windows, os: windows-latest, lint: false }
89
+ defaults:
90
+ run:
91
+ shell: bash
92
+ working-directory: cpp
93
+ env:
94
+ SCCACHE_GHA_ENABLED: "true"
95
+ steps:
96
+ # Checked out as committed: Windows would otherwise turn line endings into CRLF.
97
+ - name: Keep line endings as committed
98
+ if: runner.os == 'Windows'
99
+ working-directory: .
100
+ run: git config --global core.autocrlf false
101
+ - uses: actions/checkout@v7
102
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
103
+ with:
104
+ python-version: "3.14"
105
+ enable-cache: true
106
+ - uses: mozilla-actions/sccache-action@v0.0.11
107
+ # Ninja needs the environment of the Visual Studio command prompt to find MSVC.
108
+ - uses: ilammy/msvc-dev-cmd@v1.13.0
109
+ if: runner.os == 'Windows'
110
+ - name: Use MSVC
111
+ if: runner.os == 'Windows'
112
+ working-directory: .
113
+ run: echo "CXX=cl" >> "$GITHUB_ENV"
114
+ # The development tools only: the dev preset builds the module itself, and --no-sync keeps
115
+ # uv run from installing Larmor.
116
+ - name: Install the development tools
117
+ run: uv sync --locked --no-install-project
118
+ - name: Configure
119
+ run: >-
120
+ uv run --no-sync cmake --preset dev -DLARMOR_WARNINGS_AS_ERRORS=ON -DLARMOR_LTO=OFF
121
+ -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
122
+ - name: Build
123
+ run: uv run --no-sync cmake --build --preset dev
124
+ - name: ctest
125
+ run: uv run --no-sync ctest --preset dev
126
+ # Each check runs even if an earlier one failed, so a pull request shows every problem at once.
127
+ - name: clang-format
128
+ if: matrix.lint && (success() || failure())
129
+ run: find src tests -name '*.cpp' -o -name '*.hpp' | xargs uv run --no-sync clang-format --dry-run --Werror
130
+ # clang-tidy reads the compile commands of the build above, so it sees the same flags.
131
+ - name: clang-tidy
132
+ if: matrix.lint && (success() || failure())
133
+ run: uv run --no-sync run-clang-tidy.py -p build/dev -quiet 'cpp/(src|tests)/'
134
+
135
+ # The unit tests again, built by AppleClang with AddressSanitizer and UndefinedBehaviorSanitizer:
136
+ # an out-of-bounds read, a use after free, an overflow or a float converted to an integer it does
137
+ # not fit in stops the run.
138
+ cpp-sanitizers:
139
+ name: C++ tests under ASan and UBSan
140
+ runs-on: macos-latest
141
+ defaults:
142
+ run:
143
+ working-directory: cpp
144
+ steps:
145
+ - uses: actions/checkout@v7
146
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
147
+ with:
148
+ python-version: "3.14"
149
+ enable-cache: true
150
+ # The development tools only: the unit tests need neither the module nor Larmor installed,
151
+ # and --no-sync keeps uv run from installing them.
152
+ - name: Install the development tools
153
+ run: uv sync --locked --no-install-project
154
+ - name: Configure
155
+ run: uv run --no-sync cmake --preset sanitize
156
+ - name: Build
157
+ run: uv run --no-sync cmake --build --preset sanitize
158
+ - name: ctest
159
+ run: uv run --no-sync ctest --preset sanitize
160
+
161
+ # The whole test suite on macOS; on Linux and Windows, which have no GPU, all of it but the tests
162
+ # that build the viewer's Qt widgets (marked qt_widgets, see tests/conftest.py) and the gallery
163
+ # examples on a brain: with a software renderer each window takes seconds. Windows, the slowest
164
+ # runner, also leaves out tests/test_docs.py, which builds the website and runs the gallery and
165
+ # the task pages: none of it depends on the platform. The viewer's other
166
+ # tests draw there with Mesa's software Vulkan driver (lavapipe) on Linux and the software
167
+ # adapter of DirectX 12 (WARP) on Windows; Qt runs with its offscreen platform. A test that runs
168
+ # longer than two minutes fails, naming itself.
169
+ tests:
170
+ name: tests (${{ matrix.name }})
171
+ runs-on: ${{ matrix.os }}
172
+ timeout-minutes: 20
173
+ strategy:
174
+ fail-fast: false
175
+ matrix:
176
+ include:
177
+ - { name: Linux, os: ubuntu-latest, select: "not qt_widgets", ignore: "" }
178
+ - { name: macOS, os: macos-latest, select: "", ignore: "" }
179
+ - { name: Windows, os: windows-latest, select: "not qt_widgets", ignore: "--ignore=tests/test_docs.py" }
180
+ defaults:
181
+ run:
182
+ shell: bash
183
+ env:
184
+ SCCACHE_GHA_ENABLED: "true"
185
+ # Read by CMake when the project is installed: compile through sccache, with Ninja, without
186
+ # link-time optimisation.
187
+ CMAKE_CXX_COMPILER_LAUNCHER: sccache
188
+ CMAKE_GENERATOR: Ninja
189
+ CMAKE_ARGS: -DLARMOR_LTO=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
190
+ steps:
191
+ # Checked out as committed: Windows would otherwise turn line endings into CRLF.
192
+ - name: Keep line endings as committed
193
+ if: runner.os == 'Windows'
194
+ run: git config --global core.autocrlf false
195
+ - uses: actions/checkout@v7
196
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
197
+ with:
198
+ python-version: "3.14"
199
+ enable-cache: true
200
+ - uses: mozilla-actions/sccache-action@v0.0.11
201
+ # Ninja needs the environment of the Visual Studio command prompt to find MSVC.
202
+ - uses: ilammy/msvc-dev-cmd@v1.13.0
203
+ if: runner.os == 'Windows'
204
+ - name: Use MSVC
205
+ if: runner.os == 'Windows'
206
+ run: echo "CXX=cl" >> "$GITHUB_ENV"
207
+ # The libraries Qt's offscreen platform loads, and the software Vulkan driver.
208
+ - name: Install Qt's libraries and lavapipe
209
+ if: runner.os == 'Linux'
210
+ run: |
211
+ sudo apt-get update
212
+ sudo apt-get install -y --no-install-recommends \
213
+ mesa-vulkan-drivers libegl1 libgl1 libxkbcommon0 libfontconfig1 libdbus-1-3
214
+ # Installing the project builds the C++ module (scikit-build-core, CMake).
215
+ - name: Install the project and its development tools
216
+ run: uv sync --locked
217
+ - name: pytest
218
+ run: uv run pytest -n auto -rfE --timeout 120 -m "${{ matrix.select }}" ${{ matrix.ignore }}
@@ -0,0 +1,153 @@
1
+ # Builds the documentation website. A pull request only builds it, so a broken build fails the check; a push to
2
+ # main publishes it as the "dev" version and a version tag (v*) publishes it as the stable version, both to the
3
+ # gh-pages branch, which GitHub Pages serves at https://larmor.org. See docs/releasing.md, section Website.
4
+ name: Docs
5
+
6
+ on:
7
+ pull_request:
8
+ paths:
9
+ - "docs/**"
10
+ - "examples/**"
11
+ - "src/**"
12
+ - ".github/workflows/docs.yml"
13
+ push:
14
+ branches: [main]
15
+ tags: ["v*"]
16
+ workflow_dispatch: # builds the site, without publishing it
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ # Publishes queue one after the other and are never cancelled half way; a new push to a pull request cancels the
22
+ # build still going for the previous push.
23
+ concurrency:
24
+ group: docs-${{ github.event_name == 'pull_request' && github.ref || 'publish' }}
25
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
26
+
27
+ jobs:
28
+ build:
29
+ name: build
30
+ runs-on: ubuntu-latest
31
+ timeout-minutes: 45
32
+ env:
33
+ CMAKE_GENERATOR: Ninja
34
+ CMAKE_ARGS: -DLARMOR_LTO=OFF
35
+ # The name the version switcher marks as the current one: the version on a tag, dev otherwise.
36
+ LARMOR_DOCS_VERSION: ${{ startsWith(github.ref, 'refs/tags/v') && github.ref_name || 'dev' }}
37
+ steps:
38
+ - uses: actions/checkout@v7
39
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
40
+ with:
41
+ python-version: "3.14"
42
+ enable-cache: true
43
+ # The libraries Qt's offscreen platform loads, and the software Vulkan driver.
44
+ - name: Install Qt's libraries and lavapipe
45
+ run: |
46
+ sudo apt-get update
47
+ sudo apt-get install -y --no-install-recommends \
48
+ mesa-vulkan-drivers libegl1 libgl1 libxkbcommon0 libfontconfig1 libdbus-1-3
49
+ # Installing the project builds the C++ module (scikit-build-core, CMake).
50
+ - name: Install the project and the documentation tools
51
+ run: uv sync --locked
52
+ # The example datasets the gallery downloads, kept between runs; the key, and so
53
+ # a new download, changes only when the table of files and checksums does.
54
+ - name: Restore the example datasets
55
+ uses: actions/cache@v6.1.0
56
+ with:
57
+ path: ${{ runner.temp }}/larmor-data
58
+ key: larmor-data-${{ hashFiles('src/larmor/data/files.py') }}
59
+ - name: Use the example datasets
60
+ run: echo "LARMOR_DATA_DIR=${{ runner.temp }}/larmor-data" >> "$GITHUB_ENV"
61
+ # The gallery runs its examples; -W makes any warning an error.
62
+ - name: Build the website
63
+ run: uv run sphinx-build -b dirhtml -W docs "${{ runner.temp }}/site"
64
+ env:
65
+ QT_QPA_PLATFORM: offscreen
66
+ - uses: actions/upload-artifact@v7.0.2
67
+ if: github.event_name != 'pull_request'
68
+ with:
69
+ name: site
70
+ path: ${{ runner.temp }}/site
71
+ if-no-files-found: error
72
+
73
+ publish:
74
+ name: publish
75
+ needs: build
76
+ if: github.event_name == 'push'
77
+ runs-on: ubuntu-latest
78
+ timeout-minutes: 15
79
+ permissions:
80
+ contents: write
81
+ env:
82
+ IS_TAG: ${{ startsWith(github.ref, 'refs/tags/v') }}
83
+ steps:
84
+ - uses: actions/download-artifact@v8.0.2
85
+ with:
86
+ name: site
87
+ path: site
88
+ # The site root has the CNAME file that keeps the custom domain, .nojekyll so that GitHub Pages serves
89
+ # folders starting with an underscore (_static), and versions.json for the version switcher: the
90
+ # published list with dev always there and the stable version replaced when a tag is published. Before the
91
+ # first tag the root also gets an index.html that redirects to /dev/; the stable site replaces it.
92
+ - name: Write the files of the site root
93
+ run: |
94
+ mkdir root
95
+ echo larmor.org > root/CNAME
96
+ touch root/.nojekyll
97
+ curl -fsS "https://raw.githubusercontent.com/${GITHUB_REPOSITORY}/gh-pages/versions.json" -o old.json || echo '[]' > old.json
98
+ python3 - <<'PY'
99
+ import json, os
100
+
101
+ old = json.load(open("old.json"))
102
+ versions = [{"name": "dev", "version": "dev", "url": "https://larmor.org/dev/"}]
103
+ if os.environ["IS_TAG"] == "true":
104
+ number = os.environ["GITHUB_REF_NAME"].removeprefix("v")
105
+ versions.append(
106
+ {
107
+ "name": f"{number} (stable)",
108
+ "version": number,
109
+ "url": "https://larmor.org/",
110
+ "preferred": True,
111
+ }
112
+ )
113
+ else:
114
+ stable = [entry for entry in old if entry.get("preferred")]
115
+ versions += stable
116
+ # Until the first release there is no stable site: the root sends visitors to dev.
117
+ if not stable:
118
+ open("root/index.html", "w").write(
119
+ "<!doctype html>\n"
120
+ '<html lang="en">\n<head>\n<meta charset="utf-8">\n'
121
+ "<title>Larmor</title>\n"
122
+ '<link rel="canonical" href="https://larmor.org/dev/">\n'
123
+ '<meta http-equiv="refresh" content="0; url=/dev/">\n'
124
+ "</head>\n<body>\n"
125
+ '<p><a href="/dev/">Larmor documentation</a></p>\n'
126
+ "</body>\n</html>\n"
127
+ )
128
+ json.dump(versions, open("root/versions.json", "w"), indent=2)
129
+ PY
130
+ cat root/versions.json
131
+ - name: Publish the dev version
132
+ if: env.IS_TAG != 'true'
133
+ uses: peaceiris/actions-gh-pages@v4.1.0
134
+ with:
135
+ github_token: ${{ secrets.GITHUB_TOKEN }}
136
+ publish_dir: site
137
+ destination_dir: dev
138
+ keep_files: true
139
+ # The stable version is the site root; dev/ stays because the files already there are kept.
140
+ - name: Publish the stable version
141
+ if: env.IS_TAG == 'true'
142
+ uses: peaceiris/actions-gh-pages@v4.1.0
143
+ with:
144
+ github_token: ${{ secrets.GITHUB_TOKEN }}
145
+ publish_dir: site
146
+ keep_files: true
147
+ - name: Publish the site root files
148
+ uses: peaceiris/actions-gh-pages@v4.1.0
149
+ with:
150
+ github_token: ${{ secrets.GITHUB_TOKEN }}
151
+ publish_dir: root
152
+ keep_files: true
153
+ enable_jekyll: false
@@ -0,0 +1,102 @@
1
+ # Builds the wheels users install, one per platform, with cibuildwheel, and checks each one in a fresh
2
+ # environment: installed there, it passes the tests listed under [tool.cibuildwheel] in pyproject.toml.
3
+ # Also builds the source distribution, which carries Eigen and pocketfft, and checks that it installs
4
+ # with only a C++ compiler, downloading no C++ library. On a version tag, once every wheel and the
5
+ # source distribution pass, publishes them to PyPI through trusted publishing: no token is stored.
6
+ name: Wheels
7
+
8
+ on:
9
+ pull_request:
10
+ paths:
11
+ - "pyproject.toml"
12
+ - "cpp/CMakeLists.txt"
13
+ - "cpp/CMakePresets.json"
14
+ - "cpp/cmake/**"
15
+ - "cpp/src/**/CMakeLists.txt"
16
+ - ".github/workflows/wheels.yml"
17
+ push:
18
+ tags: ["v*"]
19
+ workflow_dispatch: # allows a manual run from the Actions tab
20
+
21
+ permissions:
22
+ contents: read
23
+
24
+ concurrency:
25
+ group: ${{ github.workflow }}-${{ github.ref }}
26
+ cancel-in-progress: true
27
+
28
+ jobs:
29
+ wheel:
30
+ name: wheel (${{ matrix.name }})
31
+ runs-on: ${{ matrix.runner }}
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ include:
36
+ - { name: linux-x86_64, runner: ubuntu-latest }
37
+ - { name: linux-aarch64, runner: ubuntu-24.04-arm }
38
+ - { name: macos-arm64, runner: macos-latest }
39
+ - { name: macos-x86_64, runner: macos-15-intel }
40
+ - { name: windows-x86_64, runner: windows-latest }
41
+ steps:
42
+ # Checked out as committed: Windows would otherwise turn line endings into CRLF.
43
+ - name: Keep line endings as committed
44
+ if: runner.os == 'Windows'
45
+ run: git config --global core.autocrlf false
46
+ - uses: actions/checkout@v7
47
+ # On Linux the wheel is built and tested inside a manylinux container, so it runs on any
48
+ # distribution with a recent enough glibc; elsewhere it is built on the runner itself.
49
+ - uses: pypa/cibuildwheel@v4.3.1
50
+ with:
51
+ output-dir: wheelhouse
52
+ - uses: actions/upload-artifact@v7.0.2
53
+ with:
54
+ name: wheel-${{ matrix.name }}
55
+ path: wheelhouse/*.whl
56
+
57
+ sdist:
58
+ name: source distribution
59
+ runs-on: ubuntu-latest
60
+ steps:
61
+ - uses: actions/checkout@v7
62
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
63
+ with:
64
+ python-version: "3.14"
65
+ - name: Put Eigen and pocketfft into cpp/third_party
66
+ run: cmake -P cpp/cmake/vendor.cmake
67
+ # --no-config: the build in an isolated environment, as pip builds it, not in the uv
68
+ # environment as [tool.uv] in pyproject.toml asks for development.
69
+ - name: Build the source distribution
70
+ run: uv build --no-config --sdist --out-dir dist
71
+ # FETCHCONTENT_FULLY_DISCONNECTED stops CMake from downloading anything, so the build passes
72
+ # only with the C++ libraries the source distribution carries. The Python build tools still
73
+ # come from PyPI, as for any source build.
74
+ - name: Install from the source distribution in a fresh environment
75
+ run: |
76
+ uv venv --no-config --python 3.14 sdist-env
77
+ uv pip install --no-config --python sdist-env dist/*.tar.gz pytest pytest-xdist nibabel \
78
+ -C cmake.define.FETCHCONTENT_FULLY_DISCONNECTED=ON
79
+ - name: Test the installed package
80
+ run: sdist-env/bin/python -m pytest -p no:cacheprovider tests/test_core.py tests/dwi
81
+ - uses: actions/upload-artifact@v7.0.2
82
+ with:
83
+ name: sdist
84
+ path: dist/*.tar.gz
85
+
86
+ publish:
87
+ name: publish to PyPI
88
+ if: startsWith(github.ref, 'refs/tags/v')
89
+ needs: [wheel, sdist]
90
+ runs-on: ubuntu-latest
91
+ # The PyPI project trusts this repository, this workflow and this environment only.
92
+ environment:
93
+ name: pypi
94
+ url: https://pypi.org/project/larmor-dmri/
95
+ permissions:
96
+ id-token: write
97
+ steps:
98
+ - uses: actions/download-artifact@v8.0.2
99
+ with:
100
+ path: dist
101
+ merge-multiple: true
102
+ - uses: pypa/gh-action-pypi-publish@v1.14.2
@@ -0,0 +1,67 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ .venv/
6
+ .env
7
+ build/
8
+ dist/
9
+
10
+ # Tool caches
11
+ .pytest_cache/
12
+ .mypy_cache/
13
+ .ruff_cache/
14
+ .import_linter_cache/
15
+ .coverage
16
+ htmlcov/
17
+
18
+ # The C++ build folder
19
+ cpp/build/
20
+
21
+ # The documentation website and the gallery it generates
22
+ docs/_build/
23
+ docs/gallery/
24
+ docs/gen_modules/
25
+ docs/sg_execution_times.rst
26
+ examples/**/*.png
27
+ examples/**/*.webp
28
+
29
+ # Imaging data and tractograms: only the small files in tests/data are committed
30
+ *.nii
31
+ *.nii.gz
32
+ *.mif
33
+ *.mif.gz
34
+ *.mih
35
+ *.tck
36
+ *.trk
37
+ *.trk.gz
38
+ *.tsf
39
+ *.vtk
40
+ *.vtp
41
+ *.gii
42
+ *.mgh
43
+ *.mgz
44
+ *.dcm
45
+ !tests/data/**
46
+
47
+ # MATLAB
48
+ *.asv
49
+
50
+ # Profiles
51
+ *.prof
52
+ *.lprof
53
+
54
+ # Editors and operating systems
55
+ .idea/
56
+ .vscode/
57
+ .claude/
58
+ .DS_Store
59
+ Thumbs.db
60
+ desktop.ini
61
+
62
+ # The compiled C++ module, built in place
63
+ *.so
64
+ *.pyd
65
+
66
+ # Eigen and pocketfft for the source distribution (cpp/cmake/vendor.cmake)
67
+ cpp/third_party/