virtual-casing 0.2.2__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.2 → virtual_casing-0.3.0}/.github/workflows/test.yml +11 -2
  2. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/.github/workflows/wheel.yml +13 -4
  3. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/CMakeLists.txt +35 -1
  4. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/Makefile +5 -0
  5. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/PKG-INFO +7 -2
  6. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/README.md +4 -0
  7. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/.github/run-tests.sh +17 -0
  8. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/.github/workflows/build-test.yml +190 -0
  9. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/.github/workflows/codecov.yml +2 -2
  10. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/Makefile +52 -15
  11. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/README.md +11 -2
  12. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/convergence.svg +621 -0
  13. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/cubed-sphere.svg +728 -0
  14. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-1-foot.svg +77 -0
  15. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-2-split.svg +65 -0
  16. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-3-bisect.svg +146 -0
  17. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-4-order.svg +191 -0
  18. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/near-5-pipeline.svg +545 -0
  19. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/scaling.svg +300 -0
  20. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-1-split.svg +188 -0
  21. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-2-collapse.svg +251 -0
  22. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-3-rules.svg +299 -0
  23. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/self-4-pipeline.svg +533 -0
  24. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/Makefile +16 -0
  25. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/convergence.tex +29 -0
  26. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/cubed-sphere.tex +228 -0
  27. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/convergence-genoa.dat +5 -0
  28. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/genoa-96.txt +140 -0
  29. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/icelake-64.txt +134 -0
  30. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/rome-128.txt +140 -0
  31. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-laplace.dat +9 -0
  32. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-stokes.dat +9 -0
  33. 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
  34. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-1-foot.tex +24 -0
  35. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-2-split.tex +28 -0
  36. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-3-bisect.tex +32 -0
  37. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-4-order.tex +26 -0
  38. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/near-5-pipeline.tex +32 -0
  39. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/results.py +184 -0
  40. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/scaling.tex +24 -0
  41. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-1-split.tex +38 -0
  42. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-2-collapse.tex +39 -0
  43. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-3-rules.tex +29 -0
  44. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element/src/self-4-pipeline.tex +30 -0
  45. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/doc/algorithms/quad-element.rst +399 -0
  46. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/doxygen/index.rst +0 -1
  47. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/kernel_functions.rst +2 -2
  48. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/index.rst +15 -2
  49. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/doc/tutorial/index.rst +0 -1
  50. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/boundary_integral.hpp +9 -8
  51. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/boundary_integral.txx +196 -145
  52. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/comm.hpp +233 -39
  53. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/comm.txx +898 -303
  54. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/common.hpp +4 -2
  55. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/alpert_quadr.cpp +169 -0
  56. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/alpert_quadr.hpp +59 -0
  57. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/device_scratch.hpp +241 -0
  58. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/device_scratch.txx +476 -0
  59. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/gpu-tree.hpp +433 -0
  60. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/gpu-tree.txx +2642 -0
  61. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/gpu-vector.hpp +86 -0
  62. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.cpp +2364 -0
  63. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.hpp +260 -0
  64. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/sort-scatter.hpp +145 -0
  65. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/experimental/sort-scatter.txx +383 -0
  66. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/fmm-wrapper.hpp +21 -2
  67. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fmm-wrapper.txx +99 -49
  68. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/function-table.hpp +64 -0
  69. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/function-table.txx +383 -0
  70. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/generic-kernel.hpp +21 -1
  71. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/generic-kernel.txx +38 -31
  72. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/intrin-wrapper.hpp +7922 -0
  73. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/iterator.hpp +61 -176
  74. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/iterator.txx +41 -124
  75. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/kernel_functions.hpp +21 -9
  76. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lagrange-interp.txx +1 -1
  77. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/lin-solve.txx +3 -3
  78. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/mat_utils.txx +38 -10
  79. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/math_utils.hpp +13 -2
  80. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/math_utils.txx +791 -0
  81. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/matrix.hpp +23 -15
  82. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/matrix.txx +58 -39
  83. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/mem_mgr.txx +4 -5
  84. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/morton.hpp +74 -7
  85. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/morton.txx +94 -40
  86. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/ode-solver.txx +1 -1
  87. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/ompUtils.hpp +96 -7
  88. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/ompUtils.txx +235 -10
  89. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/profile.hpp +27 -0
  90. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/profile.txx +99 -11
  91. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/quadrule.txx +1 -1
  92. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/scratch_pool.hpp +76 -2
  93. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/scratch_pool.txx +78 -16
  94. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/small_gemm.hpp +86 -0
  95. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/small_gemm.txx +514 -0
  96. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/sort-scatter.hpp +157 -0
  97. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/sort-scatter.txx +412 -0
  98. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/sph_harm.txx +9 -23
  99. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/sse2neon.h +32 -21
  100. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/tensor.hpp +19 -5
  101. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/tensor.txx +17 -10
  102. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/include/sctl/tree.hpp +71 -22
  103. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/tree.txx +862 -768
  104. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/vec-test.hpp +1410 -0
  105. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/vec.hpp +878 -0
  106. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/include/sctl/vec.txx +838 -0
  107. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vector.hpp +2 -1
  108. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vector.txx +37 -25
  109. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl.hpp +8 -1
  110. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/bench-cubed-sphere.cpp +473 -0
  111. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/example-gpu-tree.cu +23 -0
  112. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-boundary_integral.cpp +1 -2
  113. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-comm.cpp +106 -1
  114. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-device-scratch.cu +125 -0
  115. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-fft-fallback.cpp +1 -6
  116. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-function-table.cpp +88 -0
  117. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-gpu-sort-scatter.cu +32 -0
  118. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-gpu-tree.cu +775 -0
  119. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-intrin-wrapper.cpp +37 -1
  120. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-linear-solver.cpp +1 -1
  121. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-mat_utils.cpp +98 -1
  122. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-math_utils.cpp +68 -0
  123. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-matrix.cpp +54 -0
  124. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-morton.cpp +12 -7
  125. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-ompUtils.cpp +321 -0
  126. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-profile.cpp +42 -1
  127. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-pt-tree.cpp +158 -0
  128. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-quad-elem.cpp +1606 -0
  129. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-scratch-pool-perf.cpp +3 -3
  130. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-scratch-pool.cpp +77 -3
  131. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-small-gemm.cpp +267 -0
  132. virtual_casing-0.2.2/extern/SCTL/src/test-pt-tree.cpp → virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-sort-scatter.cpp +2 -4
  133. virtual_casing-0.3.0/extern/BIEST/extern/SCTL/src/test-utils.hpp +99 -0
  134. {virtual_casing-0.2.2 → virtual_casing-0.3.0/extern/BIEST}/extern/SCTL/src/test-vector.cpp +42 -1
  135. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-vtudata.cpp +1 -2
  136. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test.cpp +1 -1
  137. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/bie_solvers.hpp +11 -5
  138. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/bie_solvers.txx +62 -197
  139. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/boundary_integ_op.hpp +8 -3
  140. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/boundary_integ_op.txx +6 -3
  141. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/kernel.hpp +65 -39
  142. virtual_casing-0.3.0/extern/BIEST/include/biest/offsurface_op.hpp +154 -0
  143. virtual_casing-0.3.0/extern/BIEST/include/biest/offsurface_op.txx +617 -0
  144. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface_op.txx +22 -10
  145. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/vacuum-field.hpp +2 -2
  146. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/vacuum-field.txx +21 -54
  147. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest.hpp +1 -0
  148. virtual_casing-0.3.0/extern/SCTL/.github/run-tests.sh +17 -0
  149. virtual_casing-0.3.0/extern/SCTL/.github/workflows/build-test.yml +190 -0
  150. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/.github/workflows/codecov.yml +2 -2
  151. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/Makefile +52 -15
  152. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/README.md +11 -2
  153. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/convergence.svg +621 -0
  154. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/cubed-sphere.svg +728 -0
  155. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-1-foot.svg +77 -0
  156. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-2-split.svg +65 -0
  157. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-3-bisect.svg +146 -0
  158. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-4-order.svg +191 -0
  159. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/near-5-pipeline.svg +545 -0
  160. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/scaling.svg +300 -0
  161. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-1-split.svg +188 -0
  162. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-2-collapse.svg +251 -0
  163. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-3-rules.svg +299 -0
  164. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/self-4-pipeline.svg +533 -0
  165. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/Makefile +16 -0
  166. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/convergence.tex +29 -0
  167. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/cubed-sphere.tex +228 -0
  168. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/convergence-genoa.dat +5 -0
  169. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/genoa-96.txt +140 -0
  170. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/icelake-64.txt +134 -0
  171. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/rome-128.txt +140 -0
  172. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-laplace.dat +9 -0
  173. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-genoa-stokes.dat +9 -0
  174. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/data/scaling-mpi-tol1e-3-genoa-96-7204544.txt +338 -0
  175. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-1-foot.tex +24 -0
  176. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-2-split.tex +28 -0
  177. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-3-bisect.tex +32 -0
  178. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-4-order.tex +26 -0
  179. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/near-5-pipeline.tex +32 -0
  180. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/results.py +184 -0
  181. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/scaling.tex +24 -0
  182. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-1-split.tex +38 -0
  183. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-2-collapse.tex +39 -0
  184. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-3-rules.tex +29 -0
  185. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element/src/self-4-pipeline.tex +30 -0
  186. virtual_casing-0.3.0/extern/SCTL/doc/algorithms/quad-element.rst +399 -0
  187. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/index.rst +0 -1
  188. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/kernel_functions.rst +2 -2
  189. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/index.rst +15 -2
  190. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/index.rst +0 -1
  191. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/boundary_integral.hpp +9 -8
  192. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/boundary_integral.txx +196 -145
  193. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/comm.hpp +233 -39
  194. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/comm.txx +898 -303
  195. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/common.hpp +4 -2
  196. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/alpert_quadr.cpp +169 -0
  197. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/alpert_quadr.hpp +59 -0
  198. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/device_scratch.hpp +241 -0
  199. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/device_scratch.txx +476 -0
  200. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/gpu-tree.hpp +433 -0
  201. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/gpu-tree.txx +2642 -0
  202. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/gpu-vector.hpp +86 -0
  203. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/quad_element.cpp +2364 -0
  204. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/quad_element.hpp +260 -0
  205. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/sort-scatter.hpp +145 -0
  206. virtual_casing-0.3.0/extern/SCTL/include/sctl/experimental/sort-scatter.txx +383 -0
  207. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fmm-wrapper.hpp +21 -2
  208. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fmm-wrapper.txx +99 -49
  209. virtual_casing-0.3.0/extern/SCTL/include/sctl/function-table.hpp +64 -0
  210. virtual_casing-0.3.0/extern/SCTL/include/sctl/function-table.txx +383 -0
  211. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/generic-kernel.hpp +21 -1
  212. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/generic-kernel.txx +38 -31
  213. virtual_casing-0.3.0/extern/SCTL/include/sctl/intrin-wrapper.hpp +7922 -0
  214. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/iterator.hpp +61 -176
  215. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/iterator.txx +41 -124
  216. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/kernel_functions.hpp +21 -9
  217. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lagrange-interp.txx +1 -1
  218. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lin-solve.txx +3 -3
  219. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mat_utils.txx +38 -10
  220. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/math_utils.hpp +13 -2
  221. virtual_casing-0.3.0/extern/SCTL/include/sctl/math_utils.txx +791 -0
  222. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/matrix.hpp +23 -15
  223. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/matrix.txx +58 -39
  224. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mem_mgr.txx +4 -5
  225. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/morton.hpp +74 -7
  226. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/morton.txx +94 -40
  227. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ode-solver.txx +1 -1
  228. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ompUtils.hpp +96 -7
  229. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ompUtils.txx +235 -10
  230. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/profile.hpp +27 -0
  231. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/profile.txx +99 -11
  232. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/quadrule.txx +1 -1
  233. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/scratch_pool.hpp +76 -2
  234. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/scratch_pool.txx +78 -16
  235. virtual_casing-0.3.0/extern/SCTL/include/sctl/small_gemm.hpp +86 -0
  236. virtual_casing-0.3.0/extern/SCTL/include/sctl/small_gemm.txx +514 -0
  237. virtual_casing-0.3.0/extern/SCTL/include/sctl/sort-scatter.hpp +157 -0
  238. virtual_casing-0.3.0/extern/SCTL/include/sctl/sort-scatter.txx +412 -0
  239. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/sph_harm.txx +9 -23
  240. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/sse2neon.h +32 -21
  241. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tensor.hpp +19 -5
  242. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tensor.txx +17 -10
  243. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tree.hpp +71 -22
  244. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/tree.txx +862 -768
  245. virtual_casing-0.3.0/extern/SCTL/include/sctl/vec-test.hpp +1410 -0
  246. virtual_casing-0.3.0/extern/SCTL/include/sctl/vec.hpp +878 -0
  247. virtual_casing-0.3.0/extern/SCTL/include/sctl/vec.txx +838 -0
  248. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vector.hpp +2 -1
  249. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vector.txx +37 -25
  250. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl.hpp +8 -1
  251. virtual_casing-0.3.0/extern/SCTL/src/bench-cubed-sphere.cpp +473 -0
  252. virtual_casing-0.3.0/extern/SCTL/src/example-gpu-tree.cu +23 -0
  253. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-boundary_integral.cpp +1 -2
  254. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-comm.cpp +106 -1
  255. virtual_casing-0.3.0/extern/SCTL/src/test-device-scratch.cu +125 -0
  256. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-fft-fallback.cpp +1 -6
  257. virtual_casing-0.3.0/extern/SCTL/src/test-function-table.cpp +88 -0
  258. virtual_casing-0.3.0/extern/SCTL/src/test-gpu-sort-scatter.cu +32 -0
  259. virtual_casing-0.3.0/extern/SCTL/src/test-gpu-tree.cu +775 -0
  260. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-intrin-wrapper.cpp +37 -1
  261. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-linear-solver.cpp +1 -1
  262. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-mat_utils.cpp +98 -1
  263. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-math_utils.cpp +68 -0
  264. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-matrix.cpp +54 -0
  265. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-morton.cpp +12 -7
  266. virtual_casing-0.3.0/extern/SCTL/src/test-ompUtils.cpp +321 -0
  267. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-profile.cpp +42 -1
  268. virtual_casing-0.3.0/extern/SCTL/src/test-pt-tree.cpp +158 -0
  269. virtual_casing-0.3.0/extern/SCTL/src/test-quad-elem.cpp +1606 -0
  270. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-scratch-pool-perf.cpp +3 -3
  271. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-scratch-pool.cpp +77 -3
  272. virtual_casing-0.3.0/extern/SCTL/src/test-small-gemm.cpp +267 -0
  273. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/src/test-pt-tree.cpp → virtual_casing-0.3.0/extern/SCTL/src/test-sort-scatter.cpp +2 -4
  274. virtual_casing-0.3.0/extern/SCTL/src/test-utils.hpp +99 -0
  275. {virtual_casing-0.2.2/extern/BIEST → virtual_casing-0.3.0}/extern/SCTL/src/test-vector.cpp +42 -1
  276. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-vtudata.cpp +1 -2
  277. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test.cpp +1 -1
  278. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/include/virtual-casing.hpp +3 -11
  279. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/include/virtual-casing.txx +7 -28
  280. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/pyproject.toml +2 -1
  281. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/__init__.py +6 -0
  282. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/_vc_baseline.pyi +2 -14
  283. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/python.cpp +2 -14
  284. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/test/test.py +56 -6
  285. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/test/virtual-casing.cpp +3 -3
  286. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/.github/workflows/build-test.yml +0 -82
  287. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/doc/doxygen/boundary_quadrature.rst +0 -8
  288. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/boundary_quadrature.hpp +0 -1907
  289. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.cpp +0 -498
  290. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/experimental/quad_element.hpp +0 -190
  291. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/intrin-wrapper.hpp +0 -3083
  292. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/math_utils.txx +0 -503
  293. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/vec-test.hpp +0 -457
  294. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/vec.hpp +0 -397
  295. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/include/sctl/vec.txx +0 -420
  296. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/src/test-ompUtils.cpp +0 -177
  297. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/src/test-quad-elem.cpp +0 -95
  298. virtual_casing-0.2.2/extern/BIEST/extern/SCTL/src/test-utils.hpp +0 -45
  299. virtual_casing-0.2.2/extern/SCTL/.github/workflows/build-test.yml +0 -82
  300. virtual_casing-0.2.2/extern/SCTL/doc/doxygen/boundary_quadrature.rst +0 -8
  301. virtual_casing-0.2.2/extern/SCTL/include/sctl/boundary_quadrature.hpp +0 -1907
  302. virtual_casing-0.2.2/extern/SCTL/include/sctl/experimental/quad_element.cpp +0 -498
  303. virtual_casing-0.2.2/extern/SCTL/include/sctl/experimental/quad_element.hpp +0 -190
  304. virtual_casing-0.2.2/extern/SCTL/include/sctl/intrin-wrapper.hpp +0 -3083
  305. virtual_casing-0.2.2/extern/SCTL/include/sctl/math_utils.txx +0 -503
  306. virtual_casing-0.2.2/extern/SCTL/include/sctl/vec-test.hpp +0 -457
  307. virtual_casing-0.2.2/extern/SCTL/include/sctl/vec.hpp +0 -397
  308. virtual_casing-0.2.2/extern/SCTL/include/sctl/vec.txx +0 -420
  309. virtual_casing-0.2.2/extern/SCTL/src/test-ompUtils.cpp +0 -177
  310. virtual_casing-0.2.2/extern/SCTL/src/test-quad-elem.cpp +0 -95
  311. virtual_casing-0.2.2/extern/SCTL/src/test-utils.hpp +0 -45
  312. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/.gitignore +0 -0
  313. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/.gitmodules +0 -0
  314. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/LICENSE +0 -0
  315. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/MANIFEST.in +0 -0
  316. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/cmake/FindFFTW.cmake +0 -0
  317. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/.clang-format +0 -0
  318. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/.gitignore +0 -0
  319. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/.gitmodules +0 -0
  320. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/LICENSE +0 -0
  321. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/Makefile +0 -0
  322. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/README.md +0 -0
  323. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/BetaScan_run_20.Bxyz.txt +0 -0
  324. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/Makefile +0 -0
  325. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/ellipse.coils +0 -0
  326. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/applications/virtual-casing/virtual-casing.cpp +0 -0
  327. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.clang-format +0 -0
  328. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.gitattributes +0 -0
  329. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.gitignore +0 -0
  330. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/.readthedocs.yaml +0 -0
  331. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/LICENSE +0 -0
  332. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/Doxyfile +0 -0
  333. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/Makefile +0 -0
  334. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/ackn.rst +0 -0
  335. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/conf.py +0 -0
  336. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/boundary_integral.rst +0 -0
  337. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/cheb_utils.rst +0 -0
  338. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/comm.rst +0 -0
  339. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/common.rst +0 -0
  340. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/fft_wrapper.rst +0 -0
  341. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/fmm-wrapper.rst +0 -0
  342. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/generic-kernel.rst +0 -0
  343. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/iterator.rst +0 -0
  344. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/lagrange-interp.rst +0 -0
  345. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/lin-solve.rst +0 -0
  346. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/mat_utils.rst +0 -0
  347. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/math_utils.rst +0 -0
  348. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/matrix.rst +0 -0
  349. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/mem_mgr.rst +0 -0
  350. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/morton.rst +0 -0
  351. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/ode-solver.rst +0 -0
  352. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/ompUtils.rst +0 -0
  353. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/permutation.rst +0 -0
  354. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/profile.rst +0 -0
  355. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/quadrule.rst +0 -0
  356. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/scratch_pool.rst +0 -0
  357. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/sph_harm.rst +0 -0
  358. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/stacktrace.rst +0 -0
  359. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/static-array.rst +0 -0
  360. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/tensor.rst +0 -0
  361. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/tree.rst +0 -0
  362. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/vec.rst +0 -0
  363. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/vector.rst +0 -0
  364. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/doxygen/vtudata.rst +0 -0
  365. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/requirements.txt +0 -0
  366. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/boundaryintegralop.rst +0 -0
  367. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/comm.rst +0 -0
  368. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/fft.rst +0 -0
  369. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/fmm.rst +0 -0
  370. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/gmres-rsult.txt +0 -0
  371. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/gmres.rst +0 -0
  372. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/interp-quadrule.rst +0 -0
  373. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/kernels.rst +0 -0
  374. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/lagrange-interp.rst +0 -0
  375. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/matrix.rst +0 -0
  376. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/permutation.rst +0 -0
  377. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/profile.rst +0 -0
  378. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/sdc.rst +0 -0
  379. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/tensor.rst +0 -0
  380. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/tree.rst +0 -0
  381. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/vec.rst +0 -0
  382. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/vector.rst +0 -0
  383. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/doc/tutorial/vtudata.rst +0 -0
  384. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/blas.h +0 -0
  385. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/cheb_utils.hpp +0 -0
  386. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fft_wrapper.hpp +0 -0
  387. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/fft_wrapper.txx +0 -0
  388. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lagrange-interp.hpp +0 -0
  389. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lapack.h +0 -0
  390. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/lin-solve.hpp +0 -0
  391. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/mat_utils.hpp +0 -0
  392. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/mem_mgr.hpp +0 -0
  393. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/ode-solver.hpp +0 -0
  394. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/permutation.hpp +0 -0
  395. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/permutation.txx +0 -0
  396. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/quadrule.hpp +0 -0
  397. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/sph_harm.hpp +0 -0
  398. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/stacktrace.h +0 -0
  399. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/static-array.hpp +0 -0
  400. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/static-array.txx +0 -0
  401. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vtudata.hpp +0 -0
  402. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/include/sctl/vtudata.txx +0 -0
  403. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-cheb_utils.cpp +0 -0
  404. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-fft.cpp +0 -0
  405. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-fmm.cpp +0 -0
  406. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-generic-kernel.cpp +0 -0
  407. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-gmres.cpp +0 -0
  408. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-iterator.cpp +0 -0
  409. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-kernel_functions.cpp +0 -0
  410. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-lagrange-interp.cpp +0 -0
  411. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-mem_mgr.cpp +0 -0
  412. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-ode-solver.cpp +0 -0
  413. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-permutation.cpp +0 -0
  414. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-quadrule.cpp +0 -0
  415. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-sph-harm.cpp +0 -0
  416. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-static-array.cpp +0 -0
  417. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-tensor.cpp +0 -0
  418. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/extern/SCTL/src/test-vec.cpp +0 -0
  419. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/LHD-X.mat +0 -0
  420. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/LHD-Y.mat +0 -0
  421. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/LHD-Z.mat +0 -0
  422. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/NCSX +0 -0
  423. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/Quas3-X.mat +0 -0
  424. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/Quas3-Y.mat +0 -0
  425. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/Quas3-Z.mat +0 -0
  426. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/W7X-X.mat +0 -0
  427. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/W7X-Y.mat +0 -0
  428. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/geom/W7X-Z.mat +0 -0
  429. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/mat.hpp +0 -0
  430. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/singular_correction.hpp +0 -0
  431. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface.hpp +0 -0
  432. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface.txx +0 -0
  433. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/include/biest/surface_op.hpp +0 -0
  434. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/double-layer-convergence.cpp +0 -0
  435. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/example1.cpp +0 -0
  436. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/force-free-fields-example.cpp +0 -0
  437. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/quadrature-example.cpp +0 -0
  438. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/table1.cpp +0 -0
  439. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/table3.cpp +0 -0
  440. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/table4.cpp +0 -0
  441. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/table5.cpp +0 -0
  442. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/table6.cpp +0 -0
  443. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/table7.cpp +0 -0
  444. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/BIEST/src/virtual-casing-principle.cpp +0 -0
  445. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/.clang-format +0 -0
  446. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/.gitattributes +0 -0
  447. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/.gitignore +0 -0
  448. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/.readthedocs.yaml +0 -0
  449. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/LICENSE +0 -0
  450. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/Doxyfile +0 -0
  451. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/Makefile +0 -0
  452. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/ackn.rst +0 -0
  453. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/conf.py +0 -0
  454. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/boundary_integral.rst +0 -0
  455. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/cheb_utils.rst +0 -0
  456. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/comm.rst +0 -0
  457. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/common.rst +0 -0
  458. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/fft_wrapper.rst +0 -0
  459. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/fmm-wrapper.rst +0 -0
  460. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/generic-kernel.rst +0 -0
  461. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/iterator.rst +0 -0
  462. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/lagrange-interp.rst +0 -0
  463. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/lin-solve.rst +0 -0
  464. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/mat_utils.rst +0 -0
  465. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/math_utils.rst +0 -0
  466. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/matrix.rst +0 -0
  467. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/mem_mgr.rst +0 -0
  468. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/morton.rst +0 -0
  469. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/ode-solver.rst +0 -0
  470. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/ompUtils.rst +0 -0
  471. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/permutation.rst +0 -0
  472. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/profile.rst +0 -0
  473. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/quadrule.rst +0 -0
  474. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/scratch_pool.rst +0 -0
  475. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/sph_harm.rst +0 -0
  476. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/stacktrace.rst +0 -0
  477. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/static-array.rst +0 -0
  478. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/tensor.rst +0 -0
  479. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/tree.rst +0 -0
  480. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/vec.rst +0 -0
  481. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/vector.rst +0 -0
  482. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/doxygen/vtudata.rst +0 -0
  483. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/requirements.txt +0 -0
  484. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/boundaryintegralop.rst +0 -0
  485. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/comm.rst +0 -0
  486. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/fft.rst +0 -0
  487. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/fmm.rst +0 -0
  488. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/gmres-rsult.txt +0 -0
  489. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/gmres.rst +0 -0
  490. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/interp-quadrule.rst +0 -0
  491. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/kernels.rst +0 -0
  492. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/lagrange-interp.rst +0 -0
  493. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/matrix.rst +0 -0
  494. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/permutation.rst +0 -0
  495. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/profile.rst +0 -0
  496. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/sdc.rst +0 -0
  497. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/tensor.rst +0 -0
  498. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/tree.rst +0 -0
  499. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/vec.rst +0 -0
  500. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/vector.rst +0 -0
  501. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/doc/tutorial/vtudata.rst +0 -0
  502. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/blas.h +0 -0
  503. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/cheb_utils.hpp +0 -0
  504. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fft_wrapper.hpp +0 -0
  505. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/fft_wrapper.txx +0 -0
  506. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lagrange-interp.hpp +0 -0
  507. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lapack.h +0 -0
  508. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/lin-solve.hpp +0 -0
  509. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mat_utils.hpp +0 -0
  510. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/mem_mgr.hpp +0 -0
  511. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/ode-solver.hpp +0 -0
  512. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/permutation.hpp +0 -0
  513. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/permutation.txx +0 -0
  514. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/quadrule.hpp +0 -0
  515. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/sph_harm.hpp +0 -0
  516. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/stacktrace.h +0 -0
  517. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/static-array.hpp +0 -0
  518. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/static-array.txx +0 -0
  519. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vtudata.hpp +0 -0
  520. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/include/sctl/vtudata.txx +0 -0
  521. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-cheb_utils.cpp +0 -0
  522. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-fft.cpp +0 -0
  523. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-fmm.cpp +0 -0
  524. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-generic-kernel.cpp +0 -0
  525. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-gmres.cpp +0 -0
  526. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-iterator.cpp +0 -0
  527. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-kernel_functions.cpp +0 -0
  528. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-lagrange-interp.cpp +0 -0
  529. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-mem_mgr.cpp +0 -0
  530. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-ode-solver.cpp +0 -0
  531. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-permutation.cpp +0 -0
  532. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-quadrule.cpp +0 -0
  533. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-sph-harm.cpp +0 -0
  534. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-static-array.cpp +0 -0
  535. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-tensor.cpp +0 -0
  536. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/extern/SCTL/src/test-vec.cpp +0 -0
  537. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/include/virtual-casing.h +0 -0
  538. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/__init__.pyi +0 -0
  539. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/cpu_features.cpp +0 -0
  540. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/py.typed +0 -0
  541. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/src/virtual-casing.cpp +0 -0
  542. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/test/axisymm.cpp +0 -0
  543. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/test/check_isa.py +0 -0
  544. {virtual_casing-0.2.2 → virtual_casing-0.3.0}/test/virtual-casing-c.c +0 -0
