virtual-casing 0.2.1__tar.gz → 0.3.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 (544) hide show
  1. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/.github/workflows/test.yml +46 -0
  2. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/.github/workflows/wheel.yml +13 -4
  3. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/CMakeLists.txt +38 -2
  4. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/MANIFEST.in +1 -0
  5. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/Makefile +5 -0
  6. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/PKG-INFO +10 -4
  7. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/README.md +4 -0
  8. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/.github/run-tests.sh +17 -0
  9. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/.github/workflows/build-test.yml +190 -0
  10. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/.github/workflows/codecov.yml +2 -2
  11. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/Makefile +52 -15
  12. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/README.md +11 -2
  13. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/convergence.svg +621 -0
  14. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/cubed-sphere.svg +728 -0
  15. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-1-foot.svg +77 -0
  16. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-2-split.svg +65 -0
  17. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-3-bisect.svg +146 -0
  18. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-4-order.svg +191 -0
  19. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-5-pipeline.svg +545 -0
  20. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/scaling.svg +300 -0
  21. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-1-split.svg +188 -0
  22. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-2-collapse.svg +251 -0
  23. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-3-rules.svg +299 -0
  24. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-4-pipeline.svg +533 -0
  25. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/Makefile +16 -0
  26. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/convergence.tex +29 -0
  27. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/cubed-sphere.tex +228 -0
  28. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/convergence-genoa.dat +5 -0
  29. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/genoa-96.txt +140 -0
  30. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/icelake-64.txt +134 -0
  31. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/rome-128.txt +140 -0
  32. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-laplace.dat +9 -0
  33. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-stokes.dat +9 -0
  34. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-mpi-tol1e-3-genoa-96-7204544.txt +338 -0
  35. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-1-foot.tex +24 -0
  36. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-2-split.tex +28 -0
  37. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-3-bisect.tex +32 -0
  38. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-4-order.tex +26 -0
  39. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-5-pipeline.tex +32 -0
  40. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/results.py +184 -0
  41. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/scaling.tex +24 -0
  42. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-1-split.tex +38 -0
  43. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-2-collapse.tex +39 -0
  44. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-3-rules.tex +29 -0
  45. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-4-pipeline.tex +30 -0
  46. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element.rst +399 -0
  47. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/doxygen/index.rst +0 -1
  48. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/doxygen/kernel_functions.rst +2 -2
  49. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/index.rst +15 -2
  50. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/tutorial/index.rst +0 -1
  51. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/boundary_integral.hpp +9 -8
  52. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/boundary_integral.txx +196 -145
  53. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/comm.hpp +233 -39
  54. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/comm.txx +898 -303
  55. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/common.hpp +4 -2
  56. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/alpert_quadr.cpp +169 -0
  57. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/alpert_quadr.hpp +59 -0
  58. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/device_scratch.hpp +241 -0
  59. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/device_scratch.txx +476 -0
  60. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/gpu-tree.hpp +433 -0
  61. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/gpu-tree.txx +2642 -0
  62. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/gpu-vector.hpp +86 -0
  63. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.cpp +2364 -0
  64. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.hpp +260 -0
  65. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/sort-scatter.hpp +145 -0
  66. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/sort-scatter.txx +383 -0
  67. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fmm-wrapper.hpp +21 -2
  68. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fmm-wrapper.txx +99 -49
  69. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/function-table.hpp +64 -0
  70. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/function-table.txx +383 -0
  71. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/generic-kernel.hpp +21 -1
  72. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/generic-kernel.txx +38 -31
  73. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/intrin-wrapper.hpp +7922 -0
  74. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/iterator.hpp +61 -176
  75. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/iterator.txx +41 -124
  76. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/kernel_functions.hpp +21 -9
  77. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lagrange-interp.txx +1 -1
  78. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/lin-solve.txx +3 -3
  79. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/mat_utils.txx +38 -10
  80. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/math_utils.hpp +13 -2
  81. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/math_utils.txx +791 -0
  82. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/matrix.hpp +23 -15
  83. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/matrix.txx +58 -39
  84. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/mem_mgr.txx +4 -5
  85. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/morton.hpp +74 -7
  86. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/morton.txx +94 -40
  87. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/ode-solver.txx +1 -1
  88. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/ompUtils.hpp +96 -7
  89. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/ompUtils.txx +235 -10
  90. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/profile.hpp +27 -0
  91. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/profile.txx +99 -11
  92. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/quadrule.txx +1 -1
  93. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/scratch_pool.hpp +76 -2
  94. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/scratch_pool.txx +78 -16
  95. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/small_gemm.hpp +86 -0
  96. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/small_gemm.txx +514 -0
  97. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/sort-scatter.hpp +157 -0
  98. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/sort-scatter.txx +412 -0
  99. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/sph_harm.txx +9 -23
  100. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/sse2neon.h +32 -21
  101. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/tensor.hpp +19 -5
  102. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/tensor.txx +17 -10
  103. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/tree.hpp +71 -22
  104. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/tree.txx +862 -768
  105. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/vec-test.hpp +1410 -0
  106. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/vec.hpp +878 -0
  107. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/vec.txx +838 -0
  108. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vector.hpp +2 -1
  109. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vector.txx +37 -25
  110. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl.hpp +8 -1
  111. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/bench-cubed-sphere.cpp +473 -0
  112. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/example-gpu-tree.cu +23 -0
  113. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-boundary_integral.cpp +1 -2
  114. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-comm.cpp +106 -1
  115. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-device-scratch.cu +125 -0
  116. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-fft-fallback.cpp +1 -6
  117. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-function-table.cpp +88 -0
  118. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-gpu-sort-scatter.cu +32 -0
  119. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-gpu-tree.cu +775 -0
  120. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-intrin-wrapper.cpp +37 -1
  121. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-linear-solver.cpp +1 -1
  122. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-mat_utils.cpp +98 -1
  123. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-math_utils.cpp +68 -0
  124. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-matrix.cpp +54 -0
  125. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-morton.cpp +12 -7
  126. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-ompUtils.cpp +321 -0
  127. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-profile.cpp +42 -1
  128. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-pt-tree.cpp +158 -0
  129. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-quad-elem.cpp +1606 -0
  130. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-scratch-pool-perf.cpp +3 -3
  131. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-scratch-pool.cpp +77 -3
  132. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-small-gemm.cpp +267 -0
  133. virtual_casing-0.2.1/extern/SCTL/src/test-pt-tree.cpp → virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-sort-scatter.cpp +2 -4
  134. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-utils.hpp +99 -0
  135. {virtual_casing-0.2.1 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-vector.cpp +42 -1
  136. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-vtudata.cpp +1 -2
  137. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test.cpp +1 -1
  138. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/bie_solvers.hpp +11 -5
  139. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/bie_solvers.txx +62 -197
  140. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/boundary_integ_op.hpp +8 -3
  141. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/boundary_integ_op.txx +6 -3
  142. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/kernel.hpp +65 -39
  143. virtual_casing-0.3.0/extern/BIEST/include/biest/offsurface_op.hpp +154 -0
  144. virtual_casing-0.3.0/extern/BIEST/include/biest/offsurface_op.txx +617 -0
  145. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface_op.txx +22 -10
  146. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/vacuum-field.hpp +2 -2
  147. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/vacuum-field.txx +21 -54
  148. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest.hpp +1 -0
  149. virtual_casing-0.3.0/extern/SCTL/.github/run-tests.sh +17 -0
  150. virtual_casing-0.3.0/extern/SCTL/.github/workflows/build-test.yml +190 -0
  151. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/.github/workflows/codecov.yml +2 -2
  152. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/Makefile +52 -15
  153. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/README.md +11 -2
  154. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/convergence.svg +621 -0
  155. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/cubed-sphere.svg +728 -0
  156. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-1-foot.svg +77 -0
  157. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-2-split.svg +65 -0
  158. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-3-bisect.svg +146 -0
  159. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-4-order.svg +191 -0
  160. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-5-pipeline.svg +545 -0
  161. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/scaling.svg +300 -0
  162. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-1-split.svg +188 -0
  163. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-2-collapse.svg +251 -0
  164. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-3-rules.svg +299 -0
  165. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-4-pipeline.svg +533 -0
  166. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/Makefile +16 -0
  167. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/convergence.tex +29 -0
  168. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/cubed-sphere.tex +228 -0
  169. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/convergence-genoa.dat +5 -0
  170. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/genoa-96.txt +140 -0
  171. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/icelake-64.txt +134 -0
  172. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/rome-128.txt +140 -0
  173. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-laplace.dat +9 -0
  174. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-stokes.dat +9 -0
  175. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-mpi-tol1e-3-genoa-96-7204544.txt +338 -0
  176. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-1-foot.tex +24 -0
  177. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-2-split.tex +28 -0
  178. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-3-bisect.tex +32 -0
  179. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-4-order.tex +26 -0
  180. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-5-pipeline.tex +32 -0
  181. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/results.py +184 -0
  182. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/scaling.tex +24 -0
  183. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-1-split.tex +38 -0
  184. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-2-collapse.tex +39 -0
  185. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-3-rules.tex +29 -0
  186. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-4-pipeline.tex +30 -0
  187. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element.rst +399 -0
  188. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/index.rst +0 -1
  189. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/kernel_functions.rst +2 -2
  190. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/index.rst +15 -2
  191. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/index.rst +0 -1
  192. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/boundary_integral.hpp +9 -8
  193. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/boundary_integral.txx +196 -145
  194. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/comm.hpp +233 -39
  195. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/comm.txx +898 -303
  196. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/common.hpp +4 -2
  197. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/alpert_quadr.cpp +169 -0
  198. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/alpert_quadr.hpp +59 -0
  199. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/device_scratch.hpp +241 -0
  200. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/device_scratch.txx +476 -0
  201. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/gpu-tree.hpp +433 -0
  202. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/gpu-tree.txx +2642 -0
  203. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/gpu-vector.hpp +86 -0
  204. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/quad_element.cpp +2364 -0
  205. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/quad_element.hpp +260 -0
  206. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/sort-scatter.hpp +145 -0
  207. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/sort-scatter.txx +383 -0
  208. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fmm-wrapper.hpp +21 -2
  209. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fmm-wrapper.txx +99 -49
  210. virtual_casing-0.3.0/extern/SCTL/include/sctl/function-table.hpp +64 -0
  211. virtual_casing-0.3.0/extern/SCTL/include/sctl/function-table.txx +383 -0
  212. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/generic-kernel.hpp +21 -1
  213. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/generic-kernel.txx +38 -31
  214. virtual_casing-0.3.0/extern/SCTL/include/sctl/intrin-wrapper.hpp +7922 -0
  215. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/iterator.hpp +61 -176
  216. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/iterator.txx +41 -124
  217. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/kernel_functions.hpp +21 -9
  218. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lagrange-interp.txx +1 -1
  219. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lin-solve.txx +3 -3
  220. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mat_utils.txx +38 -10
  221. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/math_utils.hpp +13 -2
  222. virtual_casing-0.3.0/extern/SCTL/include/sctl/math_utils.txx +791 -0
  223. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/matrix.hpp +23 -15
  224. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/matrix.txx +58 -39
  225. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mem_mgr.txx +4 -5
  226. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/morton.hpp +74 -7
  227. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/morton.txx +94 -40
  228. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ode-solver.txx +1 -1
  229. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ompUtils.hpp +96 -7
  230. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ompUtils.txx +235 -10
  231. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/profile.hpp +27 -0
  232. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/profile.txx +99 -11
  233. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/quadrule.txx +1 -1
  234. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/scratch_pool.hpp +76 -2
  235. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/scratch_pool.txx +78 -16
  236. virtual_casing-0.3.0/extern/SCTL/include/sctl/small_gemm.hpp +86 -0
  237. virtual_casing-0.3.0/extern/SCTL/include/sctl/small_gemm.txx +514 -0
  238. virtual_casing-0.3.0/extern/SCTL/include/sctl/sort-scatter.hpp +157 -0
  239. virtual_casing-0.3.0/extern/SCTL/include/sctl/sort-scatter.txx +412 -0
  240. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/sph_harm.txx +9 -23
  241. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/sse2neon.h +32 -21
  242. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tensor.hpp +19 -5
  243. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tensor.txx +17 -10
  244. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tree.hpp +71 -22
  245. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tree.txx +862 -768
  246. virtual_casing-0.3.0/extern/SCTL/include/sctl/vec-test.hpp +1410 -0
  247. virtual_casing-0.3.0/extern/SCTL/include/sctl/vec.hpp +878 -0
  248. virtual_casing-0.3.0/extern/SCTL/include/sctl/vec.txx +838 -0
  249. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vector.hpp +2 -1
  250. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vector.txx +37 -25
  251. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl.hpp +8 -1
  252. virtual_casing-0.3.0/extern/SCTL/src/bench-cubed-sphere.cpp +473 -0
  253. virtual_casing-0.3.0/extern/SCTL/src/example-gpu-tree.cu +23 -0
  254. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-boundary_integral.cpp +1 -2
  255. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-comm.cpp +106 -1
  256. virtual_casing-0.3.0/extern/SCTL/src/test-device-scratch.cu +125 -0
  257. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-fft-fallback.cpp +1 -6
  258. virtual_casing-0.3.0/extern/SCTL/src/test-function-table.cpp +88 -0
  259. virtual_casing-0.3.0/extern/SCTL/src/test-gpu-sort-scatter.cu +32 -0
  260. virtual_casing-0.3.0/extern/SCTL/src/test-gpu-tree.cu +775 -0
  261. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-intrin-wrapper.cpp +37 -1
  262. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-linear-solver.cpp +1 -1
  263. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-mat_utils.cpp +98 -1
  264. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-math_utils.cpp +68 -0
  265. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-matrix.cpp +54 -0
  266. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-morton.cpp +12 -7
  267. virtual_casing-0.3.0/extern/SCTL/src/test-ompUtils.cpp +321 -0
  268. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-profile.cpp +42 -1
  269. virtual_casing-0.3.0/extern/SCTL/src/test-pt-tree.cpp +158 -0
  270. virtual_casing-0.3.0/extern/SCTL/src/test-quad-elem.cpp +1606 -0
  271. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-scratch-pool-perf.cpp +3 -3
  272. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-scratch-pool.cpp +77 -3
  273. virtual_casing-0.3.0/extern/SCTL/src/test-small-gemm.cpp +267 -0
  274. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/src/test-pt-tree.cpp → virtual_casing-0.3.0/extern/SCTL/src/test-sort-scatter.cpp +2 -4
  275. virtual_casing-0.3.0/extern/SCTL/src/test-utils.hpp +99 -0
  276. {virtual_casing-0.2.1/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-vector.cpp +42 -1
  277. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-vtudata.cpp +1 -2
  278. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test.cpp +1 -1
  279. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/include/virtual-casing.hpp +3 -11
  280. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/include/virtual-casing.txx +7 -28
  281. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/pyproject.toml +14 -3
  282. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/src/__init__.py +6 -0
  283. virtual_casing-0.3.0/src/__init__.pyi +23 -0
  284. virtual_casing-0.3.0/src/_vc_baseline.pyi +353 -0
  285. virtual_casing-0.3.0/src/py.typed +0 -0
  286. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/src/python.cpp +2 -14
  287. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/test/test.py +56 -6
  288. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/test/virtual-casing.cpp +3 -3
  289. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/.github/workflows/build-test.yml +0 -82
  290. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/doc/doxygen/boundary_quadrature.rst +0 -8
  291. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/boundary_quadrature.hpp +0 -1907
  292. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.cpp +0 -498
  293. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.hpp +0 -190
  294. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/intrin-wrapper.hpp +0 -3083
  295. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/math_utils.txx +0 -503
  296. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/vec-test.hpp +0 -457
  297. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/vec.hpp +0 -397
  298. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/include/sctl/vec.txx +0 -420
  299. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/src/test-ompUtils.cpp +0 -177
  300. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/src/test-quad-elem.cpp +0 -95
  301. virtual_casing-0.2.1/extern/BIEST/extern/SCTL/src/test-utils.hpp +0 -45
  302. virtual_casing-0.2.1/extern/SCTL/.github/workflows/build-test.yml +0 -82
  303. virtual_casing-0.2.1/extern/SCTL/doc/doxygen/boundary_quadrature.rst +0 -8
  304. virtual_casing-0.2.1/extern/SCTL/include/sctl/boundary_quadrature.hpp +0 -1907
  305. virtual_casing-0.2.1/extern/SCTL/include/sctl/experimental/quad_element.cpp +0 -498
  306. virtual_casing-0.2.1/extern/SCTL/include/sctl/experimental/quad_element.hpp +0 -190
  307. virtual_casing-0.2.1/extern/SCTL/include/sctl/intrin-wrapper.hpp +0 -3083
  308. virtual_casing-0.2.1/extern/SCTL/include/sctl/math_utils.txx +0 -503
  309. virtual_casing-0.2.1/extern/SCTL/include/sctl/vec-test.hpp +0 -457
  310. virtual_casing-0.2.1/extern/SCTL/include/sctl/vec.hpp +0 -397
  311. virtual_casing-0.2.1/extern/SCTL/include/sctl/vec.txx +0 -420
  312. virtual_casing-0.2.1/extern/SCTL/src/test-ompUtils.cpp +0 -177
  313. virtual_casing-0.2.1/extern/SCTL/src/test-quad-elem.cpp +0 -95
  314. virtual_casing-0.2.1/extern/SCTL/src/test-utils.hpp +0 -45
  315. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/.gitignore +0 -0
  316. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/.gitmodules +0 -0
  317. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/LICENSE +0 -0
  318. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/cmake/FindFFTW.cmake +0 -0
  319. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/.clang-format +0 -0
  320. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/.gitignore +0 -0
  321. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/.gitmodules +0 -0
  322. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/LICENSE +0 -0
  323. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/Makefile +0 -0
  324. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/README.md +0 -0
  325. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/BetaScan_run_20.Bxyz.txt +0 -0
  326. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/Makefile +0 -0
  327. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/ellipse.coils +0 -0
  328. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/virtual-casing.cpp +0 -0
  329. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.clang-format +0 -0
  330. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.gitattributes +0 -0
  331. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.gitignore +0 -0
  332. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.readthedocs.yaml +0 -0
  333. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/LICENSE +0 -0
  334. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/Doxyfile +0 -0
  335. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/Makefile +0 -0
  336. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/ackn.rst +0 -0
  337. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/conf.py +0 -0
  338. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/boundary_integral.rst +0 -0
  339. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/cheb_utils.rst +0 -0
  340. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/comm.rst +0 -0
  341. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/common.rst +0 -0
  342. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/fft_wrapper.rst +0 -0
  343. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/fmm-wrapper.rst +0 -0
  344. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/generic-kernel.rst +0 -0
  345. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/iterator.rst +0 -0
  346. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/lagrange-interp.rst +0 -0
  347. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/lin-solve.rst +0 -0
  348. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/mat_utils.rst +0 -0
  349. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/math_utils.rst +0 -0
  350. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/matrix.rst +0 -0
  351. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/mem_mgr.rst +0 -0
  352. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/morton.rst +0 -0
  353. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/ode-solver.rst +0 -0
  354. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/ompUtils.rst +0 -0
  355. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/permutation.rst +0 -0
  356. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/profile.rst +0 -0
  357. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/quadrule.rst +0 -0
  358. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/scratch_pool.rst +0 -0
  359. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/sph_harm.rst +0 -0
  360. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/stacktrace.rst +0 -0
  361. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/static-array.rst +0 -0
  362. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/tensor.rst +0 -0
  363. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/tree.rst +0 -0
  364. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/vec.rst +0 -0
  365. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/vector.rst +0 -0
  366. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/vtudata.rst +0 -0
  367. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/requirements.txt +0 -0
  368. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/boundaryintegralop.rst +0 -0
  369. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/comm.rst +0 -0
  370. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/fft.rst +0 -0
  371. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/fmm.rst +0 -0
  372. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/gmres-rsult.txt +0 -0
  373. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/gmres.rst +0 -0
  374. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/interp-quadrule.rst +0 -0
  375. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/kernels.rst +0 -0
  376. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/lagrange-interp.rst +0 -0
  377. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/matrix.rst +0 -0
  378. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/permutation.rst +0 -0
  379. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/profile.rst +0 -0
  380. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/sdc.rst +0 -0
  381. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/tensor.rst +0 -0
  382. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/tree.rst +0 -0
  383. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/vec.rst +0 -0
  384. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/vector.rst +0 -0
  385. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/vtudata.rst +0 -0
  386. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/blas.h +0 -0
  387. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/cheb_utils.hpp +0 -0
  388. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fft_wrapper.hpp +0 -0
  389. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fft_wrapper.txx +0 -0
  390. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lagrange-interp.hpp +0 -0
  391. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lapack.h +0 -0
  392. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lin-solve.hpp +0 -0
  393. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/mat_utils.hpp +0 -0
  394. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/mem_mgr.hpp +0 -0
  395. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/ode-solver.hpp +0 -0
  396. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/permutation.hpp +0 -0
  397. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/permutation.txx +0 -0
  398. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/quadrule.hpp +0 -0
  399. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/sph_harm.hpp +0 -0
  400. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/stacktrace.h +0 -0
  401. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/static-array.hpp +0 -0
  402. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/static-array.txx +0 -0
  403. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vtudata.hpp +0 -0
  404. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vtudata.txx +0 -0
  405. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-cheb_utils.cpp +0 -0
  406. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-fft.cpp +0 -0
  407. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-fmm.cpp +0 -0
  408. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-generic-kernel.cpp +0 -0
  409. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-gmres.cpp +0 -0
  410. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-iterator.cpp +0 -0
  411. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-kernel_functions.cpp +0 -0
  412. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-lagrange-interp.cpp +0 -0
  413. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-mem_mgr.cpp +0 -0
  414. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-ode-solver.cpp +0 -0
  415. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-permutation.cpp +0 -0
  416. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-quadrule.cpp +0 -0
  417. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-sph-harm.cpp +0 -0
  418. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-static-array.cpp +0 -0
  419. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-tensor.cpp +0 -0
  420. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-vec.cpp +0 -0
  421. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/LHD-X.mat +0 -0
  422. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/LHD-Y.mat +0 -0
  423. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/LHD-Z.mat +0 -0
  424. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/NCSX +0 -0
  425. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/Quas3-X.mat +0 -0
  426. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/Quas3-Y.mat +0 -0
  427. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/Quas3-Z.mat +0 -0
  428. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/W7X-X.mat +0 -0
  429. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/W7X-Y.mat +0 -0
  430. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/geom/W7X-Z.mat +0 -0
  431. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/mat.hpp +0 -0
  432. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/singular_correction.hpp +0 -0
  433. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface.hpp +0 -0
  434. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface.txx +0 -0
  435. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface_op.hpp +0 -0
  436. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/double-layer-convergence.cpp +0 -0
  437. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/example1.cpp +0 -0
  438. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/force-free-fields-example.cpp +0 -0
  439. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/quadrature-example.cpp +0 -0
  440. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/table1.cpp +0 -0
  441. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/table3.cpp +0 -0
  442. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/table4.cpp +0 -0
  443. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/table5.cpp +0 -0
  444. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/table6.cpp +0 -0
  445. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/table7.cpp +0 -0
  446. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/BIEST/src/virtual-casing-principle.cpp +0 -0
  447. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/.clang-format +0 -0
  448. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/.gitattributes +0 -0
  449. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/.gitignore +0 -0
  450. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/.readthedocs.yaml +0 -0
  451. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/LICENSE +0 -0
  452. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/Doxyfile +0 -0
  453. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/Makefile +0 -0
  454. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/ackn.rst +0 -0
  455. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/conf.py +0 -0
  456. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/boundary_integral.rst +0 -0
  457. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/cheb_utils.rst +0 -0
  458. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/comm.rst +0 -0
  459. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/common.rst +0 -0
  460. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/fft_wrapper.rst +0 -0
  461. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/fmm-wrapper.rst +0 -0
  462. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/generic-kernel.rst +0 -0
  463. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/iterator.rst +0 -0
  464. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/lagrange-interp.rst +0 -0
  465. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/lin-solve.rst +0 -0
  466. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/mat_utils.rst +0 -0
  467. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/math_utils.rst +0 -0
  468. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/matrix.rst +0 -0
  469. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/mem_mgr.rst +0 -0
  470. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/morton.rst +0 -0
  471. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/ode-solver.rst +0 -0
  472. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/ompUtils.rst +0 -0
  473. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/permutation.rst +0 -0
  474. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/profile.rst +0 -0
  475. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/quadrule.rst +0 -0
  476. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/scratch_pool.rst +0 -0
  477. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/sph_harm.rst +0 -0
  478. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/stacktrace.rst +0 -0
  479. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/static-array.rst +0 -0
  480. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/tensor.rst +0 -0
  481. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/tree.rst +0 -0
  482. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/vec.rst +0 -0
  483. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/vector.rst +0 -0
  484. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/vtudata.rst +0 -0
  485. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/requirements.txt +0 -0
  486. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/boundaryintegralop.rst +0 -0
  487. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/comm.rst +0 -0
  488. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/fft.rst +0 -0
  489. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/fmm.rst +0 -0
  490. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/gmres-rsult.txt +0 -0
  491. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/gmres.rst +0 -0
  492. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/interp-quadrule.rst +0 -0
  493. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/kernels.rst +0 -0
  494. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/lagrange-interp.rst +0 -0
  495. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/matrix.rst +0 -0
  496. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/permutation.rst +0 -0
  497. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/profile.rst +0 -0
  498. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/sdc.rst +0 -0
  499. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/tensor.rst +0 -0
  500. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/tree.rst +0 -0
  501. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/vec.rst +0 -0
  502. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/vector.rst +0 -0
  503. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/vtudata.rst +0 -0
  504. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/blas.h +0 -0
  505. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/cheb_utils.hpp +0 -0
  506. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fft_wrapper.hpp +0 -0
  507. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fft_wrapper.txx +0 -0
  508. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lagrange-interp.hpp +0 -0
  509. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lapack.h +0 -0
  510. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lin-solve.hpp +0 -0
  511. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mat_utils.hpp +0 -0
  512. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mem_mgr.hpp +0 -0
  513. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ode-solver.hpp +0 -0
  514. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/permutation.hpp +0 -0
  515. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/permutation.txx +0 -0
  516. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/quadrule.hpp +0 -0
  517. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/sph_harm.hpp +0 -0
  518. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/stacktrace.h +0 -0
  519. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/static-array.hpp +0 -0
  520. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/static-array.txx +0 -0
  521. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vtudata.hpp +0 -0
  522. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vtudata.txx +0 -0
  523. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-cheb_utils.cpp +0 -0
  524. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-fft.cpp +0 -0
  525. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-fmm.cpp +0 -0
  526. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-generic-kernel.cpp +0 -0
  527. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-gmres.cpp +0 -0
  528. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-iterator.cpp +0 -0
  529. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-kernel_functions.cpp +0 -0
  530. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-lagrange-interp.cpp +0 -0
  531. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-mem_mgr.cpp +0 -0
  532. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-ode-solver.cpp +0 -0
  533. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-permutation.cpp +0 -0
  534. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-quadrule.cpp +0 -0
  535. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-sph-harm.cpp +0 -0
  536. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-static-array.cpp +0 -0
  537. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-tensor.cpp +0 -0
  538. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/extern/SCTL/src/test-vec.cpp +0 -0
  539. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/include/virtual-casing.h +0 -0
  540. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/src/cpu_features.cpp +0 -0
  541. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/src/virtual-casing.cpp +0 -0
  542. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/test/axisymm.cpp +0 -0
  543. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/test/check_isa.py +0 -0
  544. {virtual_casing-0.2.1 → virtual_casing-0.3.0}/test/virtual-casing-c.c +0 -0
@@ -104,3 +104,49 @@ jobs:
104
104
  - name: Run the C API test
105
105
  run: ./bin/virtual-casing-c
106
106
 
107
+
108
+ # A stale .pyi is worse than none: type checkers report errors that are not
109
+ # real. Regenerate and fail if it differs from what is committed.
110
+ stubs:
111
+ runs-on: ubuntu-latest
112
+
113
+ steps:
114
+ - uses: actions/checkout@v7
115
+ with:
116
+ submodules: recursive
117
+ fetch-depth: 0 # setuptools_scm needs the tags
118
+
119
+ - name: apt-get stuff needed for compiling
120
+ run: |
121
+ sudo apt-get update
122
+ sudo apt-get install -y build-essential libfftw3-dev liblapack-dev libopenblas-dev
123
+
124
+ - uses: actions/setup-python@v7
125
+ with:
126
+ python-version: '3.11'
127
+
128
+ - name: Install package and stubgen
129
+ run: python -m pip install . "pybind11-stubgen>=3.0,<4" mypy
130
+
131
+ - name: Regenerate stubs and compare
132
+ run: |
133
+ # force the variant being introspected: importing two of them into one
134
+ # process fails, since they register the same pybind11 types
135
+ VIRTUAL_CASING_ISA=baseline python -c "
136
+ import sys, virtual_casing._vc_baseline as m
137
+ # __init__.py presents the classes as virtual_casing, which would make
138
+ # stubgen re-export them rather than declare them; restore their real home
139
+ for o in vars(m).values():
140
+ if isinstance(o, type):
141
+ o.__module__ = m.__name__
142
+ sys.argv = ['pybind11-stubgen', '--print-value-comments', 'virtual_casing._vc_baseline', '-o', 'regenerated']
143
+ from pybind11_stubgen import main; main()
144
+ "
145
+ # stubgen leaves trailing whitespace in docstrings; the committed copy has
146
+ # it stripped, so normalise before comparing
147
+ sed -i 's/[[:space:]]*$//' regenerated/virtual_casing/_vc_baseline.pyi
148
+ diff -u src/_vc_baseline.pyi regenerated/virtual_casing/_vc_baseline.pyi \
149
+ || { echo "::error::src/_vc_baseline.pyi is stale; regenerate it, strip trailing whitespace, and commit"; exit 1; }
150
+
151
+ - name: Type-check the stubs themselves
152
+ run: python -m mypy --strict src/__init__.pyi src/_vc_baseline.pyi
@@ -47,14 +47,23 @@ jobs:
47
47
  run: python -m cibuildwheel --output-dir wheelhouse
48
48
  env:
49
49
  CIBW_ARCHS_LINUX: x86_64
50
- CIBW_ENVIRONMENT_LINUX: CI=True VC_ARCH_FLAG=${{ matrix.arch_flag }}
51
- CIBW_BEFORE_ALL_LINUX: yum install -y lapack-devel openblas-devel fftw-devel
50
+ CIBW_ENVIRONMENT_LINUX: CI=True VC_ARCH_FLAG=${{ matrix.arch_flag }} LIBXSMM_DIR=/opt/libxsmm
51
+ # LIBXSMM's own code is built for SSE4.2; the matrix kernels it generates use the CPU that runs them
52
+ CIBW_BEFORE_ALL_LINUX: >
53
+ yum install -y lapack-devel openblas-devel fftw-devel &&
54
+ git clone --depth 1 --branch 2.1.0 https://github.com/libxsmm/libxsmm.git /opt/libxsmm &&
55
+ make -C /opt/libxsmm -j$(nproc) STATIC=1 SSE=4 lib
52
56
  CIBW_BEFORE_BUILD_LINUX: python -m pip install --upgrade pip setuptools wheel numpy cmake ninja && git config --global --add safe.directory /project
53
57
  CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64
54
58
  CIBW_SKIP: "*-musllinux_*"
55
- CIBW_ENVIRONMENT_MACOS: CI=True VC_ARCH_FLAG=${{ matrix.arch_flag }} MACOSX_DEPLOYMENT_TARGET=${{ matrix.deployment_target }} CC=gcc-12 CXX=g++-12 # with GCC
59
+ CIBW_ENVIRONMENT_MACOS: CI=True VC_ARCH_FLAG=${{ matrix.arch_flag }} MACOSX_DEPLOYMENT_TARGET=${{ matrix.deployment_target }} CC=gcc-12 CXX=g++-12 LIBXSMM_DIR=/tmp/libxsmm # with GCC
56
60
  #CIBW_ENVIRONMENT_MACOS: CI=True VC_ARCH_FLAG=${{ matrix.arch_flat }} MACOSX_DEPLOYMENT_TARGET=${{ matrix.deployment_target }} OpenMP_ROOT=$(brew --prefix)/opt/libomp # with Apple Clang
57
- CIBW_BEFORE_ALL_MACOS: brew install fftw lapack gcc@12 libomp openblas
61
+ # LIBXSMM's own code is built for the runner (SSE4.2 on x86_64); the matrix kernels it generates use the CPU
62
+ # that runs them
63
+ CIBW_BEFORE_ALL_MACOS: >
64
+ brew install fftw lapack gcc@12 libomp openblas &&
65
+ git clone --depth 1 --branch 2.1.0 https://github.com/libxsmm/libxsmm.git /tmp/libxsmm &&
66
+ MACOSX_DEPLOYMENT_TARGET=${{ matrix.deployment_target }} make -C /tmp/libxsmm -j$(sysctl -n hw.ncpu) STATIC=1 lib
58
67
  CIBW_BEFORE_BUILD_MACOS: python -m pip install --upgrade pip setuptools wheel numpy cmake ninja && git config --global --add safe.directory /project
59
68
  CIBW_BUILD: cp310-* cp311-* cp312-* cp313-* cp314-*
60
69
  # exercise the repaired wheel, not the source build test.yml already covers
@@ -53,6 +53,35 @@ if(FFTW_DOUBLE_LIB_FOUND)
53
53
  endif()
54
54
  # float/long-double FFTW is never called; linking it only bloats the wheel
55
55
 
56
+ # LIBXSMM generates SCTL's small matrix products for the CPU that runs them, whatever the compiler flags
57
+ option (VC_USE_LIBXSMM "Link LIBXSMM, if found in LIBXSMM_DIR or the default paths, for SCTL's small matrix products" ON)
58
+ if (VC_USE_LIBXSMM)
59
+ find_path (LIBXSMM_INCLUDE_DIR libxsmm.h HINTS "$ENV{LIBXSMM_DIR}/include")
60
+ find_library (LIBXSMM_LIBRARY NAMES libxsmm.a xsmm HINTS "$ENV{LIBXSMM_DIR}/lib")
61
+ endif ()
62
+ if (LIBXSMM_INCLUDE_DIR AND LIBXSMM_LIBRARY)
63
+ find_package (Threads REQUIRED)
64
+ set (LIBXSMM_LIBRARIES ${LIBXSMM_LIBRARY} Threads::Threads ${CMAKE_DL_LIBS} m)
65
+ if (NOT APPLE)
66
+ list (APPEND LIBXSMM_LIBRARIES rt)
67
+ endif ()
68
+ # versions before 2.0 lack this interface
69
+ include (CheckCXXSourceCompiles)
70
+ set (CMAKE_REQUIRED_INCLUDES ${LIBXSMM_INCLUDE_DIR})
71
+ set (CMAKE_REQUIRED_LIBRARIES ${LIBXSMM_LIBRARIES})
72
+ check_cxx_source_compiles ("#include <libxsmm.h>
73
+ int main() {
74
+ const libxsmm_gemm_shape shape = libxsmm_create_gemm_shape(1, 1, 1, 1, 1, 1, LIBXSMM_DATATYPE_F64, LIBXSMM_DATATYPE_F64, LIBXSMM_DATATYPE_F64, LIBXSMM_DATATYPE_F64);
75
+ return libxsmm_dispatch_gemm(shape, 0, 0) == nullptr;
76
+ }" LIBXSMM_FOUND)
77
+ unset (CMAKE_REQUIRED_INCLUDES)
78
+ unset (CMAKE_REQUIRED_LIBRARIES)
79
+ endif ()
80
+ if (LIBXSMM_FOUND)
81
+ add_definitions (-DSCTL_HAVE_LIBXSMM)
82
+ include_directories ("${LIBXSMM_INCLUDE_DIR}")
83
+ endif ()
84
+
56
85
  find_package(Git QUIET)
57
86
  if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
58
87
  # Update submodules as needed
@@ -113,14 +142,20 @@ if (SKBUILD)
113
142
  target_include_directories(${tgt} PRIVATE "$<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:${FFTW_INCLUDE_DIRS}>"
114
143
  "include" "extern/SCTL/include" "extern/BIEST/include")
115
144
  target_link_libraries(${tgt} PRIVATE "$<$<BOOL:${OpenMP_CXX_FOUND}>:OpenMP::OpenMP_CXX>"
116
- "$<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:FFTW::Double>"
145
+ "$<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:FFTW::Double>" "$<$<BOOL:${LIBXSMM_FOUND}>:${LIBXSMM_LIBRARIES}>"
117
146
  "$<$<BOOL:${BLAS_FOUND}>:${BLAS_LIBRARIES}>" "$<$<BOOL:${LAPACK_FOUND}>:${LAPACK_LIBRARIES}>")
147
+ if (LIBXSMM_FOUND AND NOT APPLE)
148
+ # not exported, so that another copy of LIBXSMM in the process does not replace these functions
149
+ target_link_options(${tgt} PRIVATE "LINKER:--exclude-libs,libxsmm.a")
150
+ endif ()
118
151
  install(TARGETS ${tgt} LIBRARY DESTINATION ${PROJECT_NAME})
119
152
  endforeach()
120
153
 
121
154
  pybind11_add_module(_cpu src/cpu_features.cpp) # baseline: must run anywhere
122
155
  install(TARGETS _cpu LIBRARY DESTINATION ${PROJECT_NAME})
123
- install(FILES src/__init__.py DESTINATION ${PROJECT_NAME})
156
+ # py.typed opts the package in to PEP 561; without it the stubs are ignored
157
+ install(FILES src/__init__.py src/__init__.pyi src/_vc_baseline.pyi src/py.typed
158
+ DESTINATION ${PROJECT_NAME})
124
159
  endif()
125
160
 
126
161
  add_executable(vc_testing EXCLUDE_FROM_ALL test/virtual-casing.cpp)
@@ -129,5 +164,6 @@ target_compile_options(vc_testing PUBLIC "$<$<CXX_COMPILER_ID:PGI>:-Wc,--pending
129
164
  target_include_directories(vc_testing PRIVATE "$<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:${FFTW_INCLUDE_DIRS}>"
130
165
  "include" "extern/SCTL/include" "extern/BIEST/include")
131
166
  target_link_libraries(vc_testing PUBLIC $<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:FFTW::Double>
167
+ "$<$<BOOL:${LIBXSMM_FOUND}>:${LIBXSMM_LIBRARIES}>"
132
168
  "$<$<BOOL:${BLAS_FOUND}>:${BLAS_LIBRARIES}>"
133
169
  "$<$<BOOL:${LAPACK_FOUND}>:${LAPACK_LIBRARIES}>" $<$<BOOL:${OpenMP_CXX_FOUND}>:OpenMP::OpenMP_CXX>)
@@ -1,4 +1,5 @@
1
1
  include src/python.cpp src/cpu_features.cpp src/__init__.py
2
+ include src/__init__.pyi src/_vc_baseline.pyi src/py.typed
2
3
  include test/virtual-casing.cpp
3
4
  include LICENSE README.md
4
5
  graft include
@@ -53,6 +53,11 @@ CXXFLAGS += -lfftw3 -DSCTL_HAVE_FFTW
53
53
  CXXFLAGS += -lfftw3f -DSCTL_HAVE_FFTWF
54
54
  CXXFLAGS += -lfftw3l -DSCTL_HAVE_FFTWL
55
55
 
56
+ ifdef LIBXSMM_DIR # use LIBXSMM (version 2.0 or newer) for SCTL's small matrix products
57
+ CXXFLAGS += -I$(LIBXSMM_DIR)/include -DSCTL_HAVE_LIBXSMM
58
+ LDLIBS += $(LIBXSMM_DIR)/lib/libxsmm.a -lpthread -ldl -lm $(if $(filter Darwin,$(OS)),,-lrt)
59
+ endif
60
+
56
61
  CXXFLAGS += -lmvec -lm -DSCTL_HAVE_LIBMVEC
57
62
  #CXXFLAGS += -DSCTL_HAVE_SVML
58
63
 
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: virtual_casing
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Python Wrapper for Virtual Casing
5
- Author: Dhairya Malhotra, Manas Rachh
5
+ Author: Dhairya Malhotra, Matt Landreman, Chris Smiet, Manas Rachh, Antoine Cerfon, Misha Padidar
6
6
  Author-Email: Bharat Medasani <mbkumar@gmail.com>
7
- License-Expression: MIT
7
+ Maintainer: Dhairya Malhotra, Bharat Medasani, Matt Landreman, Chris Smiet
8
+ License-Expression: Apache-2.0
8
9
  License-File: LICENSE
9
10
  Classifier: Programming Language :: Python :: 3
10
11
  Classifier: Programming Language :: Python :: 3.10
@@ -15,11 +16,12 @@ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Programming Language :: C++
16
17
  Classifier: Operating System :: OS Independent
17
18
  Project-URL: Repository, https://github.com/hiddenSymmetries/virtual-casing
19
+ Project-URL: Issues, https://github.com/hiddenSymmetries/virtual-casing/issues
18
20
  Requires-Python: >=3.10
19
21
  Provides-Extra: test
20
22
  Requires-Dist: pytest>=6.0; extra == "test"
21
23
  Provides-Extra: dev
22
- Requires-Dist: pybind11-stubgen>=2.5; extra == "dev"
24
+ Requires-Dist: pybind11-stubgen<4,>=3.0; extra == "dev"
23
25
  Requires-Dist: pytest; extra == "dev"
24
26
  Description-Content-Type: text/markdown
25
27
 
@@ -47,6 +49,10 @@ If the above command succeeds, we can go to the next step. Build the ``vc_testin
47
49
 
48
50
  If the compilation is successful, you will have ``vc_testing`` in the ``build`` folder.
49
51
 
52
+ Optionally, set the environment variable ``LIBXSMM_DIR`` to a build of [LIBXSMM](https://github.com/libxsmm/libxsmm)
53
+ (version 2.0 or newer) before running cmake, or before installing the Python package, to use it for small matrix
54
+ products. The Makefile uses it in the same way.
55
+
50
56
 
51
57
  ### Python package
52
58
 
@@ -22,6 +22,10 @@ If the above command succeeds, we can go to the next step. Build the ``vc_testin
22
22
 
23
23
  If the compilation is successful, you will have ``vc_testing`` in the ``build`` folder.
24
24
 
25
+ Optionally, set the environment variable ``LIBXSMM_DIR`` to a build of [LIBXSMM](https://github.com/libxsmm/libxsmm)
26
+ (version 2.0 or newer) before running cmake, or before installing the Python package, to use it for small matrix
27
+ products. The Makefile uses it in the same way.
28
+
25
29
 
26
30
  ### Python package
27
31
 
@@ -0,0 +1,17 @@
1
+ # Runs the Makefile's tests, also after a failure, each failure as a GitHub annotation; exits with 1 if any failed.
2
+ # SCTL_TESTS: the tests to run instead; SCTL_TEST_RUNNER: a command to run them under
3
+ set +e
4
+ s=0
5
+ for t in ${SCTL_TESTS:-$(sed -n '/^test: /,/^$/p' Makefile | grep -o '/test[^/ ]*$' | cut -c2-)}; do
6
+ echo "=== $t"
7
+ $SCTL_TEST_RUNNER ./bin/$t 2>&1 | tee $t.log
8
+ st=${PIPESTATUS[0]}
9
+ echo "=== $t: exit $st"
10
+ if [ $st -ne 0 ]; then
11
+ s=1
12
+ msg=$(grep -a -m4 -E 'Assertion|failed|Error|error' $t.log | cut -c1-500 | awk '{printf "%s%%0A", $0}')
13
+ [ -n "$msg" ] || msg=$(tail -n 5 $t.log | cut -c1-500 | awk '{printf "%s%%0A", $0}')
14
+ echo "::error title=$t exit $st::$msg"
15
+ fi
16
+ done
17
+ exit $s
@@ -0,0 +1,190 @@
1
+ name: Build and Test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+
11
+ # a new push cancels the run in progress
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ build:
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ os:
22
+ - ubuntu-24.04 # GCC 13.3, 14.2 (bug 117159)
23
+ - macos-latest
24
+ compiler:
25
+ - g++-13
26
+ - g++-14
27
+ - clang++
28
+ vecflag:
29
+ - -march=native
30
+ memdbgflag:
31
+ - ""
32
+ - -DSCTL_MEMDEBUG
33
+ optflag:
34
+ - -O0
35
+ - -O3
36
+ earlyra: # GCC 14 on Apple silicon: off adds -mearly-ra=none
37
+ - "off"
38
+ include:
39
+ # GCC 14 with its early register allocator: tests the workarounds in the code
40
+ - os: macos-latest
41
+ compiler: g++-14
42
+ vecflag: -march=native
43
+ memdbgflag: ""
44
+ optflag: -O3
45
+ earlyra: "on"
46
+
47
+ runs-on: ${{ matrix.os }}
48
+
49
+ env:
50
+ CPPFLAGS: >-
51
+ -std=c++17 -g1 -rdynamic -fopenmp -Wall -Wfloat-conversion
52
+ -DSCTL_GLOBAL_MEM_BUFF=500 -DSCTL_PROFILE=5 -DSCTL_VERBOSE
53
+ -DSCTL_SIG_HANDLER -fstack-protector
54
+ ASANFLAGS: >-
55
+ -fsanitize=address,leak,undefined,pointer-compare,pointer-subtract,float-divide-by-zero,float-cast-overflow
56
+ -fno-sanitize-recover=all
57
+
58
+ steps:
59
+ - name: Checkout repository
60
+ uses: actions/checkout@v7
61
+
62
+ - name: Setup dependencies (Linux)
63
+ if: runner.os == 'Linux'
64
+ run: |
65
+ sudo apt-get update
66
+ sudo apt-get install -y libomp-dev g++-14
67
+
68
+ - name: Setup dependencies (macOS)
69
+ if: runner.os == 'macOS'
70
+ run: |
71
+ brew install gcc@13 gcc@14 llvm libomp
72
+ echo "PATH=$(brew --prefix llvm)/bin:$PATH" >> $GITHUB_ENV
73
+ echo "LDFLAGS=-L$(brew --prefix llvm)/lib" >> $GITHUB_ENV
74
+ echo "CPPFLAGS=$CPPFLAGS -I$(brew --prefix llvm)/include" >> $GITHUB_ENV
75
+ echo "LIBRARY_PATH=$(brew --prefix llvm)/lib:$LIBRARY_PATH" >> $GITHUB_ENV
76
+ echo "MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion | cut -d. -f1).0" >> $GITHUB_ENV # GCC 13 assumes 16.0 on macOS 26
77
+
78
+ - name: CPU
79
+ run: |
80
+ if [ "$RUNNER_OS" == "Linux" ]; then
81
+ echo "::notice::CPU: $(lscpu | sed -n 's/^Model name: *//p'); AVX-512: $(grep -q -w avx512f /proc/cpuinfo && echo yes || echo no)"
82
+ else
83
+ echo "::notice::CPU: $(sysctl -n machdep.cpu.brand_string)"
84
+ fi
85
+
86
+ - name: Build project
87
+ run: |
88
+ CXXFLAGS="${CPPFLAGS} ${{ matrix.optflag }} ${{ matrix.memdbgflag }}"
89
+ if [ "$(uname -s)" == "Darwin" ] && [ "$(uname -m)" == "arm64" ]; then
90
+ CXXFLAGS+=" -mcpu=apple-m1"
91
+ if [[ "${{ matrix.compiler }}" == g++* ]]; then
92
+ CXXFLAGS+=" -lomp" # clang's -fopenmp links libomp
93
+ fi
94
+ if [ "${{ matrix.compiler }}" == "g++-14" ] && [ "${{ matrix.earlyra }}" == "off" ]; then
95
+ CXXFLAGS+=" -mearly-ra=none" # see README
96
+ fi
97
+ else
98
+ CXXFLAGS+=" ${{ matrix.vecflag }} ${ASANFLAGS}"
99
+ fi
100
+ # __float128: x86, and GCC on Apple silicon
101
+ if [ "$(uname -m)" == "x86_64" ] || [[ "${{ matrix.compiler }}" == g++* ]]; then
102
+ CXXFLAGS+=" -DSCTL_QUAD_T=__float128"
103
+ fi
104
+ # one compile per core: the sanitizer builds of the largest tests come close to the runner's memory
105
+ make -j$(getconf _NPROCESSORS_ONLN) CXX="${{ matrix.compiler }}" CXXFLAGS="${CXXFLAGS}"
106
+
107
+ - name: Run tests
108
+ run: bash .github/run-tests.sh
109
+
110
+ # without sanitizers, which hid GCC bug 117159; x86-64-v4 under Intel SDE on runners without AVX-512
111
+ release:
112
+ strategy:
113
+ fail-fast: false
114
+ matrix:
115
+ os:
116
+ - ubuntu-24.04
117
+ compiler:
118
+ - g++-13
119
+ - g++-14
120
+ - clang++
121
+ isa:
122
+ - x86-64-v3
123
+ - x86-64-v4
124
+ optflag:
125
+ - -O2
126
+ - -O3
127
+ include:
128
+ - {os: ubuntu-24.04, compiler: g++-12, isa: x86-64-v3, optflag: -O3}
129
+ - {os: ubuntu-24.04, compiler: g++-12, isa: x86-64-v4, optflag: -O3}
130
+ - {os: ubuntu-26.04, compiler: g++-15, isa: x86-64-v3, optflag: -O3}
131
+ - {os: ubuntu-26.04, compiler: g++-15, isa: x86-64-v4, optflag: -O3}
132
+ - {os: ubuntu-26.04, compiler: clang++-22, isa: x86-64-v3, optflag: -O3}
133
+ - {os: ubuntu-26.04, compiler: clang++-22, isa: x86-64-v4, optflag: -O3}
134
+
135
+ runs-on: ${{ matrix.os }}
136
+
137
+ env:
138
+ CPPFLAGS: >-
139
+ -std=c++17 -g1 -rdynamic -fopenmp -Wall -Wfloat-conversion
140
+ -DSCTL_GLOBAL_MEM_BUFF=500 -DSCTL_PROFILE=5 -DSCTL_VERBOSE
141
+ -DSCTL_SIG_HANDLER -fstack-protector
142
+
143
+ steps:
144
+ - name: Checkout repository
145
+ uses: actions/checkout@v7
146
+
147
+ - name: Setup dependencies
148
+ run: |
149
+ sudo apt-get update
150
+ c="${{ matrix.compiler }}"
151
+ case "$c" in
152
+ g++-*) sudo apt-get install -y libomp-dev "$c" ;;
153
+ clang++-*) sudo apt-get install -y "clang-${c#clang++-}" "libomp-${c#clang++-}-dev" ;;
154
+ *) sudo apt-get install -y libomp-dev ;;
155
+ esac
156
+
157
+ - name: CPU
158
+ id: cpu
159
+ run: |
160
+ avx512=$(grep -q -w avx512f /proc/cpuinfo && echo yes || echo no)
161
+ echo "::notice::CPU: $(lscpu | sed -n 's/^Model name: *//p'); AVX-512: ${avx512}"
162
+ if [ "${{ matrix.isa }}" == "x86-64-v4" ] && [ "${avx512}" != "yes" ]; then
163
+ echo "emulate=yes" >> $GITHUB_OUTPUT
164
+ echo "::notice::No AVX-512 on this runner: test-vec runs under Intel SDE, which emulates it; the other tests are not run"
165
+ fi
166
+
167
+ # Intel SDE 10.13.1, checked against Intel's SHA256
168
+ - name: Install Intel SDE
169
+ if: steps.cpu.outputs.emulate == 'yes'
170
+ run: |
171
+ curl -sSL --retry 3 -o "$RUNNER_TEMP/sde.tar.xz" https://media.githubusercontent.com/media/petarpetrovt/setup-sde/dfe773d77ce97b3da48d34ff9e6ff45a774ff4ff/binaries/sde-external-10.13.1-2026-07-28-lin.tar.xz
172
+ echo "94e97d623fec54385686e1e7ba65ebc9941748c05ee451423948334892bf2b50 $RUNNER_TEMP/sde.tar.xz" | sha256sum -c -
173
+ mkdir -p "$RUNNER_TEMP/sde"
174
+ tar -xJf "$RUNNER_TEMP/sde.tar.xz" -C "$RUNNER_TEMP/sde" --strip-components=1
175
+
176
+ - name: Build project
177
+ run: |
178
+ target=
179
+ if [ "${{ steps.cpu.outputs.emulate }}" == "yes" ]; then
180
+ target=bin/test-vec
181
+ fi
182
+ make -j$(getconf _NPROCESSORS_ONLN) ${target} CXX="${{ matrix.compiler }}" CXXFLAGS="${CPPFLAGS} ${{ matrix.optflag }} -march=${{ matrix.isa }} -DSCTL_QUAD_T=__float128"
183
+
184
+ - name: Run tests
185
+ run: |
186
+ if [ "${{ steps.cpu.outputs.emulate }}" == "yes" ]; then
187
+ SCTL_TESTS=test-vec SCTL_TEST_RUNNER="$RUNNER_TEMP/sde/sde64 -icx --" bash .github/run-tests.sh
188
+ else
189
+ bash .github/run-tests.sh
190
+ fi
@@ -7,12 +7,12 @@ on:
7
7
 
8
8
  jobs:
9
9
  build:
10
- runs-on: ubuntu-latest
10
+ runs-on: ubuntu-24.04
11
11
 
12
12
  steps:
13
13
  # Step 1: Checkout the repository
14
14
  - name: Checkout repository
15
- uses: actions/checkout@v3
15
+ uses: actions/checkout@v7
16
16
 
17
17
  # Step 2: Compile the project
18
18
  - name: Compile
@@ -12,18 +12,13 @@ endif
12
12
 
13
13
  OS = $(shell uname -s)
14
14
  ifeq "$(OS)" "Darwin"
15
- CXXFLAGS += -g -rdynamic -Wl,-no_pie # for stack trace (on Mac)
15
+ CXXFLAGS += -g -rdynamic # for stack trace
16
16
  else
17
17
  CXXFLAGS += -gdwarf-4 -g -rdynamic # for stack trace
18
- CXXFLAGS += -ldl # dladdr() in stacktrace.h (libc on glibc >=2.34, libdl otherwise)
18
+ CXXFLAGS += -ldl # dladdr(), for glibc < 2.34
19
19
  endif
20
20
 
21
- # GCC `-march=native` on Sapphire Rapids and newer Intel CPUs emits AVX-512-FP16
22
- # instructions (e.g. `vmovw`) that pre-2.38 binutils' system assembler can't
23
- # decode. Disable just the FP16 subset; the rest of -march=native is fine. If a
24
- # newer binutils is available (e.g. `module load binutils/2.43.1`), the user can
25
- # remove this flag manually. macOS clang doesn't emit avx512fp16 and doesn't
26
- # recognise the flag on Apple Silicon — skip there.
21
+ # AVX-512-FP16 of -march=native (Sapphire Rapids), which binutils before 2.38 can't assemble
27
22
  ifneq "$(OS)" "Darwin"
28
23
  CXXFLAGS += -mno-avx512fp16
29
24
  endif
@@ -33,10 +28,15 @@ CXXFLAGS += -DSCTL_GLOBAL_MEM_BUFF=0 # Global memory buffer size in MB
33
28
  CXXFLAGS += -DSCTL_PROFILE=5 -DSCTL_VERBOSE # Enable profiling
34
29
  CXXFLAGS += -DSCTL_SIG_HANDLER # Enable SCTL stack trace
35
30
 
36
- CXXFLAGS += -DSCTL_QUAD_T=__float128 # Enable quadruple precision
31
+ CXXFLAGS += -DSCTL_QUAD_T=__float128 # Enable quadruple precision (x86, or GCC on Apple silicon)
32
+
33
+ #CXXFLAGS += -DSCTL_MAX_DEPTH=20 # Morton/Tree depth limit
37
34
 
38
35
  #CXXFLAGS += -DSCTL_HAVE_MPI #use MPI
39
36
 
37
+ #CXXFLAGS += -DSCTL_COMM_PTRACER # allow direct reads; exposes rank memory to the same user
38
+ #CXXFLAGS += -DSCTL_COMM_NO_DIRECT # disable direct reads (overrides the above)
39
+
40
40
  CXXFLAGS += -lblas -DSCTL_HAVE_BLAS # use BLAS
41
41
  CXXFLAGS += -llapack -DSCTL_HAVE_LAPACK # use LAPACK
42
42
  #CXXFLAGS += -qmkl -DSCTL_HAVE_BLAS -DSCTL_HAVE_LAPACK -DSCTL_HAVE_FFTW3_MKL # use MKL BLAS, LAPACK and FFTW (Intel compiler)
@@ -50,13 +50,14 @@ CXXFLAGS += -lfftw3l -DSCTL_HAVE_FFTWL
50
50
  #CXXFLAGS += -lmvec -lm -DSCTL_HAVE_LIBMVEC
51
51
  #CXXFLAGS += -DSCTL_HAVE_SVML
52
52
 
53
+ #CXXFLAGS += -I$(LIBXSMM_DIR)/include -L$(LIBXSMM_DIR)/lib -l:libxsmm.a -lpthread -lrt -ldl -lm -DSCTL_HAVE_LIBXSMM # use LIBXSMM for SmallGEMM
54
+
53
55
  #CXXFLAGS += -I${PETSC_DIR}/include -I${PETSC_DIR}/../include -DSCTL_HAVE_PETSC
54
56
  #LDLIBS += -L${PETSC_DIR}/lib -lpetsc
55
57
 
56
58
  #PVFMM_INC_DIR = ../include
57
59
  #CXXFLAGS += -DSCTL_HAVE_PVFMM -I$(PVFMM_INC_DIR)
58
60
 
59
-
60
61
  RM = rm -f
61
62
  MKDIRS = mkdir -p
62
63
 
@@ -71,6 +72,7 @@ TARGET_BIN = \
71
72
  $(BINDIR)/test-boundary_integral \
72
73
  $(BINDIR)/test-cheb_utils \
73
74
  $(BINDIR)/test-fft-fallback \
75
+ $(BINDIR)/test-function-table \
74
76
  $(BINDIR)/test-generic-kernel \
75
77
  $(BINDIR)/test-intrin-wrapper \
76
78
  $(BINDIR)/test-iterator \
@@ -93,15 +95,17 @@ TARGET_BIN = \
93
95
  $(BINDIR)/test-linear-solver \
94
96
  $(BINDIR)/test-ode-solver \
95
97
  $(BINDIR)/test-pt-tree \
98
+ $(BINDIR)/test-sort-scatter \
96
99
  $(BINDIR)/test-quadrule \
97
100
  $(BINDIR)/test-sph-harm \
98
101
  $(BINDIR)/test-tensor \
99
102
  $(BINDIR)/test-vec \
100
- $(BINDIR)/test-quad-elem \
101
103
  $(BINDIR)/test-scratch-pool \
102
- $(BINDIR)/test-scratch-pool-perf
104
+ $(BINDIR)/test-scratch-pool-perf \
105
+ $(BINDIR)/test-small-gemm \
106
+ $(BINDIR)/test-quad-elem
103
107
 
104
- .PHONY: all test clean
108
+ .PHONY: all gpu test clean
105
109
 
106
110
  all : $(TARGET_BIN)
107
111
 
@@ -112,9 +116,39 @@ ifeq "$(OS)" "Darwin"
112
116
  /usr/bin/dsymutil $@ -o $@.dSYM
113
117
  endif
114
118
 
119
+ # link-only flags of CXXFLAGS, left out of compiles (clang warns of them)
120
+ LINK_ONLY_FLAGS = -l% -L% -Wl,% -rdynamic
121
+
115
122
  $(OBJDIR)/%.o: $(SRCDIR)/%.cpp
116
123
  -@$(MKDIRS) $(dir $@)
117
- $(CXX) $(CXXFLAGS) -I$(INCDIR) -c $^ -o $@
124
+ $(CXX) $(filter-out $(LINK_ONLY_FLAGS),$(CXXFLAGS)) -MMD -MP -I$(INCDIR) -c $< -o $@
125
+
126
+ # header dependencies (-MMD -MP)
127
+ -include $(wildcard $(OBJDIR)/*.d)
128
+
129
+ # keep the objects, which the dependency files name
130
+ .SECONDARY: $(patsubst $(BINDIR)/%,$(OBJDIR)/%.o,$(TARGET_BIN))
131
+
132
+ # GPU tree: needs CUDA and a CUDA-aware MPI (not in `all`)
133
+ NVCC = nvcc -ccbin mpicxx
134
+ NVCCFLAGS = -x cu -std=c++17 -O3 -arch=native -rdc=true --expt-relaxed-constexpr -Xcompiler "-fopenmp" \
135
+ -DSCTL_HAVE_MPI -DSCTL_MAX_DEPTH=20 -DTHRUST_HOST_SYSTEM=THRUST_HOST_SYSTEM_OMP
136
+ NVCCLIBS = -ldl
137
+
138
+ GPU_BIN = \
139
+ $(BINDIR)/test-device-scratch \
140
+ $(BINDIR)/test-gpu-tree \
141
+ $(BINDIR)/test-gpu-sort-scatter \
142
+ $(BINDIR)/example-gpu-tree
143
+
144
+ gpu: $(GPU_BIN)
145
+
146
+ GPU_DEPS = $(wildcard $(INCDIR)/*.hpp $(INCDIR)/sctl/*.hpp $(INCDIR)/sctl/*.txx \
147
+ $(INCDIR)/sctl/experimental/*.hpp $(INCDIR)/sctl/experimental/*.txx)
148
+
149
+ $(BINDIR)/%: $(SRCDIR)/%.cu $(GPU_DEPS)
150
+ -@$(MKDIRS) $(dir $@)
151
+ $(NVCC) $(NVCCFLAGS) -I$(INCDIR) $< $(NVCCLIBS) -o $@
118
152
 
119
153
  test: $(TARGET_BIN)
120
154
  ./$(BINDIR)/test
@@ -122,6 +156,7 @@ test: $(TARGET_BIN)
122
156
  ./$(BINDIR)/test-boundary_integral
123
157
  ./$(BINDIR)/test-cheb_utils
124
158
  ./$(BINDIR)/test-fft-fallback
159
+ ./$(BINDIR)/test-function-table
125
160
  ./$(BINDIR)/test-generic-kernel
126
161
  ./$(BINDIR)/test-intrin-wrapper
127
162
  ./$(BINDIR)/test-iterator
@@ -144,12 +179,14 @@ test: $(TARGET_BIN)
144
179
  ./$(BINDIR)/test-linear-solver
145
180
  ./$(BINDIR)/test-ode-solver
146
181
  ./$(BINDIR)/test-pt-tree
182
+ ./$(BINDIR)/test-sort-scatter
147
183
  ./$(BINDIR)/test-quadrule
148
184
  ./$(BINDIR)/test-sph-harm
149
185
  ./$(BINDIR)/test-tensor
150
186
  ./$(BINDIR)/test-vec
151
- ./$(BINDIR)/test-quad-elem
152
187
  ./$(BINDIR)/test-scratch-pool
188
+ ./$(BINDIR)/test-small-gemm
189
+ ./$(BINDIR)/test-quad-elem
153
190
 
154
191
  clean:
155
192
  $(RM) -r $(BINDIR)/* $(OBJDIR)/*
@@ -11,6 +11,8 @@
11
11
 
12
12
  The only requirement to use SCTL is a working C++17 compliant compiler with OpenMP 4.0 support. It has been tested with GCC-9 and newer.
13
13
 
14
+ **GCC 14 and newer on AArch64 (ARM, including Apple silicon):** compile with `-mearly-ra=none`. GCC's early register allocator for vector registers can assign one register to two values in use at the same time, which gave wrong results in `Vec` at `-O3` with GCC 14. GCC 15 and 16 have the same bug, hidden in the cases found so far. GCC 11 to 13 reject the flag.
15
+
14
16
  ## Getting Started
15
17
 
16
18
  To get started, download the latest version of SCTL from the [SCTL GitHub](https://github.com/dmalhotra/SCTL).
@@ -27,6 +29,8 @@ Since SCTL is a header-only library, it does not require compilation or installa
27
29
 
28
30
  Ensure the compiler can locate the header file by providing the path to `SCTL_ROOT/include` using the flag `-I ${SCTL_ROOT}/include`.
29
31
 
32
+ The included `Makefile` builds the tests (`make test`). On Apple silicon with Homebrew: `CPATH=/opt/homebrew/include LIBRARY_PATH=/opt/homebrew/lib make CXX=g++-15`.
33
+
30
34
  ## Optional Dependencies
31
35
 
32
36
  The following libraries can be optionally used when available. If not available, SCTL uses its own implementation which may be slower.
@@ -50,7 +54,7 @@ The following compiler flags can be used to enable or disable specific features
50
54
  - `-DSCTL_PROFILE=<level>`: Enable [profiling](include/sctl/profile.hpp).
51
55
  - `-DSCTL_VERBOSE`: Enable verbose [profiling](include/sctl/profile.hpp) output.
52
56
  - `-DSCTL_SIG_HANDLER`: Enable [stack trace](include/sctl/stacktrace.h). On Linux with glibc < 2.34, link with `-ldl` (newer glibc has it merged into libc).
53
- - `-DSCTL_QUAD_T`: Enable support for [quad-precision type](include/sctl/math_utils.hpp).
57
+ - `-DSCTL_QUAD_T=<type>`: Enable support for [quad-precision type](include/sctl/math_utils.hpp), e.g. `__float128` on x86 and with GCC on Apple silicon.
54
58
 
55
59
  ## Features and Capabilities
56
60
 
@@ -72,6 +76,7 @@ The following list outlines the primary features and capabilities provided by th
72
76
  - [ChebQuadRule, LegQuadRule](include/sctl/quadrule.hpp): Clenshaw-Curtis and Gauss-Legendre quadrature rules.
73
77
  - [InterpQuadRule](include/sctl/quadrule.hpp): Generating special quadrature rules.
74
78
  - [Tree, PtTree](include/sctl/tree.hpp), [Morton](include/sctl/morton.hpp): Morton order based N-dimensional parallel tree structure.
79
+ - [SortScatter](include/sctl/sort-scatter.hpp): keys sorted into a rank-partitioned order, kept together with the permutation to and from the caller's order; the trees move particle data with it.
75
80
 
76
81
  - **Spectral Methods**:
77
82
  Methods for spectral representations and transformations.
@@ -105,8 +110,12 @@ The following list outlines the primary features and capabilities provided by th
105
110
  - [Stacktrace utility](include/sctl/stacktrace.h): Prints stack traces for debugging.
106
111
  - [GEMM, SVD (unoptimized)](include/sctl/mat_utils.hpp): Provides basic implementations of GEMM and SVD operations.
107
112
 
113
+ - **Experimental**:
114
+ Components whose interfaces may still change.
115
+
116
+ - [GPUTree, PtTree](include/sctl/experimental/gpu-tree.hpp): The `Tree`/`PtTree` interface on a thrust backend, OpenMP host or CUDA device, with CUDA-aware MPI (`make gpu`).
117
+
108
118
  - **Legacy (Unmaintained)**:
109
119
  Older functionalities that are no longer actively maintained.
110
120
 
111
- - [Boundary quadrature](include/sctl/boundary_quadrature.hpp): Boundary integrals on quad-patches using hedgehog quadrature.
112
121
  - [ChebBasis](include/sctl/cheb_utils.hpp): Tensor product Chebyshev basis for general-dimension computations.