larmor-dmri 2.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.
Files changed (1383) hide show
  1. larmor_dmri-2.0.0/.gitattributes +17 -0
  2. larmor_dmri-2.0.0/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  3. larmor_dmri-2.0.0/.github/ISSUE_TEMPLATE/config.yml +2 -0
  4. larmor_dmri-2.0.0/.github/ISSUE_TEMPLATE/feature_request.md +30 -0
  5. larmor_dmri-2.0.0/.github/pull_request_template.md +36 -0
  6. larmor_dmri-2.0.0/.github/workflows/ci.yml +218 -0
  7. larmor_dmri-2.0.0/.github/workflows/docs.yml +153 -0
  8. larmor_dmri-2.0.0/.github/workflows/wheels.yml +94 -0
  9. larmor_dmri-2.0.0/.gitignore +67 -0
  10. larmor_dmri-2.0.0/CITATION.cff +30 -0
  11. larmor_dmri-2.0.0/CODE_OF_CONDUCT.md +132 -0
  12. larmor_dmri-2.0.0/CONTRIBUTING.md +20 -0
  13. larmor_dmri-2.0.0/COPYING +674 -0
  14. larmor_dmri-2.0.0/COPYING.LESSER +165 -0
  15. larmor_dmri-2.0.0/NOTICE +67 -0
  16. larmor_dmri-2.0.0/PKG-INFO +128 -0
  17. larmor_dmri-2.0.0/README.md +82 -0
  18. larmor_dmri-2.0.0/SECURITY.md +36 -0
  19. larmor_dmri-2.0.0/cpp/.clang-format +17 -0
  20. larmor_dmri-2.0.0/cpp/.clang-tidy +54 -0
  21. larmor_dmri-2.0.0/cpp/CMakeLists.txt +161 -0
  22. larmor_dmri-2.0.0/cpp/CMakePresets.json +51 -0
  23. larmor_dmri-2.0.0/cpp/cmake/blas.cmake +29 -0
  24. larmor_dmri-2.0.0/cpp/cmake/third_party.cmake +13 -0
  25. larmor_dmri-2.0.0/cpp/cmake/vendor.cmake +25 -0
  26. larmor_dmri-2.0.0/cpp/src/common/CMakeLists.txt +4 -0
  27. larmor_dmri-2.0.0/cpp/src/common/blas.cpp +32 -0
  28. larmor_dmri-2.0.0/cpp/src/common/blas.hpp +25 -0
  29. larmor_dmri-2.0.0/cpp/src/common/maths.cpp +32 -0
  30. larmor_dmri-2.0.0/cpp/src/common/maths.hpp +29 -0
  31. larmor_dmri-2.0.0/cpp/src/common/parallel.hpp +98 -0
  32. larmor_dmri-2.0.0/cpp/src/common/types.hpp +29 -0
  33. larmor_dmri-2.0.0/cpp/src/dwi/CMakeLists.txt +6 -0
  34. larmor_dmri-2.0.0/cpp/src/dwi/gibbs.cpp +206 -0
  35. larmor_dmri-2.0.0/cpp/src/dwi/gibbs.hpp +109 -0
  36. larmor_dmri-2.0.0/cpp/src/dwi/log_fit.cpp +185 -0
  37. larmor_dmri-2.0.0/cpp/src/dwi/log_fit.hpp +86 -0
  38. larmor_dmri-2.0.0/cpp/src/dwi/mppca.cpp +122 -0
  39. larmor_dmri-2.0.0/cpp/src/dwi/mppca.hpp +96 -0
  40. larmor_dmri-2.0.0/cpp/src/python/CMakeLists.txt +18 -0
  41. larmor_dmri-2.0.0/cpp/src/python/arrays.hpp +188 -0
  42. larmor_dmri-2.0.0/cpp/src/python/bindings.hpp +29 -0
  43. larmor_dmri-2.0.0/cpp/src/python/dwi.cpp +265 -0
  44. larmor_dmri-2.0.0/cpp/src/python/module.cpp +68 -0
  45. larmor_dmri-2.0.0/cpp/src/python/sd.cpp +501 -0
  46. larmor_dmri-2.0.0/cpp/src/python/sh.cpp +232 -0
  47. larmor_dmri-2.0.0/cpp/src/python/simulation.cpp +267 -0
  48. larmor_dmri-2.0.0/cpp/src/python/streamlines.cpp +187 -0
  49. larmor_dmri-2.0.0/cpp/src/python/tracking.cpp +525 -0
  50. larmor_dmri-2.0.0/cpp/src/sd/CMakeLists.txt +11 -0
  51. larmor_dmri-2.0.0/cpp/src/sd/csd.cpp +67 -0
  52. larmor_dmri-2.0.0/cpp/src/sd/csd.hpp +51 -0
  53. larmor_dmri-2.0.0/cpp/src/sd/drl.cpp +101 -0
  54. larmor_dmri-2.0.0/cpp/src/sd/drl.hpp +36 -0
  55. larmor_dmri-2.0.0/cpp/src/sd/elastic_net.cpp +153 -0
  56. larmor_dmri-2.0.0/cpp/src/sd/elastic_net.hpp +64 -0
  57. larmor_dmri-2.0.0/cpp/src/sd/fractions.cpp +78 -0
  58. larmor_dmri-2.0.0/cpp/src/sd/fractions.hpp +75 -0
  59. larmor_dmri-2.0.0/cpp/src/sd/lsi.cpp +297 -0
  60. larmor_dmri-2.0.0/cpp/src/sd/lsi.hpp +56 -0
  61. larmor_dmri-2.0.0/cpp/src/sd/multi_tissue.cpp +102 -0
  62. larmor_dmri-2.0.0/cpp/src/sd/multi_tissue.hpp +48 -0
  63. larmor_dmri-2.0.0/cpp/src/sd/nnls.cpp +328 -0
  64. larmor_dmri-2.0.0/cpp/src/sd/nnls.hpp +60 -0
  65. larmor_dmri-2.0.0/cpp/src/sd/solver.cpp +60 -0
  66. larmor_dmri-2.0.0/cpp/src/sd/solver.hpp +105 -0
  67. larmor_dmri-2.0.0/cpp/src/sh/CMakeLists.txt +5 -0
  68. larmor_dmri-2.0.0/cpp/src/sh/harmonics.cpp +194 -0
  69. larmor_dmri-2.0.0/cpp/src/sh/harmonics.hpp +88 -0
  70. larmor_dmri-2.0.0/cpp/src/sh/peaks.cpp +135 -0
  71. larmor_dmri-2.0.0/cpp/src/sh/peaks.hpp +85 -0
  72. larmor_dmri-2.0.0/cpp/src/simulation/CMakeLists.txt +5 -0
  73. larmor_dmri-2.0.0/cpp/src/simulation/compartments/compartments.cpp +429 -0
  74. larmor_dmri-2.0.0/cpp/src/simulation/compartments/compartments.hpp +162 -0
  75. larmor_dmri-2.0.0/cpp/src/simulation/instant/instant.cpp +90 -0
  76. larmor_dmri-2.0.0/cpp/src/simulation/instant/instant.hpp +90 -0
  77. larmor_dmri-2.0.0/cpp/src/streamlines/CMakeLists.txt +5 -0
  78. larmor_dmri-2.0.0/cpp/src/streamlines/density.cpp +183 -0
  79. larmor_dmri-2.0.0/cpp/src/streamlines/density.hpp +66 -0
  80. larmor_dmri-2.0.0/cpp/src/streamlines/resample.cpp +377 -0
  81. larmor_dmri-2.0.0/cpp/src/streamlines/resample.hpp +106 -0
  82. larmor_dmri-2.0.0/cpp/src/streamlines/spline.hpp +87 -0
  83. larmor_dmri-2.0.0/cpp/src/tracking/CMakeLists.txt +11 -0
  84. larmor_dmri-2.0.0/cpp/src/tracking/algorithm.cpp +18 -0
  85. larmor_dmri-2.0.0/cpp/src/tracking/algorithm.hpp +98 -0
  86. larmor_dmri-2.0.0/cpp/src/tracking/calibrate.cpp +110 -0
  87. larmor_dmri-2.0.0/cpp/src/tracking/calibrate.hpp +50 -0
  88. larmor_dmri-2.0.0/cpp/src/tracking/det.cpp +76 -0
  89. larmor_dmri-2.0.0/cpp/src/tracking/det.hpp +57 -0
  90. larmor_dmri-2.0.0/cpp/src/tracking/grid.cpp +117 -0
  91. larmor_dmri-2.0.0/cpp/src/tracking/grid.hpp +114 -0
  92. larmor_dmri-2.0.0/cpp/src/tracking/prob.cpp +99 -0
  93. larmor_dmri-2.0.0/cpp/src/tracking/prob.hpp +72 -0
  94. larmor_dmri-2.0.0/cpp/src/tracking/rng.cpp +73 -0
  95. larmor_dmri-2.0.0/cpp/src/tracking/rng.hpp +67 -0
  96. larmor_dmri-2.0.0/cpp/src/tracking/testing.cpp +41 -0
  97. larmor_dmri-2.0.0/cpp/src/tracking/testing.hpp +50 -0
  98. larmor_dmri-2.0.0/cpp/src/tracking/tracker.cpp +141 -0
  99. larmor_dmri-2.0.0/cpp/src/tracking/tracker.hpp +122 -0
  100. larmor_dmri-2.0.0/cpp/tests/CMakeLists.txt +25 -0
  101. larmor_dmri-2.0.0/cpp/tests/dwi/CMakeLists.txt +5 -0
  102. larmor_dmri-2.0.0/cpp/tests/dwi/test_gibbs.cpp +90 -0
  103. larmor_dmri-2.0.0/cpp/tests/dwi/test_log_fit.cpp +165 -0
  104. larmor_dmri-2.0.0/cpp/tests/dwi/test_mppca.cpp +94 -0
  105. larmor_dmri-2.0.0/cpp/tests/sd/CMakeLists.txt +8 -0
  106. larmor_dmri-2.0.0/cpp/tests/sd/test_csd.cpp +52 -0
  107. larmor_dmri-2.0.0/cpp/tests/sd/test_drl.cpp +108 -0
  108. larmor_dmri-2.0.0/cpp/tests/sd/test_fractions.cpp +50 -0
  109. larmor_dmri-2.0.0/cpp/tests/sd/test_lsi.cpp +107 -0
  110. larmor_dmri-2.0.0/cpp/tests/sd/test_multi_tissue.cpp +88 -0
  111. larmor_dmri-2.0.0/cpp/tests/sd/test_nnls.cpp +243 -0
  112. larmor_dmri-2.0.0/cpp/tests/sd/toy_kernel.hpp +60 -0
  113. larmor_dmri-2.0.0/cpp/tests/sh/CMakeLists.txt +4 -0
  114. larmor_dmri-2.0.0/cpp/tests/sh/test_harmonics.cpp +217 -0
  115. larmor_dmri-2.0.0/cpp/tests/sh/test_peaks.cpp +196 -0
  116. larmor_dmri-2.0.0/cpp/tests/simulation/CMakeLists.txt +4 -0
  117. larmor_dmri-2.0.0/cpp/tests/simulation/test_compartments.cpp +139 -0
  118. larmor_dmri-2.0.0/cpp/tests/simulation/test_instant.cpp +54 -0
  119. larmor_dmri-2.0.0/cpp/tests/streamlines/CMakeLists.txt +4 -0
  120. larmor_dmri-2.0.0/cpp/tests/streamlines/test_density.cpp +93 -0
  121. larmor_dmri-2.0.0/cpp/tests/streamlines/test_resample.cpp +126 -0
  122. larmor_dmri-2.0.0/cpp/tests/test_blas.cpp +40 -0
  123. larmor_dmri-2.0.0/cpp/tests/test_main.cpp +3 -0
  124. larmor_dmri-2.0.0/cpp/tests/test_maths.cpp +60 -0
  125. larmor_dmri-2.0.0/cpp/tests/test_parallel.cpp +98 -0
  126. larmor_dmri-2.0.0/cpp/tests/tracking/CMakeLists.txt +9 -0
  127. larmor_dmri-2.0.0/cpp/tests/tracking/test_algorithm.cpp +39 -0
  128. larmor_dmri-2.0.0/cpp/tests/tracking/test_calibrate.cpp +104 -0
  129. larmor_dmri-2.0.0/cpp/tests/tracking/test_det.cpp +204 -0
  130. larmor_dmri-2.0.0/cpp/tests/tracking/test_grid.cpp +132 -0
  131. larmor_dmri-2.0.0/cpp/tests/tracking/test_prob.cpp +260 -0
  132. larmor_dmri-2.0.0/cpp/tests/tracking/test_rng.cpp +80 -0
  133. larmor_dmri-2.0.0/cpp/tests/tracking/test_tracker.cpp +336 -0
  134. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/COPYING.APACHE +203 -0
  135. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/COPYING.BSD +26 -0
  136. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/COPYING.MINPACK +51 -0
  137. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/COPYING.MPL2 +373 -0
  138. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/COPYING.README +6 -0
  139. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/AccelerateSupport +52 -0
  140. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Cholesky +43 -0
  141. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/CholmodSupport +48 -0
  142. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Core +451 -0
  143. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Dense +7 -0
  144. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Eigen +2 -0
  145. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Eigenvalues +63 -0
  146. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Geometry +59 -0
  147. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Householder +31 -0
  148. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/IterativeLinearSolvers +52 -0
  149. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Jacobi +33 -0
  150. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/KLUSupport +43 -0
  151. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/LU +46 -0
  152. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/MetisSupport +35 -0
  153. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/OrderingMethods +73 -0
  154. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/PaStiXSupport +51 -0
  155. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/PardisoSupport +38 -0
  156. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/QR +48 -0
  157. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/QtAlignedMalloc +32 -0
  158. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SPQRSupport +41 -0
  159. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SVD +56 -0
  160. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Sparse +33 -0
  161. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseCholesky +40 -0
  162. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseCore +70 -0
  163. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseLU +50 -0
  164. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SparseQR +38 -0
  165. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/StdDeque +30 -0
  166. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/StdList +29 -0
  167. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/StdVector +30 -0
  168. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/SuperLUSupport +70 -0
  169. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/ThreadPool +80 -0
  170. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/UmfPackSupport +42 -0
  171. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/Version +14 -0
  172. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  173. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  174. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  175. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/LDLT.h +649 -0
  176. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/LLT.h +514 -0
  177. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Cholesky/LLT_LAPACKE.h +124 -0
  178. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/CholmodSupport/CholmodSupport.h +738 -0
  179. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  180. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ArithmeticSequence.h +239 -0
  181. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Array.h +376 -0
  182. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ArrayBase.h +213 -0
  183. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ArrayWrapper.h +165 -0
  184. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Assign.h +80 -0
  185. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/AssignEvaluator.h +1057 -0
  186. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Assign_MKL.h +183 -0
  187. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/BandMatrix.h +338 -0
  188. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Block.h +429 -0
  189. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CommaInitializer.h +149 -0
  190. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ConditionEstimator.h +173 -0
  191. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CoreEvaluators.h +2018 -0
  192. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CoreIterators.h +141 -0
  193. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseBinaryOp.h +166 -0
  194. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseNullaryOp.h +975 -0
  195. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseTernaryOp.h +171 -0
  196. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseUnaryOp.h +91 -0
  197. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/CwiseUnaryView.h +167 -0
  198. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DenseBase.h +673 -0
  199. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DenseCoeffsBase.h +568 -0
  200. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DenseStorage.h +573 -0
  201. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DeviceWrapper.h +153 -0
  202. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Diagonal.h +219 -0
  203. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DiagonalMatrix.h +420 -0
  204. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/DiagonalProduct.h +30 -0
  205. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Dot.h +268 -0
  206. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/EigenBase.h +149 -0
  207. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Fill.h +138 -0
  208. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/FindCoeff.h +464 -0
  209. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ForceAlignedAccess.h +127 -0
  210. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Fuzzy.h +132 -0
  211. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/GeneralProduct.h +519 -0
  212. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/GenericPacketMath.h +1702 -0
  213. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/GlobalFunctions.h +230 -0
  214. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/IO.h +233 -0
  215. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/IndexedView.h +321 -0
  216. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/InnerProduct.h +260 -0
  217. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  218. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Inverse.h +108 -0
  219. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Map.h +153 -0
  220. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MapBase.h +283 -0
  221. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MathFunctions.h +2103 -0
  222. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MathFunctionsImpl.h +263 -0
  223. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Matrix.h +534 -0
  224. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/MatrixBase.h +545 -0
  225. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/NestByValue.h +91 -0
  226. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/NoAlias.h +102 -0
  227. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/NumTraits.h +335 -0
  228. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  229. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/PermutationMatrix.h +555 -0
  230. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/PlainObjectBase.h +1014 -0
  231. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Product.h +307 -0
  232. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ProductEvaluators.h +1287 -0
  233. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Random.h +207 -0
  234. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/RandomImpl.h +262 -0
  235. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/RealView.h +250 -0
  236. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Redux.h +535 -0
  237. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Ref.h +383 -0
  238. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Replicate.h +130 -0
  239. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Reshaped.h +398 -0
  240. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/ReturnByValue.h +111 -0
  241. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Reverse.h +202 -0
  242. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Select.h +92 -0
  243. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SelfAdjointView.h +329 -0
  244. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SelfCwiseBinaryOp.h +50 -0
  245. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  246. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Solve.h +174 -0
  247. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SolveTriangular.h +237 -0
  248. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/SolverBase.h +167 -0
  249. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/StableNorm.h +217 -0
  250. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/StlIterators.h +619 -0
  251. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Stride.h +114 -0
  252. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Swap.h +99 -0
  253. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Transpose.h +427 -0
  254. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Transpositions.h +323 -0
  255. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/TriangularMatrix.h +900 -0
  256. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/VectorBlock.h +83 -0
  257. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/VectorwiseOp.h +733 -0
  258. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/Visitor.h +537 -0
  259. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/Complex.h +565 -0
  260. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/MathFunctions.h +130 -0
  261. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/PacketMath.h +3081 -0
  262. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  263. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX/TypeCasting.h +308 -0
  264. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  265. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  266. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/MathFunctions.h +141 -0
  267. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  268. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/PacketMath.h +3146 -0
  269. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  270. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  271. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  272. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  273. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  274. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  275. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/Complex.h +653 -0
  276. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MathFunctions.h +81 -0
  277. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  278. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  279. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  280. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  281. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  282. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/PacketMath.h +3729 -0
  283. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  284. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  285. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/ConjHelper.h +128 -0
  286. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  287. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  288. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/Half.h +1091 -0
  289. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/Default/Settings.h +47 -0
  290. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  291. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  292. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  293. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  294. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  295. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  296. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  297. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  298. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  299. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  300. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  301. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  302. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  303. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  304. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  305. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/Complex.h +732 -0
  306. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  307. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/MathFunctions.h +68 -0
  308. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/PacketMath.h +6096 -0
  309. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  310. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  311. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/Complex.h +503 -0
  312. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/MathFunctions.h +88 -0
  313. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/PacketMath.h +2384 -0
  314. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  315. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SSE/TypeCasting.h +230 -0
  316. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  317. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  318. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  319. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  320. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  321. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  322. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  323. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/ZVector/Complex.h +570 -0
  324. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/ZVector/MathFunctions.h +244 -0
  325. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/arch/ZVector/PacketMath.h +1413 -0
  326. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/AssignmentFunctors.h +174 -0
  327. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/BinaryFunctors.h +747 -0
  328. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/NullaryFunctors.h +274 -0
  329. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/StlFunctors.h +149 -0
  330. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/TernaryFunctors.h +52 -0
  331. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/functors/UnaryFunctors.h +1420 -0
  332. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralBlockPanelKernel.h +3153 -0
  333. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrix.h +459 -0
  334. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +330 -0
  335. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +148 -0
  336. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +205 -0
  337. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixVector.h +473 -0
  338. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +139 -0
  339. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/Parallelizer.h +282 -0
  340. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +483 -0
  341. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +277 -0
  342. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixVector.h +253 -0
  343. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +115 -0
  344. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  345. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/SelfadjointRank2Update.h +95 -0
  346. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixMatrix.h +397 -0
  347. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +325 -0
  348. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixVector.h +347 -0
  349. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +275 -0
  350. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularSolverMatrix.h +388 -0
  351. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +166 -0
  352. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/products/TriangularSolverVector.h +122 -0
  353. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Assert.h +158 -0
  354. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/BlasUtil.h +622 -0
  355. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  356. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Constants.h +598 -0
  357. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/DisableStupidWarnings.h +146 -0
  358. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/EmulateArray.h +270 -0
  359. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ForwardDeclarations.h +524 -0
  360. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  361. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  362. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  363. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/IntegralConstant.h +279 -0
  364. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/MKL_support.h +139 -0
  365. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Macros.h +1346 -0
  366. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  367. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Memory.h +1385 -0
  368. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Meta.h +760 -0
  369. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/MoreMeta.h +638 -0
  370. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ReenableStupidWarnings.h +44 -0
  371. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  372. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/Serializer.h +209 -0
  373. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/StaticAssert.h +105 -0
  374. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  375. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Core/util/XprHelper.h +1093 -0
  376. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/ComplexEigenSolver.h +315 -0
  377. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/ComplexSchur.h +442 -0
  378. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +95 -0
  379. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/EigenSolver.h +579 -0
  380. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +402 -0
  381. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +212 -0
  382. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/HessenbergDecomposition.h +356 -0
  383. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  384. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +142 -0
  385. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/RealQZ.h +587 -0
  386. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/RealSchur.h +519 -0
  387. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +83 -0
  388. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +850 -0
  389. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +90 -0
  390. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Eigenvalues/Tridiagonalization.h +529 -0
  391. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/AlignedBox.h +485 -0
  392. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/AngleAxis.h +245 -0
  393. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/EulerAngles.h +203 -0
  394. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Homogeneous.h +453 -0
  395. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Hyperplane.h +273 -0
  396. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  397. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/OrthoMethods.h +257 -0
  398. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  399. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Quaternion.h +930 -0
  400. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Rotation2D.h +201 -0
  401. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/RotationBase.h +209 -0
  402. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Scaling.h +195 -0
  403. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Transform.h +1485 -0
  404. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Translation.h +204 -0
  405. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/Umeyama.h +161 -0
  406. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  407. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/BlockHouseholder.h +115 -0
  408. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/Householder.h +154 -0
  409. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/HouseholderSequence.h +504 -0
  410. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  411. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +213 -0
  412. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +217 -0
  413. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +217 -0
  414. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +402 -0
  415. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +449 -0
  416. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  417. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +395 -0
  418. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +193 -0
  419. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +111 -0
  420. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  421. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/Jacobi/Jacobi.h +427 -0
  422. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  423. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  424. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/Determinant.h +98 -0
  425. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/FullPivLU.h +826 -0
  426. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  427. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/InverseImpl.h +353 -0
  428. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/PartialPivLU.h +586 -0
  429. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/PartialPivLU_LAPACKE.h +97 -0
  430. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/LU/arch/InverseSize4.h +353 -0
  431. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  432. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/MetisSupport/MetisSupport.h +125 -0
  433. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/Amd.h +413 -0
  434. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/Eigen_Colamd.h +1690 -0
  435. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  436. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/OrderingMethods/Ordering.h +146 -0
  437. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  438. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PaStiXSupport/PaStiXSupport.h +632 -0
  439. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  440. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/PardisoSupport/PardisoSupport.h +500 -0
  441. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  442. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +161 -0
  443. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/CompleteOrthogonalDecomposition.h +648 -0
  444. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/FullPivHouseholderQR.h +733 -0
  445. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/HouseholderQR.h +543 -0
  446. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/HouseholderQR_LAPACKE.h +77 -0
  447. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  448. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  449. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +315 -0
  450. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/BDCSVD.h +1470 -0
  451. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  452. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  453. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/JacobiSVD.h +846 -0
  454. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/JacobiSVD_LAPACKE.h +127 -0
  455. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/SVDBase.h +436 -0
  456. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SVD/UpperBidiagonalization.h +379 -0
  457. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  458. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCholesky/SimplicialCholesky.h +868 -0
  459. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +388 -0
  460. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/AmbiVector.h +329 -0
  461. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/CompressedStorage.h +206 -0
  462. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +308 -0
  463. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  464. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseAssign.h +279 -0
  465. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseBlock.h +534 -0
  466. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseColEtree.h +194 -0
  467. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseCompressedBase.h +592 -0
  468. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +938 -0
  469. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +142 -0
  470. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseDenseProduct.h +314 -0
  471. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  472. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseDot.h +100 -0
  473. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseFuzzy.h +31 -0
  474. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseMap.h +295 -0
  475. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseMatrix.h +1876 -0
  476. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseMatrixBase.h +451 -0
  477. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparsePermutation.h +249 -0
  478. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseProduct.h +178 -0
  479. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseRedux.h +47 -0
  480. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseRef.h +370 -0
  481. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseSelfAdjointView.h +613 -0
  482. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseSolverBase.h +115 -0
  483. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +184 -0
  484. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseTranspose.h +83 -0
  485. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseTriangularView.h +177 -0
  486. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseUtil.h +209 -0
  487. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseVector.h +532 -0
  488. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/SparseView.h +225 -0
  489. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseCore/TriangularSolver.h +274 -0
  490. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  491. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU.h +969 -0
  492. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLUImpl.h +79 -0
  493. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_Memory.h +210 -0
  494. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_Structs.h +113 -0
  495. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +319 -0
  496. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_Utils.h +75 -0
  497. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_column_bmod.h +177 -0
  498. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_column_dfs.h +168 -0
  499. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +106 -0
  500. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +114 -0
  501. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +133 -0
  502. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_panel_bmod.h +215 -0
  503. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_panel_dfs.h +235 -0
  504. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_pivotL.h +136 -0
  505. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_pruneL.h +130 -0
  506. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseLU/SparseLU_relax_snode.h +81 -0
  507. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  508. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SparseQR/SparseQR.h +706 -0
  509. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/StdDeque.h +51 -0
  510. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/StdList.h +50 -0
  511. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/StdVector.h +51 -0
  512. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/StlSupport/details.h +82 -0
  513. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  514. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/SuperLUSupport/SuperLUSupport.h +929 -0
  515. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/Barrier.h +70 -0
  516. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  517. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/EventCount.h +241 -0
  518. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  519. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  520. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  521. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/RunQueue.h +230 -0
  522. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  523. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  524. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  525. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  526. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  527. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  528. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/UmfPackSupport/UmfPackSupport.h +606 -0
  529. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/Image.h +80 -0
  530. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  531. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/Kernel.h +77 -0
  532. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/RealSvd2x2.h +53 -0
  533. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/blas.h +97 -0
  534. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/lapacke.h +10085 -0
  535. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/lapacke_helpers.h +163 -0
  536. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/misc/lapacke_mangling.h +16 -0
  537. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  538. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  539. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/BlockMethods.inc +1370 -0
  540. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  541. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  542. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  543. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  544. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  545. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  546. larmor_dmri-2.0.0/cpp/third_party/eigen-5.0.1/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  547. larmor_dmri-2.0.0/cpp/third_party/pocketfft-c90e55b3d529f8efa40ed01a20de22405f45fc65/LICENSE.md +25 -0
  548. larmor_dmri-2.0.0/cpp/third_party/pocketfft-c90e55b3d529f8efa40ed01a20de22405f45fc65/pocketfft_hdronly.h +3853 -0
  549. larmor_dmri-2.0.0/docs/404.md +14 -0
  550. larmor_dmri-2.0.0/docs/README.md +25 -0
  551. larmor_dmri-2.0.0/docs/_ext/api_reference.py +206 -0
  552. larmor_dmri-2.0.0/docs/_ext/carousel.py +93 -0
  553. larmor_dmri-2.0.0/docs/_ext/gallery_images.py +308 -0
  554. larmor_dmri-2.0.0/docs/_ext/viewer_docs.py +151 -0
  555. larmor_dmri-2.0.0/docs/_extra/favicon.ico +0 -0
  556. larmor_dmri-2.0.0/docs/_extra/llms.txt +131 -0
  557. larmor_dmri-2.0.0/docs/_extra/robots.txt +19 -0
  558. larmor_dmri-2.0.0/docs/_snippets/cite-larmor.md +3 -0
  559. larmor_dmri-2.0.0/docs/_snippets/ismrm-credit.md +3 -0
  560. larmor_dmri-2.0.0/docs/_snippets/synthetic-dwi.md +37 -0
  561. larmor_dmri-2.0.0/docs/_snippets/synthetic-fod.md +41 -0
  562. larmor_dmri-2.0.0/docs/_static/apple-touch-icon.png +0 -0
  563. larmor_dmri-2.0.0/docs/_static/carousel/dti-colours.webp +0 -0
  564. larmor_dmri-2.0.0/docs/_static/carousel/fod-asymmetric.webp +0 -0
  565. larmor_dmri-2.0.0/docs/_static/carousel/fod-glyphs.webp +0 -0
  566. larmor_dmri-2.0.0/docs/_static/carousel/peaks.webp +0 -0
  567. larmor_dmri-2.0.0/docs/_static/carousel/phantom-editor.webp +0 -0
  568. larmor_dmri-2.0.0/docs/_static/carousel/signal-breakdown.webp +0 -0
  569. larmor_dmri-2.0.0/docs/_static/carousel/simulated-fods.webp +0 -0
  570. larmor_dmri-2.0.0/docs/_static/carousel/slices-3d.webp +0 -0
  571. larmor_dmri-2.0.0/docs/_static/carousel/t1-fa.webp +0 -0
  572. larmor_dmri-2.0.0/docs/_static/carousel/tubes.webp +0 -0
  573. larmor_dmri-2.0.0/docs/_static/favicon-32.png +0 -0
  574. larmor_dmri-2.0.0/docs/_static/gallery-thumb.png +0 -0
  575. larmor_dmri-2.0.0/docs/_static/larmor-card.png +0 -0
  576. larmor_dmri-2.0.0/docs/_static/larmor-carousel.js +47 -0
  577. larmor_dmri-2.0.0/docs/_static/larmor.css +208 -0
  578. larmor_dmri-2.0.0/docs/_static/simulation/phantom-editor.webp +0 -0
  579. larmor_dmri-2.0.0/docs/_static/simulation/signal-breakdown.webp +0 -0
  580. larmor_dmri-2.0.0/docs/_templates/layout.html +10 -0
  581. larmor_dmri-2.0.0/docs/about/changelog.md +15 -0
  582. larmor_dmri-2.0.0/docs/about/citing.md +169 -0
  583. larmor_dmri-2.0.0/docs/about/contributing.md +20 -0
  584. larmor_dmri-2.0.0/docs/about/index.md +45 -0
  585. larmor_dmri-2.0.0/docs/about/roadmap.md +14 -0
  586. larmor_dmri-2.0.0/docs/agents/connecting.md +9 -0
  587. larmor_dmri-2.0.0/docs/agents/index.md +24 -0
  588. larmor_dmri-2.0.0/docs/agents/security.md +41 -0
  589. larmor_dmri-2.0.0/docs/agents/tools.md +17 -0
  590. larmor_dmri-2.0.0/docs/background/conventions.md +170 -0
  591. larmor_dmri-2.0.0/docs/background/index.md +24 -0
  592. larmor_dmri-2.0.0/docs/background/simulation.md +216 -0
  593. larmor_dmri-2.0.0/docs/carousel_simulation.py +174 -0
  594. larmor_dmri-2.0.0/docs/cli.md +616 -0
  595. larmor_dmri-2.0.0/docs/conf.py +331 -0
  596. larmor_dmri-2.0.0/docs/contributing.md +587 -0
  597. larmor_dmri-2.0.0/docs/example-data.md +82 -0
  598. larmor_dmri-2.0.0/docs/getting-started.md +213 -0
  599. larmor_dmri-2.0.0/docs/guides/dki.md +86 -0
  600. larmor_dmri-2.0.0/docs/guides/dti.md +100 -0
  601. larmor_dmri-2.0.0/docs/guides/fods.md +324 -0
  602. larmor_dmri-2.0.0/docs/guides/gradient-tables.md +128 -0
  603. larmor_dmri-2.0.0/docs/guides/index.md +47 -0
  604. larmor_dmri-2.0.0/docs/guides/isolating-a-bundle.md +62 -0
  605. larmor_dmri-2.0.0/docs/guides/loading-and-saving.md +151 -0
  606. larmor_dmri-2.0.0/docs/guides/peaks.md +96 -0
  607. larmor_dmri-2.0.0/docs/guides/simulation.md +239 -0
  608. larmor_dmri-2.0.0/docs/guides/surfaces.md +125 -0
  609. larmor_dmri-2.0.0/docs/guides/tract-profiles.md +66 -0
  610. larmor_dmri-2.0.0/docs/guides/tractography.md +158 -0
  611. larmor_dmri-2.0.0/docs/guides/what-larmor-does.md +56 -0
  612. larmor_dmri-2.0.0/docs/index.md +144 -0
  613. larmor_dmri-2.0.0/docs/install.md +110 -0
  614. larmor_dmri-2.0.0/docs/quick-start.md +68 -0
  615. larmor_dmri-2.0.0/docs/reference/api/data.rst +7 -0
  616. larmor_dmri-2.0.0/docs/reference/api/dwi.rst +7 -0
  617. larmor_dmri-2.0.0/docs/reference/api/index.md +47 -0
  618. larmor_dmri-2.0.0/docs/reference/api/io-formats.rst +7 -0
  619. larmor_dmri-2.0.0/docs/reference/api/io.rst +7 -0
  620. larmor_dmri-2.0.0/docs/reference/api/larmor.rst +7 -0
  621. larmor_dmri-2.0.0/docs/reference/api/plot.rst +7 -0
  622. larmor_dmri-2.0.0/docs/reference/api/registration.rst +7 -0
  623. larmor_dmri-2.0.0/docs/reference/api/sd.rst +7 -0
  624. larmor_dmri-2.0.0/docs/reference/api/simulation.rst +7 -0
  625. larmor_dmri-2.0.0/docs/reference/api/surfaces.rst +7 -0
  626. larmor_dmri-2.0.0/docs/reference/api/tractography.rst +7 -0
  627. larmor_dmri-2.0.0/docs/reference/api/types.rst +7 -0
  628. larmor_dmri-2.0.0/docs/reference/api/viewer.rst +7 -0
  629. larmor_dmri-2.0.0/docs/reference/file-formats.md +97 -0
  630. larmor_dmri-2.0.0/docs/reference/index.md +19 -0
  631. larmor_dmri-2.0.0/docs/releasing.md +150 -0
  632. larmor_dmri-2.0.0/docs/simulation.md +108 -0
  633. larmor_dmri-2.0.0/docs/style.md +138 -0
  634. larmor_dmri-2.0.0/docs/update_carousel.py +87 -0
  635. larmor_dmri-2.0.0/docs/viewer/2d-views.md +9 -0
  636. larmor_dmri-2.0.0/docs/viewer/3d-view.md +9 -0
  637. larmor_dmri-2.0.0/docs/viewer/fod-glyphs.md +9 -0
  638. larmor_dmri-2.0.0/docs/viewer/getting-started.md +9 -0
  639. larmor_dmri-2.0.0/docs/viewer/index.md +60 -0
  640. larmor_dmri-2.0.0/docs/viewer/matlab-files.md +9 -0
  641. larmor_dmri-2.0.0/docs/viewer/parcellations.md +9 -0
  642. larmor_dmri-2.0.0/docs/viewer/peaks.md +9 -0
  643. larmor_dmri-2.0.0/docs/viewer/phantoms.md +9 -0
  644. larmor_dmri-2.0.0/docs/viewer/screenshots.md +9 -0
  645. larmor_dmri-2.0.0/docs/viewer/sessions.md +9 -0
  646. larmor_dmri-2.0.0/docs/viewer/settings.md +9 -0
  647. larmor_dmri-2.0.0/docs/viewer/shortcuts.md +15 -0
  648. larmor_dmri-2.0.0/docs/viewer/surfaces.md +9 -0
  649. larmor_dmri-2.0.0/docs/viewer/tractograms.md +9 -0
  650. larmor_dmri-2.0.0/docs/viewer/volumes-and-overlays.md +9 -0
  651. larmor_dmri-2.0.0/examples/GALLERY_HEADER.txt +9 -0
  652. larmor_dmri-2.0.0/examples/README.md +91 -0
  653. larmor_dmri-2.0.0/examples/files/GALLERY_HEADER.txt +5 -0
  654. larmor_dmri-2.0.0/examples/files/file_io.py +112 -0
  655. larmor_dmri-2.0.0/examples/files/mritoolkit_files.py +116 -0
  656. larmor_dmri-2.0.0/examples/models/GALLERY_HEADER.txt +5 -0
  657. larmor_dmri-2.0.0/examples/models/dki_real_data.py +72 -0
  658. larmor_dmri-2.0.0/examples/models/dki_synthetic_kurtosis.py +65 -0
  659. larmor_dmri-2.0.0/examples/models/dti_ismrm.py +61 -0
  660. larmor_dmri-2.0.0/examples/models/dti_synthetic_tensor.py +61 -0
  661. larmor_dmri-2.0.0/examples/preprocessing/GALLERY_HEADER.txt +4 -0
  662. larmor_dmri-2.0.0/examples/preprocessing/dwi_denoise_mppca.py +67 -0
  663. larmor_dmri-2.0.0/examples/preprocessing/gibbs_ringing_removal.py +109 -0
  664. larmor_dmri-2.0.0/examples/sd/GALLERY_HEADER.txt +5 -0
  665. larmor_dmri-2.0.0/examples/sd/fod_fit_synthetic.py +108 -0
  666. larmor_dmri-2.0.0/examples/sd/fods_ismrm.py +150 -0
  667. larmor_dmri-2.0.0/examples/sd/msmt_csd_cfin.py +86 -0
  668. larmor_dmri-2.0.0/examples/sd/peaks_synthetic.py +74 -0
  669. larmor_dmri-2.0.0/examples/simulation/GALLERY_HEADER.txt +6 -0
  670. larmor_dmri-2.0.0/examples/simulation/pipeline_ground_truth.py +112 -0
  671. larmor_dmri-2.0.0/examples/simulation/signal_breakdown.py +99 -0
  672. larmor_dmri-2.0.0/examples/simulation/simulate_crossing_bundles.py +183 -0
  673. larmor_dmri-2.0.0/examples/tractography/GALLERY_HEADER.txt +5 -0
  674. larmor_dmri-2.0.0/examples/tractography/connectome_synthetic.py +94 -0
  675. larmor_dmri-2.0.0/examples/tractography/registration_atlas_region.py +114 -0
  676. larmor_dmri-2.0.0/examples/tractography/track_density_synthetic.py +96 -0
  677. larmor_dmri-2.0.0/examples/tractography/tracking_ismrm.py +110 -0
  678. larmor_dmri-2.0.0/examples/tractography/tracking_synthetic.py +91 -0
  679. larmor_dmri-2.0.0/examples/tractography/tract_profiles.py +138 -0
  680. larmor_dmri-2.0.0/examples/tractography/tractogram_batch_writing.py +104 -0
  681. larmor_dmri-2.0.0/examples/viewer/GALLERY_HEADER.txt +6 -0
  682. larmor_dmri-2.0.0/examples/viewer/viewer_2d_views.py +118 -0
  683. larmor_dmri-2.0.0/examples/viewer/viewer_3d_view.py +77 -0
  684. larmor_dmri-2.0.0/examples/viewer/viewer_4d_volumes.py +80 -0
  685. larmor_dmri-2.0.0/examples/viewer/viewer_dti.py +100 -0
  686. larmor_dmri-2.0.0/examples/viewer/viewer_fod_glyphs.py +121 -0
  687. larmor_dmri-2.0.0/examples/viewer/viewer_parcellation.py +110 -0
  688. larmor_dmri-2.0.0/examples/viewer/viewer_peaks.py +83 -0
  689. larmor_dmri-2.0.0/examples/viewer/viewer_real_brain.py +62 -0
  690. larmor_dmri-2.0.0/examples/viewer/viewer_screenshot_modes.py +84 -0
  691. larmor_dmri-2.0.0/examples/viewer/viewer_sessions.py +84 -0
  692. larmor_dmri-2.0.0/examples/viewer/viewer_surfaces.py +102 -0
  693. larmor_dmri-2.0.0/examples/viewer/viewer_tractograms.py +109 -0
  694. larmor_dmri-2.0.0/examples/viewer/viewer_tubes.py +78 -0
  695. larmor_dmri-2.0.0/examples/viewer/viewer_volumes_and_overlays.py +91 -0
  696. larmor_dmri-2.0.0/pyproject.toml +372 -0
  697. larmor_dmri-2.0.0/resources/larmor-logo.svg +48 -0
  698. larmor_dmri-2.0.0/resources/larmor-symbol.svg +47 -0
  699. larmor_dmri-2.0.0/src/larmor/__init__.py +80 -0
  700. larmor_dmri-2.0.0/src/larmor/_core.pyi +437 -0
  701. larmor_dmri-2.0.0/src/larmor/_log.py +7 -0
  702. larmor_dmri-2.0.0/src/larmor/_threads.py +21 -0
  703. larmor_dmri-2.0.0/src/larmor/cli/__init__.py +1 -0
  704. larmor_dmri-2.0.0/src/larmor/cli/bv.py +217 -0
  705. larmor_dmri-2.0.0/src/larmor/cli/command.py +69 -0
  706. larmor_dmri-2.0.0/src/larmor/cli/connectome.py +199 -0
  707. larmor_dmri-2.0.0/src/larmor/cli/convert.py +447 -0
  708. larmor_dmri-2.0.0/src/larmor/cli/degibbs.py +74 -0
  709. larmor_dmri-2.0.0/src/larmor/cli/denoise.py +101 -0
  710. larmor_dmri-2.0.0/src/larmor/cli/dki.py +105 -0
  711. larmor_dmri-2.0.0/src/larmor/cli/dti.py +95 -0
  712. larmor_dmri-2.0.0/src/larmor/cli/fod.py +505 -0
  713. larmor_dmri-2.0.0/src/larmor/cli/info.py +113 -0
  714. larmor_dmri-2.0.0/src/larmor/cli/mask.py +40 -0
  715. larmor_dmri-2.0.0/src/larmor/cli/options.py +90 -0
  716. larmor_dmri-2.0.0/src/larmor/cli/outputs.py +59 -0
  717. larmor_dmri-2.0.0/src/larmor/cli/peaks.py +153 -0
  718. larmor_dmri-2.0.0/src/larmor/cli/sh_convert.py +73 -0
  719. larmor_dmri-2.0.0/src/larmor/cli/sh_input.py +19 -0
  720. larmor_dmri-2.0.0/src/larmor/cli/simulate.py +246 -0
  721. larmor_dmri-2.0.0/src/larmor/cli/track.py +368 -0
  722. larmor_dmri-2.0.0/src/larmor/cli/tract_density.py +120 -0
  723. larmor_dmri-2.0.0/src/larmor/cli/tract_edit.py +273 -0
  724. larmor_dmri-2.0.0/src/larmor/cli/tract_profile.py +184 -0
  725. larmor_dmri-2.0.0/src/larmor/cli/transform.py +191 -0
  726. larmor_dmri-2.0.0/src/larmor/data/__init__.py +15 -0
  727. larmor_dmri-2.0.0/src/larmor/data/datasets.py +158 -0
  728. larmor_dmri-2.0.0/src/larmor/data/dir300.txt +300 -0
  729. larmor_dmri-2.0.0/src/larmor/data/fetch.py +281 -0
  730. larmor_dmri-2.0.0/src/larmor/data/files.py +120 -0
  731. larmor_dmri-2.0.0/src/larmor/dwi/__init__.py +23 -0
  732. larmor_dmri-2.0.0/src/larmor/dwi/denoise.py +147 -0
  733. larmor_dmri-2.0.0/src/larmor/dwi/dki.py +530 -0
  734. larmor_dmri-2.0.0/src/larmor/dwi/dti.py +250 -0
  735. larmor_dmri-2.0.0/src/larmor/dwi/fitting.py +76 -0
  736. larmor_dmri-2.0.0/src/larmor/dwi/gibbs.py +82 -0
  737. larmor_dmri-2.0.0/src/larmor/dwi/inputs.py +176 -0
  738. larmor_dmri-2.0.0/src/larmor/dwi/mask.py +168 -0
  739. larmor_dmri-2.0.0/src/larmor/dwi/shells.py +25 -0
  740. larmor_dmri-2.0.0/src/larmor/io/__init__.py +100 -0
  741. larmor_dmri-2.0.0/src/larmor/io/_frames.py +34 -0
  742. larmor_dmri-2.0.0/src/larmor/io/bvals_bvecs.py +461 -0
  743. larmor_dmri-2.0.0/src/larmor/io/dwi.py +70 -0
  744. larmor_dmri-2.0.0/src/larmor/io/formats/__init__.py +50 -0
  745. larmor_dmri-2.0.0/src/larmor/io/formats/_affine.py +16 -0
  746. larmor_dmri-2.0.0/src/larmor/io/formats/_track_file.py +115 -0
  747. larmor_dmri-2.0.0/src/larmor/io/formats/freesurfer.py +317 -0
  748. larmor_dmri-2.0.0/src/larmor/io/formats/gifti.py +322 -0
  749. larmor_dmri-2.0.0/src/larmor/io/formats/lookup_table.py +52 -0
  750. larmor_dmri-2.0.0/src/larmor/io/formats/matlab.py +792 -0
  751. larmor_dmri-2.0.0/src/larmor/io/formats/mif.py +432 -0
  752. larmor_dmri-2.0.0/src/larmor/io/formats/nifti.py +512 -0
  753. larmor_dmri-2.0.0/src/larmor/io/formats/streamline_weights.py +95 -0
  754. larmor_dmri-2.0.0/src/larmor/io/formats/tck.py +345 -0
  755. larmor_dmri-2.0.0/src/larmor/io/formats/trk.py +790 -0
  756. larmor_dmri-2.0.0/src/larmor/io/formats/tsf.py +234 -0
  757. larmor_dmri-2.0.0/src/larmor/io/formats/vtk.py +564 -0
  758. larmor_dmri-2.0.0/src/larmor/io/load_save.py +665 -0
  759. larmor_dmri-2.0.0/src/larmor/io/mritoolkit.py +567 -0
  760. larmor_dmri-2.0.0/src/larmor/io/reader.py +327 -0
  761. larmor_dmri-2.0.0/src/larmor/io/writer.py +167 -0
  762. larmor_dmri-2.0.0/src/larmor/main.py +82 -0
  763. larmor_dmri-2.0.0/src/larmor/plot/__init__.py +5 -0
  764. larmor_dmri-2.0.0/src/larmor/plot/breakdown.py +215 -0
  765. larmor_dmri-2.0.0/src/larmor/py.typed +0 -0
  766. larmor_dmri-2.0.0/src/larmor/registration/__init__.py +57 -0
  767. larmor_dmri-2.0.0/src/larmor/registration/apply.py +475 -0
  768. larmor_dmri-2.0.0/src/larmor/registration/files.py +606 -0
  769. larmor_dmri-2.0.0/src/larmor/registration/sampling.py +110 -0
  770. larmor_dmri-2.0.0/src/larmor/registration/transforms.py +383 -0
  771. larmor_dmri-2.0.0/src/larmor/sd/__init__.py +75 -0
  772. larmor_dmri-2.0.0/src/larmor/sd/csd.py +152 -0
  773. larmor_dmri-2.0.0/src/larmor/sd/csd_rf.py +437 -0
  774. larmor_dmri-2.0.0/src/larmor/sd/csd_solver.py +239 -0
  775. larmor_dmri-2.0.0/src/larmor/sd/kernel.py +107 -0
  776. larmor_dmri-2.0.0/src/larmor/sd/method.py +90 -0
  777. larmor_dmri-2.0.0/src/larmor/sd/model.py +464 -0
  778. larmor_dmri-2.0.0/src/larmor/sd/mritoolkit.py +213 -0
  779. larmor_dmri-2.0.0/src/larmor/sd/msmt.py +137 -0
  780. larmor_dmri-2.0.0/src/larmor/sd/msmt_csd.py +225 -0
  781. larmor_dmri-2.0.0/src/larmor/sd/peaks.py +222 -0
  782. larmor_dmri-2.0.0/src/larmor/sd/rf.py +761 -0
  783. larmor_dmri-2.0.0/src/larmor/sd/sh.py +305 -0
  784. larmor_dmri-2.0.0/src/larmor/sd/solvers.py +373 -0
  785. larmor_dmri-2.0.0/src/larmor/sd/sphere.py +61 -0
  786. larmor_dmri-2.0.0/src/larmor/sd/tissue_responses.py +638 -0
  787. larmor_dmri-2.0.0/src/larmor/simulation/__init__.py +76 -0
  788. larmor_dmri-2.0.0/src/larmor/simulation/breakdown.py +518 -0
  789. larmor_dmri-2.0.0/src/larmor/simulation/bundles.py +208 -0
  790. larmor_dmri-2.0.0/src/larmor/simulation/examples.py +37 -0
  791. larmor_dmri-2.0.0/src/larmor/simulation/instant.py +273 -0
  792. larmor_dmri-2.0.0/src/larmor/simulation/noise.py +44 -0
  793. larmor_dmri-2.0.0/src/larmor/simulation/outputs.py +559 -0
  794. larmor_dmri-2.0.0/src/larmor/simulation/phantom.py +444 -0
  795. larmor_dmri-2.0.0/src/larmor/simulation/phantom_file.py +232 -0
  796. larmor_dmri-2.0.0/src/larmor/simulation/phantoms/crossing.phantom.json +580 -0
  797. larmor_dmri-2.0.0/src/larmor/simulation/protocol.py +300 -0
  798. larmor_dmri-2.0.0/src/larmor/simulation/tissues.py +765 -0
  799. larmor_dmri-2.0.0/src/larmor/simulation/voxelise.py +434 -0
  800. larmor_dmri-2.0.0/src/larmor/surfaces/__init__.py +9 -0
  801. larmor_dmri-2.0.0/src/larmor/surfaces/mesh.py +116 -0
  802. larmor_dmri-2.0.0/src/larmor/tractography/__init__.py +81 -0
  803. larmor_dmri-2.0.0/src/larmor/tractography/connectome.py +373 -0
  804. larmor_dmri-2.0.0/src/larmor/tractography/density.py +168 -0
  805. larmor_dmri-2.0.0/src/larmor/tractography/editing.py +946 -0
  806. larmor_dmri-2.0.0/src/larmor/tractography/file_editing.py +707 -0
  807. larmor_dmri-2.0.0/src/larmor/tractography/profiles.py +376 -0
  808. larmor_dmri-2.0.0/src/larmor/tractography/regions.py +195 -0
  809. larmor_dmri-2.0.0/src/larmor/tractography/resampling.py +128 -0
  810. larmor_dmri-2.0.0/src/larmor/tractography/sampling.py +93 -0
  811. larmor_dmri-2.0.0/src/larmor/tractography/seed.py +301 -0
  812. larmor_dmri-2.0.0/src/larmor/tractography/termination.py +83 -0
  813. larmor_dmri-2.0.0/src/larmor/tractography/tracker.py +868 -0
  814. larmor_dmri-2.0.0/src/larmor/types/__init__.py +20 -0
  815. larmor_dmri-2.0.0/src/larmor/types/_affine.py +136 -0
  816. larmor_dmri-2.0.0/src/larmor/types/_arrays.py +36 -0
  817. larmor_dmri-2.0.0/src/larmor/types/gradient_table.py +265 -0
  818. larmor_dmri-2.0.0/src/larmor/types/grid.py +106 -0
  819. larmor_dmri-2.0.0/src/larmor/types/label.py +16 -0
  820. larmor_dmri-2.0.0/src/larmor/types/surface.py +74 -0
  821. larmor_dmri-2.0.0/src/larmor/types/tractogram.py +260 -0
  822. larmor_dmri-2.0.0/src/larmor/types/volume.py +204 -0
  823. larmor_dmri-2.0.0/src/larmor/viewer/__init__.py +298 -0
  824. larmor_dmri-2.0.0/src/larmor/viewer/app.py +233 -0
  825. larmor_dmri-2.0.0/src/larmor/viewer/jobs.py +214 -0
  826. larmor_dmri-2.0.0/src/larmor/viewer/launcher.py +648 -0
  827. larmor_dmri-2.0.0/src/larmor/viewer/loading.py +493 -0
  828. larmor_dmri-2.0.0/src/larmor/viewer/macos.py +53 -0
  829. larmor_dmri-2.0.0/src/larmor/viewer/mcp_server.py +596 -0
  830. larmor_dmri-2.0.0/src/larmor/viewer/model/__init__.py +1 -0
  831. larmor_dmri-2.0.0/src/larmor/viewer/model/breakdown.py +316 -0
  832. larmor_dmri-2.0.0/src/larmor/viewer/model/camera.py +178 -0
  833. larmor_dmri-2.0.0/src/larmor/viewer/model/events.py +79 -0
  834. larmor_dmri-2.0.0/src/larmor/viewer/model/item.py +98 -0
  835. larmor_dmri-2.0.0/src/larmor/viewer/model/labels.py +62 -0
  836. larmor_dmri-2.0.0/src/larmor/viewer/model/matlab_import.py +654 -0
  837. larmor_dmri-2.0.0/src/larmor/viewer/model/options.py +978 -0
  838. larmor_dmri-2.0.0/src/larmor/viewer/model/phantom.py +1616 -0
  839. larmor_dmri-2.0.0/src/larmor/viewer/model/phantom_editor.py +845 -0
  840. larmor_dmri-2.0.0/src/larmor/viewer/model/readout.py +83 -0
  841. larmor_dmri-2.0.0/src/larmor/viewer/model/regions.py +117 -0
  842. larmor_dmri-2.0.0/src/larmor/viewer/model/registration.py +293 -0
  843. larmor_dmri-2.0.0/src/larmor/viewer/model/registry.py +189 -0
  844. larmor_dmri-2.0.0/src/larmor/viewer/model/scene.py +165 -0
  845. larmor_dmri-2.0.0/src/larmor/viewer/model/session.py +371 -0
  846. larmor_dmri-2.0.0/src/larmor/viewer/model/settings.py +401 -0
  847. larmor_dmri-2.0.0/src/larmor/viewer/model/shortcuts.py +443 -0
  848. larmor_dmri-2.0.0/src/larmor/viewer/model/surface.py +94 -0
  849. larmor_dmri-2.0.0/src/larmor/viewer/model/view_state.py +39 -0
  850. larmor_dmri-2.0.0/src/larmor/viewer/model/viewer.py +3169 -0
  851. larmor_dmri-2.0.0/src/larmor/viewer/phantom_jobs.py +146 -0
  852. larmor_dmri-2.0.0/src/larmor/viewer/qt/__init__.py +1 -0
  853. larmor_dmri-2.0.0/src/larmor/viewer/qt/app_icon.py +31 -0
  854. larmor_dmri-2.0.0/src/larmor/viewer/qt/breakdown_panel.py +270 -0
  855. larmor_dmri-2.0.0/src/larmor/viewer/qt/docks.py +731 -0
  856. larmor_dmri-2.0.0/src/larmor/viewer/qt/field.py +325 -0
  857. larmor_dmri-2.0.0/src/larmor/viewer/qt/fod_inspector_panel.py +135 -0
  858. larmor_dmri-2.0.0/src/larmor/viewer/qt/help_panel.py +112 -0
  859. larmor_dmri-2.0.0/src/larmor/viewer/qt/labels_panel.py +233 -0
  860. larmor_dmri-2.0.0/src/larmor/viewer/qt/layers.py +360 -0
  861. larmor_dmri-2.0.0/src/larmor/viewer/qt/loading.py +135 -0
  862. larmor_dmri-2.0.0/src/larmor/viewer/qt/main_window.py +1183 -0
  863. larmor_dmri-2.0.0/src/larmor/viewer/qt/matlab_dialog.py +283 -0
  864. larmor_dmri-2.0.0/src/larmor/viewer/qt/options_panel.py +373 -0
  865. larmor_dmri-2.0.0/src/larmor/viewer/qt/phantom_panel.py +1444 -0
  866. larmor_dmri-2.0.0/src/larmor/viewer/qt/phantom_steps.py +480 -0
  867. larmor_dmri-2.0.0/src/larmor/viewer/qt/regions_editor.py +212 -0
  868. larmor_dmri-2.0.0/src/larmor/viewer/qt/registration_dialog.py +233 -0
  869. larmor_dmri-2.0.0/src/larmor/viewer/qt/screenshot_panel.py +668 -0
  870. larmor_dmri-2.0.0/src/larmor/viewer/qt/settings_panel.py +252 -0
  871. larmor_dmri-2.0.0/src/larmor/viewer/qt/shortcuts.py +151 -0
  872. larmor_dmri-2.0.0/src/larmor/viewer/qt/style.py +234 -0
  873. larmor_dmri-2.0.0/src/larmor/viewer/qt/views.py +363 -0
  874. larmor_dmri-2.0.0/src/larmor/viewer/render/__init__.py +1 -0
  875. larmor_dmri-2.0.0/src/larmor/viewer/render/adapter.py +31 -0
  876. larmor_dmri-2.0.0/src/larmor/viewer/render/annotations.py +201 -0
  877. larmor_dmri-2.0.0/src/larmor/viewer/render/backing.py +62 -0
  878. larmor_dmri-2.0.0/src/larmor/viewer/render/colour_bars.py +152 -0
  879. larmor_dmri-2.0.0/src/larmor/viewer/render/colour_space.py +35 -0
  880. larmor_dmri-2.0.0/src/larmor/viewer/render/fod_adapter.py +281 -0
  881. larmor_dmri-2.0.0/src/larmor/viewer/render/fod_inspector.py +370 -0
  882. larmor_dmri-2.0.0/src/larmor/viewer/render/geometry.py +701 -0
  883. larmor_dmri-2.0.0/src/larmor/viewer/render/glyphs.py +351 -0
  884. larmor_dmri-2.0.0/src/larmor/viewer/render/gpu.py +56 -0
  885. larmor_dmri-2.0.0/src/larmor/viewer/render/labels_3d.py +144 -0
  886. larmor_dmri-2.0.0/src/larmor/viewer/render/line_voxels.py +415 -0
  887. larmor_dmri-2.0.0/src/larmor/viewer/render/line_voxels.wgsl +421 -0
  888. larmor_dmri-2.0.0/src/larmor/viewer/render/navigation.py +57 -0
  889. larmor_dmri-2.0.0/src/larmor/viewer/render/offscreen.py +692 -0
  890. larmor_dmri-2.0.0/src/larmor/viewer/render/overlay_slice.py +34 -0
  891. larmor_dmri-2.0.0/src/larmor/viewer/render/peaks_adapter.py +170 -0
  892. larmor_dmri-2.0.0/src/larmor/viewer/render/phantom_guides.py +137 -0
  893. larmor_dmri-2.0.0/src/larmor/viewer/render/ray_traced_lines.py +257 -0
  894. larmor_dmri-2.0.0/src/larmor/viewer/render/ray_traced_lines.wgsl +320 -0
  895. larmor_dmri-2.0.0/src/larmor/viewer/render/scene_renderer.py +199 -0
  896. larmor_dmri-2.0.0/src/larmor/viewer/render/surface_adapter.py +421 -0
  897. larmor_dmri-2.0.0/src/larmor/viewer/render/surfaces.py +128 -0
  898. larmor_dmri-2.0.0/src/larmor/viewer/render/tissue_slice.py +84 -0
  899. larmor_dmri-2.0.0/src/larmor/viewer/render/tractogram_adapter.py +966 -0
  900. larmor_dmri-2.0.0/src/larmor/viewer/render/view.py +217 -0
  901. larmor_dmri-2.0.0/src/larmor/viewer/render/view_3d.py +67 -0
  902. larmor_dmri-2.0.0/src/larmor/viewer/render/view_button.py +126 -0
  903. larmor_dmri-2.0.0/src/larmor/viewer/render/view_labels.py +107 -0
  904. larmor_dmri-2.0.0/src/larmor/viewer/render/volume_3d.py +316 -0
  905. larmor_dmri-2.0.0/src/larmor/viewer/render/volume_adapter.py +377 -0
  906. larmor_dmri-2.0.0/src/larmor/viewer/render/volume_blend.py +224 -0
  907. larmor_dmri-2.0.0/src/larmor/viewer/render/volume_blend.wgsl +199 -0
  908. larmor_dmri-2.0.0/src/larmor/viewer/render/voxel_cones.wgsl +108 -0
  909. larmor_dmri-2.0.0/src/larmor/viewer/render/voxel_shadows.wgsl +23 -0
  910. larmor_dmri-2.0.0/src/larmor/viewer/render/worker.py +171 -0
  911. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/01-getting-started.md +141 -0
  912. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/02-2d-views.md +43 -0
  913. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/03-volumes-and-overlays.md +45 -0
  914. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/04-parcellations.md +36 -0
  915. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/05-tractograms.md +112 -0
  916. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/06-3d-view.md +38 -0
  917. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/07-fod-glyphs.md +43 -0
  918. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/08-peaks.md +29 -0
  919. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/09-settings.md +74 -0
  920. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/10-screenshots.md +44 -0
  921. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/11-sessions.md +29 -0
  922. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/12-agents.md +126 -0
  923. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/13-surfaces.md +56 -0
  924. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/14-matlab-files.md +44 -0
  925. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/15-phantoms.md +178 -0
  926. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/2d-view.png +0 -0
  927. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/3d-view.png +0 -0
  928. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/dti-colours.png +0 -0
  929. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/fod-glyphs.png +0 -0
  930. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/labels.png +0 -0
  931. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/overlay.png +0 -0
  932. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/peaks.png +0 -0
  933. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/phantom-guided.png +0 -0
  934. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/settings.png +0 -0
  935. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/signal-breakdown.png +0 -0
  936. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/surfaces-2d.png +0 -0
  937. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/surfaces-3d.png +0 -0
  938. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/tracts-3d.png +0 -0
  939. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/tracts-regions.png +0 -0
  940. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/tracts-slab.png +0 -0
  941. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/tracts-values.png +0 -0
  942. larmor_dmri-2.0.0/src/larmor/viewer/resources/guides/images/window.png +0 -0
  943. larmor_dmri-2.0.0/src/larmor/viewer/resources/icon.svg +42 -0
  944. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/LICENSE-lucide.txt +43 -0
  945. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/camera.svg +16 -0
  946. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/chart-column-stacked.svg +19 -0
  947. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/check.svg +15 -0
  948. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/chevron-down.svg +15 -0
  949. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/chevron-right.svg +15 -0
  950. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/chevron-up.svg +15 -0
  951. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/circle-help.svg +17 -0
  952. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/circle.svg +15 -0
  953. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/eye-dashed.svg +23 -0
  954. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/eye-off.svg +18 -0
  955. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/eye.svg +16 -0
  956. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/info.svg +17 -0
  957. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/layers.svg +17 -0
  958. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/maximize-2.svg +18 -0
  959. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/minimize-2.svg +18 -0
  960. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/minus.svg +15 -0
  961. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/pin-off.svg +18 -0
  962. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/pin.svg +16 -0
  963. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/scan-search.svg +20 -0
  964. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/settings.svg +16 -0
  965. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/sliders-horizontal.svg +23 -0
  966. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/spline.svg +17 -0
  967. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/tags.svg +17 -0
  968. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/trash-2.svg +19 -0
  969. larmor_dmri-2.0.0/src/larmor/viewer/resources/icons/x.svg +16 -0
  970. larmor_dmri-2.0.0/src/larmor/viewer/resources/viewer.qss +749 -0
  971. larmor_dmri-2.0.0/src/larmor/viewer/system.py +152 -0
  972. larmor_dmri-2.0.0/tests/cli/cli_fixtures.py +25 -0
  973. larmor_dmri-2.0.0/tests/cli/test_bv_command.py +335 -0
  974. larmor_dmri-2.0.0/tests/cli/test_cli.py +894 -0
  975. larmor_dmri-2.0.0/tests/cli/test_convert.py +445 -0
  976. larmor_dmri-2.0.0/tests/cli/test_convert_matlab.py +102 -0
  977. larmor_dmri-2.0.0/tests/cli/test_degibbs_command.py +51 -0
  978. larmor_dmri-2.0.0/tests/cli/test_denoise_command.py +40 -0
  979. larmor_dmri-2.0.0/tests/cli/test_density_connectome_commands.py +123 -0
  980. larmor_dmri-2.0.0/tests/cli/test_dki_command.py +146 -0
  981. larmor_dmri-2.0.0/tests/cli/test_fod_msmt.py +147 -0
  982. larmor_dmri-2.0.0/tests/cli/test_info.py +221 -0
  983. larmor_dmri-2.0.0/tests/cli/test_peaks_command.py +440 -0
  984. larmor_dmri-2.0.0/tests/cli/test_sh_convert.py +222 -0
  985. larmor_dmri-2.0.0/tests/cli/test_simulate_command.py +215 -0
  986. larmor_dmri-2.0.0/tests/cli/test_startup.py +38 -0
  987. larmor_dmri-2.0.0/tests/cli/test_track_command.py +713 -0
  988. larmor_dmri-2.0.0/tests/cli/test_tract_edit_command.py +551 -0
  989. larmor_dmri-2.0.0/tests/cli/test_tract_profile_command.py +89 -0
  990. larmor_dmri-2.0.0/tests/cli/test_transform_command.py +97 -0
  991. larmor_dmri-2.0.0/tests/conftest.py +303 -0
  992. larmor_dmri-2.0.0/tests/data/README.md +132 -0
  993. larmor_dmri-2.0.0/tests/data/asym/fod_block.nii.gz +0 -0
  994. larmor_dmri-2.0.0/tests/data/asym/make_asym_fod.py +44 -0
  995. larmor_dmri-2.0.0/tests/data/asym/make_asym_ref.py +24 -0
  996. larmor_dmri-2.0.0/tests/data/bmat.txt +33 -0
  997. larmor_dmri-2.0.0/tests/data/bvals.txt +1 -0
  998. larmor_dmri-2.0.0/tests/data/bvecs.txt +3 -0
  999. larmor_dmri-2.0.0/tests/data/connectome/lut.txt +61 -0
  1000. larmor_dmri-2.0.0/tests/data/connectome/make_connectome_ref.py +153 -0
  1001. larmor_dmri-2.0.0/tests/data/connectome/parcellation.nii.gz +0 -0
  1002. larmor_dmri-2.0.0/tests/data/connectome/ref.npz +0 -0
  1003. larmor_dmri-2.0.0/tests/data/connectome/template.nii.gz +0 -0
  1004. larmor_dmri-2.0.0/tests/data/connectome/tracks.tck +0 -0
  1005. larmor_dmri-2.0.0/tests/data/connectome/weights.txt +1 -0
  1006. larmor_dmri-2.0.0/tests/data/csd/wm_response.txt +3 -0
  1007. larmor_dmri-2.0.0/tests/data/deconv_obj.mat +0 -0
  1008. larmor_dmri-2.0.0/tests/data/dki/bvals +1 -0
  1009. larmor_dmri-2.0.0/tests/data/dki/bvecs +3 -0
  1010. larmor_dmri-2.0.0/tests/data/dki/dwi.nii.gz +0 -0
  1011. larmor_dmri-2.0.0/tests/data/dki/mask.nii.gz +0 -0
  1012. larmor_dmri-2.0.0/tests/data/dki/mrtrix_dkt_ref.npz +0 -0
  1013. larmor_dmri-2.0.0/tests/data/dki/mrtrix_dt_ref.npz +0 -0
  1014. larmor_dmri-2.0.0/tests/data/dki/mrtrix_mppca_ref.npz +0 -0
  1015. larmor_dmri-2.0.0/tests/data/editing/crop_float.tck +0 -0
  1016. larmor_dmri-2.0.0/tests/data/editing/crop_shell.tck +0 -0
  1017. larmor_dmri-2.0.0/tests/data/editing/crop_shell_inverse.tck +0 -0
  1018. larmor_dmri-2.0.0/tests/data/editing/crop_spheres.tck +0 -0
  1019. larmor_dmri-2.0.0/tests/data/editing/edge_cases.tck +0 -0
  1020. larmor_dmri-2.0.0/tests/data/editing/edge_cases_num_points_2.tck +0 -0
  1021. larmor_dmri-2.0.0/tests/data/editing/edge_cases_num_points_5.tck +0 -0
  1022. larmor_dmri-2.0.0/tests/data/editing/edge_cases_step_size_0.5.tck +0 -0
  1023. larmor_dmri-2.0.0/tests/data/editing/edge_cases_step_size_2.tck +0 -0
  1024. larmor_dmri-2.0.0/tests/data/editing/float_mask.nii.gz +0 -0
  1025. larmor_dmri-2.0.0/tests/data/editing/lengths_ref.npz +0 -0
  1026. larmor_dmri-2.0.0/tests/data/editing/make_editing_input.py +20 -0
  1027. larmor_dmri-2.0.0/tests/data/editing/make_lengths_ref.py +133 -0
  1028. larmor_dmri-2.0.0/tests/data/editing/make_regions_ref.py +206 -0
  1029. larmor_dmri-2.0.0/tests/data/editing/make_resample_ref.py +63 -0
  1030. larmor_dmri-2.0.0/tests/data/editing/make_tract_edit_ref.py +141 -0
  1031. larmor_dmri-2.0.0/tests/data/editing/regions_ref.npz +0 -0
  1032. larmor_dmri-2.0.0/tests/data/editing/shell_mask.nii.gz +0 -0
  1033. larmor_dmri-2.0.0/tests/data/editing/sift2_weights.txt +2 -0
  1034. larmor_dmri-2.0.0/tests/data/editing/tracks.tck +0 -0
  1035. larmor_dmri-2.0.0/tests/data/editing/tracks_num_points_10.tck +0 -0
  1036. larmor_dmri-2.0.0/tests/data/editing/tracks_num_points_2.tck +0 -0
  1037. larmor_dmri-2.0.0/tests/data/editing/tracks_num_points_50.tck +0 -0
  1038. larmor_dmri-2.0.0/tests/data/editing/tracks_step_size_0.5.tck +0 -0
  1039. larmor_dmri-2.0.0/tests/data/editing/tracks_step_size_2.tck +0 -0
  1040. larmor_dmri-2.0.0/tests/data/editing/tract_edit_join.tck +0 -0
  1041. larmor_dmri-2.0.0/tests/data/editing/tract_edit_ref.npz +0 -0
  1042. larmor_dmri-2.0.0/tests/data/editing/weights.txt +1 -0
  1043. larmor_dmri-2.0.0/tests/data/editing/weights_selected.txt +1 -0
  1044. larmor_dmri-2.0.0/tests/data/gibbs/dwi.nii.gz +0 -0
  1045. larmor_dmri-2.0.0/tests/data/gibbs/mrdegibbs_ref.npz +0 -0
  1046. larmor_dmri-2.0.0/tests/data/gibbs/phantom.nii.gz +0 -0
  1047. larmor_dmri-2.0.0/tests/data/grl/block_dwi.nii.gz +0 -0
  1048. larmor_dmri-2.0.0/tests/data/grl/block_dwi_brain_mask.nii.gz +0 -0
  1049. larmor_dmri-2.0.0/tests/data/grl_kurtosis_kernel.mat +0 -0
  1050. larmor_dmri-2.0.0/tests/data/grl_obj.mat +0 -0
  1051. larmor_dmri-2.0.0/tests/data/lasso/lasso_problems.mat +0 -0
  1052. larmor_dmri-2.0.0/tests/data/leemans_tournier_ref.mat +0 -0
  1053. larmor_dmri-2.0.0/tests/data/make_csd_response.py +47 -0
  1054. larmor_dmri-2.0.0/tests/data/make_dki_mrtrix_ref.py +96 -0
  1055. larmor_dmri-2.0.0/tests/data/make_dki_ref.py +61 -0
  1056. larmor_dmri-2.0.0/tests/data/make_dti_mrtrix_ref.py +86 -0
  1057. larmor_dmri-2.0.0/tests/data/make_gibbs_ref.py +106 -0
  1058. larmor_dmri-2.0.0/tests/data/make_mif_ref.py +49 -0
  1059. larmor_dmri-2.0.0/tests/data/make_mppca_mrtrix_ref.py +81 -0
  1060. larmor_dmri-2.0.0/tests/data/make_mrtrix_grad_ref.py +70 -0
  1061. larmor_dmri-2.0.0/tests/data/make_msmt_ref.py +59 -0
  1062. larmor_dmri-2.0.0/tests/data/make_peaks_ref.py +61 -0
  1063. larmor_dmri-2.0.0/tests/data/make_sh_ref.py +36 -0
  1064. larmor_dmri-2.0.0/tests/data/make_sheared_grad_ref.py +69 -0
  1065. larmor_dmri-2.0.0/tests/data/make_tck_ref.py +26 -0
  1066. larmor_dmri-2.0.0/tests/data/make_tckgen_det_ref.py +186 -0
  1067. larmor_dmri-2.0.0/tests/data/make_tckgen_prob_ref.py +116 -0
  1068. larmor_dmri-2.0.0/tests/data/make_vtk_ref.py +20 -0
  1069. larmor_dmri-2.0.0/tests/data/matlab/expected.mat +0 -0
  1070. larmor_dmri-2.0.0/tests/data/matlab/values_v4.mat +0 -0
  1071. larmor_dmri-2.0.0/tests/data/matlab/values_v6.mat +0 -0
  1072. larmor_dmri-2.0.0/tests/data/matlab/values_v7.mat +0 -0
  1073. larmor_dmri-2.0.0/tests/data/matlab/values_v73.mat +0 -0
  1074. larmor_dmri-2.0.0/tests/data/mfod/mfod_kernel.mat +0 -0
  1075. larmor_dmri-2.0.0/tests/data/mfod/mfod_ref.mat +0 -0
  1076. larmor_dmri-2.0.0/tests/data/mif/dwi.b +6 -0
  1077. larmor_dmri-2.0.0/tests/data/mif/dwi.bval +1 -0
  1078. larmor_dmri-2.0.0/tests/data/mif/dwi.bvec +3 -0
  1079. larmor_dmri-2.0.0/tests/data/mif/dwi.mif +0 -0
  1080. larmor_dmri-2.0.0/tests/data/mif/float32be.mif +0 -0
  1081. larmor_dmri-2.0.0/tests/data/mif/grad_odd.b +6 -0
  1082. larmor_dmri-2.0.0/tests/data/mif/grad_odd_export.b +6 -0
  1083. larmor_dmri-2.0.0/tests/data/mif/grad_odd_export.bval +1 -0
  1084. larmor_dmri-2.0.0/tests/data/mif/grad_odd_export.bvec +3 -0
  1085. larmor_dmri-2.0.0/tests/data/mif/int16be.mif.gz +0 -0
  1086. larmor_dmri-2.0.0/tests/data/mif/larmor_dwi.b +5 -0
  1087. larmor_dmri-2.0.0/tests/data/mif/larmor_dwi.bval +1 -0
  1088. larmor_dmri-2.0.0/tests/data/mif/larmor_dwi.bvec +3 -0
  1089. larmor_dmri-2.0.0/tests/data/mif/layout_permuted.mif +0 -0
  1090. larmor_dmri-2.0.0/tests/data/mif/mask.nii +0 -0
  1091. larmor_dmri-2.0.0/tests/data/mif/mask_bit.mif +0 -0
  1092. larmor_dmri-2.0.0/tests/data/mif/sheared.b +7 -0
  1093. larmor_dmri-2.0.0/tests/data/mif/sheared.bval +1 -0
  1094. larmor_dmri-2.0.0/tests/data/mif/sheared.bvec +3 -0
  1095. larmor_dmri-2.0.0/tests/data/mif/sheared.nii +0 -0
  1096. larmor_dmri-2.0.0/tests/data/mif/source.nii +0 -0
  1097. larmor_dmri-2.0.0/tests/data/mif/split.dat +0 -0
  1098. larmor_dmri-2.0.0/tests/data/mif/split.mih +11 -0
  1099. larmor_dmri-2.0.0/tests/data/mritoolkit/bvals +1 -0
  1100. larmor_dmri-2.0.0/tests/data/mritoolkit/bvecs +3 -0
  1101. larmor_dmri-2.0.0/tests/data/mritoolkit/dki_fit.mat +0 -0
  1102. larmor_dmri-2.0.0/tests/data/mritoolkit/dti_fit.mat +0 -0
  1103. larmor_dmri-2.0.0/tests/data/mritoolkit/dti_fit_v7.mat +0 -0
  1104. larmor_dmri-2.0.0/tests/data/mritoolkit/dwi.nii.gz +0 -0
  1105. larmor_dmri-2.0.0/tests/data/mritoolkit/grl.mat +0 -0
  1106. larmor_dmri-2.0.0/tests/data/mritoolkit/grl_CSD_FOD.nii.gz +0 -0
  1107. larmor_dmri-2.0.0/tests/data/mritoolkit/grl_fractions.nii.gz +0 -0
  1108. larmor_dmri-2.0.0/tests/data/mritoolkit/grl_v7.mat +0 -0
  1109. larmor_dmri-2.0.0/tests/data/mritoolkit/make_mritoolkit_input.py +42 -0
  1110. larmor_dmri-2.0.0/tests/data/mritoolkit/mask.nii.gz +0 -0
  1111. larmor_dmri-2.0.0/tests/data/mritoolkit/tracts.mat +0 -0
  1112. larmor_dmri-2.0.0/tests/data/mritoolkit/tracts_v73.mat +0 -0
  1113. larmor_dmri-2.0.0/tests/data/msmt/csf.txt +7 -0
  1114. larmor_dmri-2.0.0/tests/data/msmt/gm.txt +7 -0
  1115. larmor_dmri-2.0.0/tests/data/msmt/wm.txt +7 -0
  1116. larmor_dmri-2.0.0/tests/data/peaks/fod.mif +0 -0
  1117. larmor_dmri-2.0.0/tests/data/peaks/peaks_ref.mif +0 -0
  1118. larmor_dmri-2.0.0/tests/data/registration/ants_affine.mat +0 -0
  1119. larmor_dmri-2.0.0/tests/data/registration/ants_affine.txt +5 -0
  1120. larmor_dmri-2.0.0/tests/data/registration/ants_affine_cubic.nii.gz +0 -0
  1121. larmor_dmri-2.0.0/tests/data/registration/ants_affine_inverse_linear.nii.gz +0 -0
  1122. larmor_dmri-2.0.0/tests/data/registration/ants_affine_inverse_points.txt +21 -0
  1123. larmor_dmri-2.0.0/tests/data/registration/ants_affine_linear.nii.gz +0 -0
  1124. larmor_dmri-2.0.0/tests/data/registration/ants_affine_nearest.nii.gz +0 -0
  1125. larmor_dmri-2.0.0/tests/data/registration/ants_chain_linear.nii.gz +0 -0
  1126. larmor_dmri-2.0.0/tests/data/registration/ants_chain_points.txt +21 -0
  1127. larmor_dmri-2.0.0/tests/data/registration/ants_warp.nii.gz +0 -0
  1128. larmor_dmri-2.0.0/tests/data/registration/fixed.nii.gz +0 -0
  1129. larmor_dmri-2.0.0/tests/data/registration/flirt.mat +4 -0
  1130. larmor_dmri-2.0.0/tests/data/registration/flirt_inverse.mat +4 -0
  1131. larmor_dmri-2.0.0/tests/data/registration/fsl_flirt_linear.nii.gz +0 -0
  1132. larmor_dmri-2.0.0/tests/data/registration/fsl_flirt_nearest.nii.gz +0 -0
  1133. larmor_dmri-2.0.0/tests/data/registration/fsl_flirt_points.txt +21 -0
  1134. larmor_dmri-2.0.0/tests/data/registration/fsl_warp.nii.gz +0 -0
  1135. larmor_dmri-2.0.0/tests/data/registration/fsl_warp_linear.nii.gz +0 -0
  1136. larmor_dmri-2.0.0/tests/data/registration/fsl_warp_nearest.nii.gz +0 -0
  1137. larmor_dmri-2.0.0/tests/data/registration/fsl_warp_points.txt +21 -0
  1138. larmor_dmri-2.0.0/tests/data/registration/make_registration_ref.py +354 -0
  1139. larmor_dmri-2.0.0/tests/data/registration/moving.nii.gz +0 -0
  1140. larmor_dmri-2.0.0/tests/data/registration/moving_labels.nii.gz +0 -0
  1141. larmor_dmri-2.0.0/tests/data/registration/mrtrix_affine.txt +5 -0
  1142. larmor_dmri-2.0.0/tests/data/registration/mrtrix_affine_inverse_tracks.tck +0 -0
  1143. larmor_dmri-2.0.0/tests/data/registration/mrtrix_affine_linear.nii.gz +0 -0
  1144. larmor_dmri-2.0.0/tests/data/registration/mrtrix_affine_nearest.nii.gz +0 -0
  1145. larmor_dmri-2.0.0/tests/data/registration/mrtrix_affine_tracks.tck +0 -0
  1146. larmor_dmri-2.0.0/tests/data/registration/mrtrix_from_flirt.txt +5 -0
  1147. larmor_dmri-2.0.0/tests/data/registration/mrtrix_warp.mif +0 -0
  1148. larmor_dmri-2.0.0/tests/data/registration/mrtrix_warp_inverse.mif +0 -0
  1149. larmor_dmri-2.0.0/tests/data/registration/mrtrix_warp_inverse_tracks.tck +0 -0
  1150. larmor_dmri-2.0.0/tests/data/registration/mrtrix_warp_linear.nii.gz +0 -0
  1151. larmor_dmri-2.0.0/tests/data/registration/mrtrix_warp_tracks.tck +0 -0
  1152. larmor_dmri-2.0.0/tests/data/registration/points_fixed.txt +21 -0
  1153. larmor_dmri-2.0.0/tests/data/registration/tracks_fixed.tck +0 -0
  1154. larmor_dmri-2.0.0/tests/data/sh_tournier_ref.npz +0 -0
  1155. larmor_dmri-2.0.0/tests/data/surfaces/gifti/lh.labels.label.gii +9 -0
  1156. larmor_dmri-2.0.0/tests/data/surfaces/gifti/lh.white.surf.gii +9 -0
  1157. larmor_dmri-2.0.0/tests/data/surfaces/label/lh.Medial_wall.label +66 -0
  1158. larmor_dmri-2.0.0/tests/data/surfaces/label/lh.cortex.label +580 -0
  1159. larmor_dmri-2.0.0/tests/data/surfaces/make_surfaces.py +170 -0
  1160. larmor_dmri-2.0.0/tests/data/surfaces/surf/lh.curv +0 -0
  1161. larmor_dmri-2.0.0/tests/data/surfaces/surf/lh.sphere +0 -0
  1162. larmor_dmri-2.0.0/tests/data/surfaces/surf/lh.sulc +0 -0
  1163. larmor_dmri-2.0.0/tests/data/surfaces/surf/lh.thickness +0 -0
  1164. larmor_dmri-2.0.0/tests/data/surfaces/surf/lh.white +0 -0
  1165. larmor_dmri-2.0.0/tests/data/surfaces/surf/rh.curv +0 -0
  1166. larmor_dmri-2.0.0/tests/data/surfaces/surf/rh.white +0 -0
  1167. larmor_dmri-2.0.0/tests/data/tck/ref.tck +0 -0
  1168. larmor_dmri-2.0.0/tests/data/tck/s-0.txt +5 -0
  1169. larmor_dmri-2.0.0/tests/data/tck/s-1.txt +1 -0
  1170. larmor_dmri-2.0.0/tests/data/tck/s-2.txt +3 -0
  1171. larmor_dmri-2.0.0/tests/data/tck/s-3.txt +2 -0
  1172. larmor_dmri-2.0.0/tests/data/tracking/det_ref.tck +0 -0
  1173. larmor_dmri-2.0.0/tests/data/tracking/det_ref_maxlen.tck +0 -0
  1174. larmor_dmri-2.0.0/tests/data/tracking/det_ref_maxlen_seeds.txt +35 -0
  1175. larmor_dmri-2.0.0/tests/data/tracking/det_ref_seeds.txt +35 -0
  1176. larmor_dmri-2.0.0/tests/data/tracking/fod.nii.gz +0 -0
  1177. larmor_dmri-2.0.0/tests/data/tracking/mask.nii.gz +0 -0
  1178. larmor_dmri-2.0.0/tests/data/tracking/prob_ref.tck +0 -0
  1179. larmor_dmri-2.0.0/tests/data/tracking/prob_ref_info.json +165 -0
  1180. larmor_dmri-2.0.0/tests/data/tracking/prob_ref_seeds.txt +259 -0
  1181. larmor_dmri-2.0.0/tests/data/tracking/seeds.nii.gz +0 -0
  1182. larmor_dmri-2.0.0/tests/data/tsf/bzero.tsf +0 -0
  1183. larmor_dmri-2.0.0/tests/data/tsf/bzero_crop.nii.gz +0 -0
  1184. larmor_dmri-2.0.0/tests/data/tsf/bzero_smooth.tsf +0 -0
  1185. larmor_dmri-2.0.0/tests/data/tsf/edges.nii +0 -0
  1186. larmor_dmri-2.0.0/tests/data/tsf/edges.tck +0 -0
  1187. larmor_dmri-2.0.0/tests/data/tsf/edges.tsf +0 -0
  1188. larmor_dmri-2.0.0/tests/data/tsf/make_sampling_ref.py +90 -0
  1189. larmor_dmri-2.0.0/tests/data/tsf/make_tsf_ref.py +86 -0
  1190. larmor_dmri-2.0.0/tests/data/vtk/ascii.vtk +21 -0
  1191. larmor_dmri-2.0.0/tests/data/vtk/binary.vtk +0 -0
  1192. larmor_dmri-2.0.0/tests/data/wm_rf/wm_rf_ref.mat +0 -0
  1193. larmor_dmri-2.0.0/tests/dwi/reference_fitting.py +177 -0
  1194. larmor_dmri-2.0.0/tests/dwi/reference_mppca.py +56 -0
  1195. larmor_dmri-2.0.0/tests/dwi/test_denoise.py +117 -0
  1196. larmor_dmri-2.0.0/tests/dwi/test_dki.py +610 -0
  1197. larmor_dmri-2.0.0/tests/dwi/test_dti.py +192 -0
  1198. larmor_dmri-2.0.0/tests/dwi/test_fitting.py +90 -0
  1199. larmor_dmri-2.0.0/tests/dwi/test_gibbs.py +131 -0
  1200. larmor_dmri-2.0.0/tests/dwi/test_inputs.py +107 -0
  1201. larmor_dmri-2.0.0/tests/dwi/test_mask.py +31 -0
  1202. larmor_dmri-2.0.0/tests/io/formats/test_affine.py +35 -0
  1203. larmor_dmri-2.0.0/tests/io/formats/test_freesurfer.py +454 -0
  1204. larmor_dmri-2.0.0/tests/io/formats/test_gifti.py +416 -0
  1205. larmor_dmri-2.0.0/tests/io/formats/test_lookup_table.py +139 -0
  1206. larmor_dmri-2.0.0/tests/io/formats/test_matlab.py +196 -0
  1207. larmor_dmri-2.0.0/tests/io/formats/test_mif.py +930 -0
  1208. larmor_dmri-2.0.0/tests/io/formats/test_nifti.py +567 -0
  1209. larmor_dmri-2.0.0/tests/io/formats/test_streamline_weights.py +57 -0
  1210. larmor_dmri-2.0.0/tests/io/formats/test_tck.py +612 -0
  1211. larmor_dmri-2.0.0/tests/io/formats/test_trk.py +961 -0
  1212. larmor_dmri-2.0.0/tests/io/formats/test_tsf.py +310 -0
  1213. larmor_dmri-2.0.0/tests/io/formats/test_vtk.py +874 -0
  1214. larmor_dmri-2.0.0/tests/io/test_batch_writers.py +615 -0
  1215. larmor_dmri-2.0.0/tests/io/test_bvals_bvecs.py +775 -0
  1216. larmor_dmri-2.0.0/tests/io/test_dwi.py +127 -0
  1217. larmor_dmri-2.0.0/tests/io/test_iter_tractogram.py +358 -0
  1218. larmor_dmri-2.0.0/tests/io/test_load_save.py +367 -0
  1219. larmor_dmri-2.0.0/tests/io/test_load_surface.py +245 -0
  1220. larmor_dmri-2.0.0/tests/io/test_mritoolkit.py +181 -0
  1221. larmor_dmri-2.0.0/tests/io/test_mrtrix_gradients.py +126 -0
  1222. larmor_dmri-2.0.0/tests/io/test_mrtrix_response.py +29 -0
  1223. larmor_dmri-2.0.0/tests/io/test_progress.py +292 -0
  1224. larmor_dmri-2.0.0/tests/io/test_reader.py +344 -0
  1225. larmor_dmri-2.0.0/tests/io/test_writer.py +247 -0
  1226. larmor_dmri-2.0.0/tests/matlab_scripts/make_grl_kurtosis_kernel_ref.m +21 -0
  1227. larmor_dmri-2.0.0/tests/matlab_scripts/make_lasso_ref.m +156 -0
  1228. larmor_dmri-2.0.0/tests/matlab_scripts/make_leemans_tournier_ref.m +53 -0
  1229. larmor_dmri-2.0.0/tests/matlab_scripts/make_matlab_values_ref.m +67 -0
  1230. larmor_dmri-2.0.0/tests/matlab_scripts/make_mfod_ref.m +184 -0
  1231. larmor_dmri-2.0.0/tests/matlab_scripts/make_mritoolkit_ref.m +89 -0
  1232. larmor_dmri-2.0.0/tests/matlab_scripts/make_wm_rf_ref.m +217 -0
  1233. larmor_dmri-2.0.0/tests/matlab_scripts/run_grl.m +67 -0
  1234. larmor_dmri-2.0.0/tests/plot/test_plot_breakdown.py +133 -0
  1235. larmor_dmri-2.0.0/tests/registration/test_apply.py +257 -0
  1236. larmor_dmri-2.0.0/tests/registration/test_oracles.py +318 -0
  1237. larmor_dmri-2.0.0/tests/sd/reference_peaks.py +243 -0
  1238. larmor_dmri-2.0.0/tests/sd/reference_solvers.py +294 -0
  1239. larmor_dmri-2.0.0/tests/sd/test_csd.py +192 -0
  1240. larmor_dmri-2.0.0/tests/sd/test_drl.py +234 -0
  1241. larmor_dmri-2.0.0/tests/sd/test_fit.py +674 -0
  1242. larmor_dmri-2.0.0/tests/sd/test_grl.py +358 -0
  1243. larmor_dmri-2.0.0/tests/sd/test_l2nnls.py +161 -0
  1244. larmor_dmri-2.0.0/tests/sd/test_lasso.py +136 -0
  1245. larmor_dmri-2.0.0/tests/sd/test_matlab_match.py +165 -0
  1246. larmor_dmri-2.0.0/tests/sd/test_method.py +153 -0
  1247. larmor_dmri-2.0.0/tests/sd/test_mritoolkit_fod.py +71 -0
  1248. larmor_dmri-2.0.0/tests/sd/test_msmt.py +156 -0
  1249. larmor_dmri-2.0.0/tests/sd/test_msmt_mrtrix.py +78 -0
  1250. larmor_dmri-2.0.0/tests/sd/test_noddi.py +63 -0
  1251. larmor_dmri-2.0.0/tests/sd/test_peaks.py +1297 -0
  1252. larmor_dmri-2.0.0/tests/sd/test_peaks_compiled.py +538 -0
  1253. larmor_dmri-2.0.0/tests/sd/test_peaks_reference.py +84 -0
  1254. larmor_dmri-2.0.0/tests/sd/test_rf.py +155 -0
  1255. larmor_dmri-2.0.0/tests/sd/test_rf_kurtosis.py +430 -0
  1256. larmor_dmri-2.0.0/tests/sd/test_sh.py +246 -0
  1257. larmor_dmri-2.0.0/tests/sd/test_tissue_responses.py +184 -0
  1258. larmor_dmri-2.0.0/tests/simulation/test_bundles.py +97 -0
  1259. larmor_dmri-2.0.0/tests/simulation/test_compartments.py +340 -0
  1260. larmor_dmri-2.0.0/tests/simulation/test_instant.py +241 -0
  1261. larmor_dmri-2.0.0/tests/simulation/test_noise.py +44 -0
  1262. larmor_dmri-2.0.0/tests/simulation/test_outputs.py +500 -0
  1263. larmor_dmri-2.0.0/tests/simulation/test_phantom.py +384 -0
  1264. larmor_dmri-2.0.0/tests/simulation/test_protocol.py +99 -0
  1265. larmor_dmri-2.0.0/tests/simulation/test_signal_breakdown.py +277 -0
  1266. larmor_dmri-2.0.0/tests/simulation/test_tissues.py +224 -0
  1267. larmor_dmri-2.0.0/tests/surfaces/test_mesh.py +194 -0
  1268. larmor_dmri-2.0.0/tests/test_core.py +56 -0
  1269. larmor_dmri-2.0.0/tests/test_core_stub.py +24 -0
  1270. larmor_dmri-2.0.0/tests/test_docs.py +475 -0
  1271. larmor_dmri-2.0.0/tests/test_docstrings.py +73 -0
  1272. larmor_dmri-2.0.0/tests/test_example_data.py +282 -0
  1273. larmor_dmri-2.0.0/tests/test_layout.py +170 -0
  1274. larmor_dmri-2.0.0/tests/test_naming.py +55 -0
  1275. larmor_dmri-2.0.0/tests/test_public_api.py +74 -0
  1276. larmor_dmri-2.0.0/tests/tractography/reference_density.py +84 -0
  1277. larmor_dmri-2.0.0/tests/tractography/reference_prob.py +334 -0
  1278. larmor_dmri-2.0.0/tests/tractography/reference_random.py +68 -0
  1279. larmor_dmri-2.0.0/tests/tractography/reference_resampling.py +236 -0
  1280. larmor_dmri-2.0.0/tests/tractography/reference_tracking.py +239 -0
  1281. larmor_dmri-2.0.0/tests/tractography/test_asymmetric.py +222 -0
  1282. larmor_dmri-2.0.0/tests/tractography/test_connectome.py +162 -0
  1283. larmor_dmri-2.0.0/tests/tractography/test_density.py +178 -0
  1284. larmor_dmri-2.0.0/tests/tractography/test_det.py +949 -0
  1285. larmor_dmri-2.0.0/tests/tractography/test_det_tckgen.py +231 -0
  1286. larmor_dmri-2.0.0/tests/tractography/test_edit.py +367 -0
  1287. larmor_dmri-2.0.0/tests/tractography/test_editing.py +551 -0
  1288. larmor_dmri-2.0.0/tests/tractography/test_kernels.py +554 -0
  1289. larmor_dmri-2.0.0/tests/tractography/test_prob.py +595 -0
  1290. larmor_dmri-2.0.0/tests/tractography/test_prob_tckgen.py +279 -0
  1291. larmor_dmri-2.0.0/tests/tractography/test_profiles.py +197 -0
  1292. larmor_dmri-2.0.0/tests/tractography/test_random.py +233 -0
  1293. larmor_dmri-2.0.0/tests/tractography/test_regions.py +183 -0
  1294. larmor_dmri-2.0.0/tests/tractography/test_resampling.py +332 -0
  1295. larmor_dmri-2.0.0/tests/tractography/test_sampling.py +57 -0
  1296. larmor_dmri-2.0.0/tests/tractography/test_seed.py +387 -0
  1297. larmor_dmri-2.0.0/tests/tractography/test_termination.py +274 -0
  1298. larmor_dmri-2.0.0/tests/tractography/test_tracker.py +806 -0
  1299. larmor_dmri-2.0.0/tests/tractography/test_tracking_reference.py +213 -0
  1300. larmor_dmri-2.0.0/tests/tractography/test_trilinear.py +271 -0
  1301. larmor_dmri-2.0.0/tests/types/test_gradient_table.py +349 -0
  1302. larmor_dmri-2.0.0/tests/types/test_grid.py +291 -0
  1303. larmor_dmri-2.0.0/tests/types/test_surface.py +127 -0
  1304. larmor_dmri-2.0.0/tests/types/test_tractogram.py +317 -0
  1305. larmor_dmri-2.0.0/tests/types/test_volume.py +519 -0
  1306. larmor_dmri-2.0.0/tests/viewer/model/test_actions.py +1194 -0
  1307. larmor_dmri-2.0.0/tests/viewer/model/test_breakdown_state.py +153 -0
  1308. larmor_dmri-2.0.0/tests/viewer/model/test_dti_colours.py +149 -0
  1309. larmor_dmri-2.0.0/tests/viewer/model/test_fod.py +40 -0
  1310. larmor_dmri-2.0.0/tests/viewer/model/test_labels.py +130 -0
  1311. larmor_dmri-2.0.0/tests/viewer/model/test_matlab_import.py +327 -0
  1312. larmor_dmri-2.0.0/tests/viewer/model/test_navigation.py +647 -0
  1313. larmor_dmri-2.0.0/tests/viewer/model/test_options.py +426 -0
  1314. larmor_dmri-2.0.0/tests/viewer/model/test_phantom_editor.py +392 -0
  1315. larmor_dmri-2.0.0/tests/viewer/model/test_registration_items.py +274 -0
  1316. larmor_dmri-2.0.0/tests/viewer/model/test_registry.py +31 -0
  1317. larmor_dmri-2.0.0/tests/viewer/model/test_save_replace.py +298 -0
  1318. larmor_dmri-2.0.0/tests/viewer/model/test_scene.py +161 -0
  1319. larmor_dmri-2.0.0/tests/viewer/model/test_session.py +269 -0
  1320. larmor_dmri-2.0.0/tests/viewer/model/test_settings.py +194 -0
  1321. larmor_dmri-2.0.0/tests/viewer/model/test_shortcuts.py +313 -0
  1322. larmor_dmri-2.0.0/tests/viewer/model/test_step_status.py +186 -0
  1323. larmor_dmri-2.0.0/tests/viewer/model/test_surface_items.py +316 -0
  1324. larmor_dmri-2.0.0/tests/viewer/model/test_tract_regions.py +254 -0
  1325. larmor_dmri-2.0.0/tests/viewer/model/test_tract_values.py +169 -0
  1326. larmor_dmri-2.0.0/tests/viewer/occlusion_oracle.py +231 -0
  1327. larmor_dmri-2.0.0/tests/viewer/render_helpers.py +176 -0
  1328. larmor_dmri-2.0.0/tests/viewer/test_annotations.py +480 -0
  1329. larmor_dmri-2.0.0/tests/viewer/test_breakdown_panel.py +236 -0
  1330. larmor_dmri-2.0.0/tests/viewer/test_colour_bars.py +506 -0
  1331. larmor_dmri-2.0.0/tests/viewer/test_colour_space.py +13 -0
  1332. larmor_dmri-2.0.0/tests/viewer/test_density_overlay.py +39 -0
  1333. larmor_dmri-2.0.0/tests/viewer/test_docks.py +352 -0
  1334. larmor_dmri-2.0.0/tests/viewer/test_dti_render.py +123 -0
  1335. larmor_dmri-2.0.0/tests/viewer/test_fod_adapter.py +185 -0
  1336. larmor_dmri-2.0.0/tests/viewer/test_fod_inspector.py +165 -0
  1337. larmor_dmri-2.0.0/tests/viewer/test_geometry.py +639 -0
  1338. larmor_dmri-2.0.0/tests/viewer/test_glyphs.py +231 -0
  1339. larmor_dmri-2.0.0/tests/viewer/test_help_panel.py +206 -0
  1340. larmor_dmri-2.0.0/tests/viewer/test_inspect_fod.py +187 -0
  1341. larmor_dmri-2.0.0/tests/viewer/test_jobs.py +110 -0
  1342. larmor_dmri-2.0.0/tests/viewer/test_keys.py +474 -0
  1343. larmor_dmri-2.0.0/tests/viewer/test_labels_3d.py +244 -0
  1344. larmor_dmri-2.0.0/tests/viewer/test_labels_panel.py +234 -0
  1345. larmor_dmri-2.0.0/tests/viewer/test_launcher.py +312 -0
  1346. larmor_dmri-2.0.0/tests/viewer/test_layers.py +820 -0
  1347. larmor_dmri-2.0.0/tests/viewer/test_line_voxels.py +141 -0
  1348. larmor_dmri-2.0.0/tests/viewer/test_loader.py +524 -0
  1349. larmor_dmri-2.0.0/tests/viewer/test_macos.py +67 -0
  1350. larmor_dmri-2.0.0/tests/viewer/test_matlab_dialog.py +98 -0
  1351. larmor_dmri-2.0.0/tests/viewer/test_mcp_server.py +727 -0
  1352. larmor_dmri-2.0.0/tests/viewer/test_opening.py +1132 -0
  1353. larmor_dmri-2.0.0/tests/viewer/test_options_panel.py +2345 -0
  1354. larmor_dmri-2.0.0/tests/viewer/test_peaks_adapter.py +200 -0
  1355. larmor_dmri-2.0.0/tests/viewer/test_phantom_panel.py +192 -0
  1356. larmor_dmri-2.0.0/tests/viewer/test_phantom_steps.py +138 -0
  1357. larmor_dmri-2.0.0/tests/viewer/test_ray_traced_lines.py +237 -0
  1358. larmor_dmri-2.0.0/tests/viewer/test_redraws.py +154 -0
  1359. larmor_dmri-2.0.0/tests/viewer/test_regions_editor.py +76 -0
  1360. larmor_dmri-2.0.0/tests/viewer/test_registration_dialog.py +48 -0
  1361. larmor_dmri-2.0.0/tests/viewer/test_render_3d.py +1026 -0
  1362. larmor_dmri-2.0.0/tests/viewer/test_render_adapters.py +443 -0
  1363. larmor_dmri-2.0.0/tests/viewer/test_render_labels.py +441 -0
  1364. larmor_dmri-2.0.0/tests/viewer/test_render_scene.py +321 -0
  1365. larmor_dmri-2.0.0/tests/viewer/test_render_slices.py +349 -0
  1366. larmor_dmri-2.0.0/tests/viewer/test_render_textures.py +321 -0
  1367. larmor_dmri-2.0.0/tests/viewer/test_render_tract_values.py +197 -0
  1368. larmor_dmri-2.0.0/tests/viewer/test_render_tractograms.py +695 -0
  1369. larmor_dmri-2.0.0/tests/viewer/test_save_and_jobs.py +154 -0
  1370. larmor_dmri-2.0.0/tests/viewer/test_screenshot.py +502 -0
  1371. larmor_dmri-2.0.0/tests/viewer/test_screenshot_panel.py +266 -0
  1372. larmor_dmri-2.0.0/tests/viewer/test_session_window.py +223 -0
  1373. larmor_dmri-2.0.0/tests/viewer/test_settings_panel.py +598 -0
  1374. larmor_dmri-2.0.0/tests/viewer/test_style.py +189 -0
  1375. larmor_dmri-2.0.0/tests/viewer/test_surface_adapter.py +316 -0
  1376. larmor_dmri-2.0.0/tests/viewer/test_system.py +203 -0
  1377. larmor_dmri-2.0.0/tests/viewer/test_view_input.py +286 -0
  1378. larmor_dmri-2.0.0/tests/viewer/test_view_labels.py +166 -0
  1379. larmor_dmri-2.0.0/tests/viewer/test_window.py +421 -0
  1380. larmor_dmri-2.0.0/tests/viewer/test_worker.py +188 -0
  1381. larmor_dmri-2.0.0/tests/viewer/viewer_fixtures.py +139 -0
  1382. larmor_dmri-2.0.0/tests/viewer/viewer_helpers.py +50 -0
  1383. larmor_dmri-2.0.0/uv.lock +2637 -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,94 @@
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
+ push:
10
+ tags: ["v*"]
11
+ workflow_dispatch: # allows a manual run from the Actions tab
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ concurrency:
17
+ group: ${{ github.workflow }}-${{ github.ref }}
18
+ cancel-in-progress: true
19
+
20
+ jobs:
21
+ wheel:
22
+ name: wheel (${{ matrix.name }})
23
+ runs-on: ${{ matrix.runner }}
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ include:
28
+ - { name: linux-x86_64, runner: ubuntu-latest }
29
+ - { name: linux-aarch64, runner: ubuntu-24.04-arm }
30
+ - { name: macos-arm64, runner: macos-latest }
31
+ - { name: macos-x86_64, runner: macos-15-intel }
32
+ - { name: windows-x86_64, runner: windows-latest }
33
+ steps:
34
+ # Checked out as committed: Windows would otherwise turn line endings into CRLF.
35
+ - name: Keep line endings as committed
36
+ if: runner.os == 'Windows'
37
+ run: git config --global core.autocrlf false
38
+ - uses: actions/checkout@v7
39
+ # On Linux the wheel is built and tested inside a manylinux container, so it runs on any
40
+ # distribution with a recent enough glibc; elsewhere it is built on the runner itself.
41
+ - uses: pypa/cibuildwheel@v4.3.1
42
+ with:
43
+ output-dir: wheelhouse
44
+ - uses: actions/upload-artifact@v7.0.2
45
+ with:
46
+ name: wheel-${{ matrix.name }}
47
+ path: wheelhouse/*.whl
48
+
49
+ sdist:
50
+ name: source distribution
51
+ runs-on: ubuntu-latest
52
+ steps:
53
+ - uses: actions/checkout@v7
54
+ - uses: astral-sh/setup-uv@v10.2.0 # setup-uv publishes exact versions only
55
+ with:
56
+ python-version: "3.14"
57
+ - name: Put Eigen and pocketfft into cpp/third_party
58
+ run: cmake -P cpp/cmake/vendor.cmake
59
+ # --no-config: the build in an isolated environment, as pip builds it, not in the uv
60
+ # environment as [tool.uv] in pyproject.toml asks for development.
61
+ - name: Build the source distribution
62
+ run: uv build --no-config --sdist --out-dir dist
63
+ # FETCHCONTENT_FULLY_DISCONNECTED stops CMake from downloading anything, so the build passes
64
+ # only with the C++ libraries the source distribution carries. The Python build tools still
65
+ # come from PyPI, as for any source build.
66
+ - name: Install from the source distribution in a fresh environment
67
+ run: |
68
+ uv venv --no-config --python 3.14 sdist-env
69
+ uv pip install --no-config --python sdist-env dist/*.tar.gz pytest pytest-xdist nibabel \
70
+ -C cmake.define.FETCHCONTENT_FULLY_DISCONNECTED=ON
71
+ - name: Test the installed package
72
+ run: sdist-env/bin/python -m pytest -p no:cacheprovider tests/test_core.py tests/dwi
73
+ - uses: actions/upload-artifact@v7.0.2
74
+ with:
75
+ name: sdist
76
+ path: dist/*.tar.gz
77
+
78
+ publish:
79
+ name: publish to PyPI
80
+ if: startsWith(github.ref, 'refs/tags/v')
81
+ needs: [wheel, sdist]
82
+ runs-on: ubuntu-latest
83
+ # The PyPI project trusts this repository, this workflow and this environment only.
84
+ environment:
85
+ name: pypi
86
+ url: https://pypi.org/project/larmor-dmri/
87
+ permissions:
88
+ id-token: write
89
+ steps:
90
+ - uses: actions/download-artifact@v8.0.2
91
+ with:
92
+ path: dist
93
+ merge-multiple: true
94
+ - 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/