@@ -126,13 +126,22 @@ jobs:
126
126
  python-version: '3.11'
127
127
 
128
128
  - name: Install package and stubgen
129
- run: python -m pip install . "pybind11-stubgen>=2.5" mypy
129
+ run: python -m pip install . "pybind11-stubgen>=3.0,<4" mypy
130
130
 
131
131
  - name: Regenerate stubs and compare
132
132
  run: |
133
133
  # force the variant being introspected: importing two of them into one
134
134
  # process fails, since they register the same pybind11 types
135
- VIRTUAL_CASING_ISA=baseline pybind11-stubgen virtual_casing._vc_baseline -o regenerated
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
+ "
136
145
  # stubgen leaves trailing whitespace in docstrings; the committed copy has
137
146
  # it stripped, so normalise before comparing
138
147
  sed -i 's/[[:space:]]*$//' regenerated/virtual_casing/_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,8 +142,12 @@ 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
 
@@ -131,5 +164,6 @@ target_compile_options(vc_testing PUBLIC "$<$<CXX_COMPILER_ID:PGI>:-Wc,--pending
131
164
  target_include_directories(vc_testing PRIVATE "$<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:${FFTW_INCLUDE_DIRS}>"
132
165
  "include" "extern/SCTL/include" "extern/BIEST/include")
133
166
  target_link_libraries(vc_testing PUBLIC $<$<BOOL:${FFTW_DOUBLE_LIB_FOUND}>:FFTW::Double>
167
+ "$<$<BOOL:${LIBXSMM_FOUND}>:${LIBXSMM_LIBRARIES}>"
134
168
  "$<$<BOOL:${BLAS_FOUND}>:${BLAS_LIBRARIES}>"
135
169
  "$<$<BOOL:${LAPACK_FOUND}>:${LAPACK_LIBRARIES}>" $<$<BOOL:${OpenMP_CXX_FOUND}>:OpenMP::OpenMP_CXX>)
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: virtual_casing
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: Python Wrapper for Virtual Casing
5
5
  Author: Dhairya Malhotra, Matt Landreman, Chris Smiet, Manas Rachh, Antoine Cerfon, Misha Padidar
6
6
  Author-Email: Bharat Medasani <mbkumar@gmail.com>
@@ -16,11 +16,12 @@ Classifier: Programming Language :: Python :: 3.14
16
16
  Classifier: Programming Language :: C++
17
17
  Classifier: Operating System :: OS Independent
18
18
  Project-URL: Repository, https://github.com/hiddenSymmetries/virtual-casing
19
+ Project-URL: Issues, https://github.com/hiddenSymmetries/virtual-casing/issues
19
20
  Requires-Python: >=3.10
20
21
  Provides-Extra: test
21
22
  Requires-Dist: pytest>=6.0; extra == "test"
22
23
  Provides-Extra: dev
23
- Requires-Dist: pybind11-stubgen>=2.5; extra == "dev"
24
+ Requires-Dist: pybind11-stubgen<4,>=3.0; extra == "dev"
24
25
  Requires-Dist: pytest; extra == "dev"
25
26
  Description-Content-Type: text/markdown
26
27
 
@@ -48,6 +49,10 @@ If the above command succeeds, we can go to the next step. Build the ``vc_testin
48
49
 
49
50
  If the compilation is successful, you will have ``vc_testing`` in the ``build`` folder.
50
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
+
51
56
 
52
57
  ### Python package
53
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.