pylibsparseir 0.1.0__cp311-cp311-macosx_15_0_arm64.whl → 0.6.0__cp311-cp311-macosx_15_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pylibsparseir might be problematic. Click here for more details.

Files changed (549) hide show
  1. include/eigen3/Eigen/Cholesky +45 -0
  2. include/eigen3/Eigen/CholmodSupport +48 -0
  3. include/eigen3/Eigen/Core +384 -0
  4. include/eigen3/Eigen/Dense +7 -0
  5. include/eigen3/Eigen/Eigen +2 -0
  6. include/eigen3/Eigen/Eigenvalues +60 -0
  7. include/eigen3/Eigen/Geometry +59 -0
  8. include/eigen3/Eigen/Householder +29 -0
  9. include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  10. include/eigen3/Eigen/Jacobi +32 -0
  11. include/eigen3/Eigen/KLUSupport +41 -0
  12. include/eigen3/Eigen/LU +47 -0
  13. include/eigen3/Eigen/MetisSupport +35 -0
  14. include/eigen3/Eigen/OrderingMethods +70 -0
  15. include/eigen3/Eigen/PaStiXSupport +49 -0
  16. include/eigen3/Eigen/PardisoSupport +35 -0
  17. include/eigen3/Eigen/QR +50 -0
  18. include/eigen3/Eigen/QtAlignedMalloc +39 -0
  19. include/eigen3/Eigen/SPQRSupport +34 -0
  20. include/eigen3/Eigen/SVD +50 -0
  21. include/eigen3/Eigen/Sparse +34 -0
  22. include/eigen3/Eigen/SparseCholesky +37 -0
  23. include/eigen3/Eigen/SparseCore +69 -0
  24. include/eigen3/Eigen/SparseLU +50 -0
  25. include/eigen3/Eigen/SparseQR +36 -0
  26. include/eigen3/Eigen/StdDeque +27 -0
  27. include/eigen3/Eigen/StdList +26 -0
  28. include/eigen3/Eigen/StdVector +27 -0
  29. include/eigen3/Eigen/SuperLUSupport +64 -0
  30. include/eigen3/Eigen/UmfPackSupport +40 -0
  31. include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  32. include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  33. include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  34. include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  35. include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  36. include/eigen3/Eigen/src/Core/Array.h +417 -0
  37. include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  38. include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  39. include/eigen3/Eigen/src/Core/Assign.h +90 -0
  40. include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  41. include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  42. include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  43. include/eigen3/Eigen/src/Core/Block.h +448 -0
  44. include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  45. include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  46. include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  47. include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  48. include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  49. include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  50. include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  51. include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  52. include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  53. include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  54. include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  55. include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  56. include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  57. include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  58. include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  59. include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  60. include/eigen3/Eigen/src/Core/Dot.h +318 -0
  61. include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  62. include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  63. include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  64. include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  65. include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  66. include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  67. include/eigen3/Eigen/src/Core/IO.h +258 -0
  68. include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  69. include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  70. include/eigen3/Eigen/src/Core/Map.h +171 -0
  71. include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  72. include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  73. include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  74. include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  75. include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  76. include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  77. include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  78. include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  79. include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  80. include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  81. include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  82. include/eigen3/Eigen/src/Core/Product.h +191 -0
  83. include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  84. include/eigen3/Eigen/src/Core/Random.h +218 -0
  85. include/eigen3/Eigen/src/Core/Redux.h +515 -0
  86. include/eigen3/Eigen/src/Core/Ref.h +381 -0
  87. include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  88. include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  89. include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  90. include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  91. include/eigen3/Eigen/src/Core/Select.h +164 -0
  92. include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  93. include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  94. include/eigen3/Eigen/src/Core/Solve.h +188 -0
  95. include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  96. include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  97. include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  98. include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  99. include/eigen3/Eigen/src/Core/Stride.h +116 -0
  100. include/eigen3/Eigen/src/Core/Swap.h +68 -0
  101. include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  102. include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  103. include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  104. include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  105. include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  106. include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  107. include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  108. include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  109. include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  110. include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  111. include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  112. include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  113. include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  114. include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  115. include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  116. include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  117. include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  118. include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  119. include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  120. include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  121. include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  122. include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  123. include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  124. include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  125. include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  126. include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  127. include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  128. include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  129. include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  130. include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  131. include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  132. include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  133. include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  134. include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  135. include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  136. include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  137. include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  138. include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  139. include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  140. include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  141. include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  142. include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  143. include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  144. include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  145. include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  146. include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  147. include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  148. include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  149. include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  150. include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  151. include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  152. include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  153. include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  154. include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  155. include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  156. include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  157. include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  158. include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  159. include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  160. include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  161. include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  162. include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  163. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  164. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  165. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  166. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  167. include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  168. include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  169. include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  170. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  171. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  172. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  173. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  174. include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  175. include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  176. include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  177. include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  178. include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  179. include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  180. include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  181. include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  182. include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  183. include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  184. include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  185. include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  186. include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  187. include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  188. include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  189. include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  190. include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  191. include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  192. include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  193. include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  194. include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  195. include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  196. include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  197. include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  198. include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  199. include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  200. include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  201. include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  202. include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  203. include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  204. include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  205. include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  206. include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  207. include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  208. include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  209. include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  210. include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  211. include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  212. include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  213. include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  214. include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  215. include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  216. include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  217. include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  218. include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  219. include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  220. include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  221. include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  222. include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  223. include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  224. include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  225. include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  226. include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  227. include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  228. include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  229. include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  230. include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  231. include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  232. include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  233. include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  234. include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  235. include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  236. include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  237. include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  238. include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  239. include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  240. include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  241. include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  242. include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  243. include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  244. include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  245. include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  246. include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  247. include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  248. include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  249. include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  250. include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  251. include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  252. include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  253. include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  254. include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  255. include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  256. include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  257. include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  258. include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  259. include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  260. include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  261. include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  262. include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  263. include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  264. include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  265. include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  266. include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  267. include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  268. include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  269. include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  270. include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  271. include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  272. include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  273. include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  274. include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  275. include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  276. include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  277. include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  278. include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  279. include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  280. include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  281. include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  282. include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  283. include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  284. include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  285. include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  286. include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  287. include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  288. include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  289. include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  290. include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  291. include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  292. include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  293. include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  294. include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  295. include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  296. include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  297. include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  298. include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  299. include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  300. include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  301. include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  302. include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  303. include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  304. include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  305. include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  306. include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  307. include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  308. include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  309. include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  310. include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  311. include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  312. include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  313. include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  314. include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  315. include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  316. include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  317. include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  318. include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  319. include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  320. include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  321. include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  322. include/eigen3/Eigen/src/misc/Image.h +82 -0
  323. include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  324. include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  325. include/eigen3/Eigen/src/misc/blas.h +440 -0
  326. include/eigen3/Eigen/src/misc/lapack.h +152 -0
  327. include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  328. include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  329. include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  330. include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  331. include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  332. include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  333. include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  334. include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  335. include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  336. include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  337. include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  338. include/eigen3/signature_of_eigen3_matrix_library +1 -0
  339. include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  340. include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  341. include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  342. include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  343. include/eigen3/unsupported/Eigen/BVH +95 -0
  344. include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  345. include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  346. include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  347. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  348. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  349. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  350. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  351. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  352. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  353. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  354. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  355. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  356. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  357. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  358. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  359. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  360. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  361. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  362. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  363. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  364. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  365. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  366. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  367. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  368. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  369. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  370. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  371. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  372. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  373. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  374. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  375. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  376. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  377. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  378. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  379. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  380. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  381. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  382. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  383. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  384. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  385. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  386. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  387. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  388. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  389. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  390. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  391. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  392. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  393. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  394. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  395. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  396. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  397. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  398. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  399. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  400. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  401. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  402. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  403. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  404. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  405. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  406. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  407. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  408. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  409. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  410. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  411. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  412. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  413. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  414. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  415. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  416. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  417. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  418. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  419. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  420. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  421. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  422. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  423. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  424. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  425. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  426. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  427. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  428. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  429. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  430. include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  431. include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  432. include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  433. include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  434. include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  435. include/eigen3/unsupported/Eigen/FFT +419 -0
  436. include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  437. include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  438. include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  439. include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  440. include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  441. include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  442. include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  443. include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  444. include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  445. include/eigen3/unsupported/Eigen/Polynomials +137 -0
  446. include/eigen3/unsupported/Eigen/Skyline +39 -0
  447. include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  448. include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  449. include/eigen3/unsupported/Eigen/Splines +35 -0
  450. include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  451. include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  452. include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  453. include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  454. include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  455. include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  456. include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  457. include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  458. include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  459. include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  460. include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  461. include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  462. include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  463. include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  464. include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  465. include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  466. include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  467. include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  468. include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  469. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  470. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  471. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  472. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  473. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  474. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  475. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  476. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  477. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  478. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  479. include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  480. include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  481. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  482. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  483. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  484. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  485. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  486. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  487. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  488. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  489. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  490. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  491. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  492. include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  493. include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  494. include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  495. include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  496. include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  497. include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  498. include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  499. include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  500. include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  501. include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  502. include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  503. include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  504. include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  505. include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  506. include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  507. include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  508. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  509. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  510. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  511. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  512. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  513. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  514. include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  515. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  516. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  517. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  518. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  519. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  520. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  521. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  522. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  523. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  524. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  525. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  526. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  527. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  528. include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  529. include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  530. include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  531. pylibsparseir/__init__.py +31 -0
  532. pylibsparseir/clean_build_artifacts.py +0 -1
  533. pylibsparseir/core.py +178 -62
  534. pylibsparseir/libsparseir.dylib +0 -0
  535. pylibsparseir-0.6.0.dist-info/METADATA +213 -0
  536. pylibsparseir-0.6.0.dist-info/RECORD +545 -0
  537. {pylibsparseir-0.1.0.dist-info → pylibsparseir-0.6.0.dist-info}/WHEEL +1 -1
  538. pylibsparseir-0.6.0.dist-info/licenses/LICENSE +21 -0
  539. share/eigen3/cmake/Eigen3Config.cmake +37 -0
  540. share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
  541. share/eigen3/cmake/Eigen3Targets.cmake +106 -0
  542. share/eigen3/cmake/UseEigen3.cmake +6 -0
  543. share/pkgconfig/eigen3.pc +9 -0
  544. pylibsparseir/libsparseir.0.4.2.dylib +0 -0
  545. pylibsparseir/libsparseir.0.dylib +0 -0
  546. pylibsparseir-0.1.0.dist-info/METADATA +0 -130
  547. pylibsparseir-0.1.0.dist-info/RECORD +0 -12
  548. pylibsparseir-0.1.0.dist-info/entry_points.txt +0 -2
  549. pylibsparseir-0.1.0.dist-info/top_level.txt +0 -1
@@ -0,0 +1,1025 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
5
+ //
6
+ // This Source Code Form is subject to the terms of the Mozilla
7
+ // Public License v. 2.0. If a copy of the MPL was not distributed
8
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
+
10
+ #ifndef EIGEN_SUPERLUSUPPORT_H
11
+ #define EIGEN_SUPERLUSUPPORT_H
12
+
13
+ namespace Eigen {
14
+
15
+ #if defined(SUPERLU_MAJOR_VERSION) && (SUPERLU_MAJOR_VERSION >= 5)
16
+ #define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE) \
17
+ extern "C" { \
18
+ extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
19
+ char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
20
+ void *, int, SuperMatrix *, SuperMatrix *, \
21
+ FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, \
22
+ GlobalLU_t *, mem_usage_t *, SuperLUStat_t *, int *); \
23
+ } \
24
+ inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A, \
25
+ int *perm_c, int *perm_r, int *etree, char *equed, \
26
+ FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L, \
27
+ SuperMatrix *U, void *work, int lwork, \
28
+ SuperMatrix *B, SuperMatrix *X, \
29
+ FLOATTYPE *recip_pivot_growth, \
30
+ FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr, \
31
+ SuperLUStat_t *stats, int *info, KEYTYPE) { \
32
+ mem_usage_t mem_usage; \
33
+ GlobalLU_t gLU; \
34
+ PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, \
35
+ U, work, lwork, B, X, recip_pivot_growth, rcond, \
36
+ ferr, berr, &gLU, &mem_usage, stats, info); \
37
+ return mem_usage.for_lu; /* bytes used by the factor storage */ \
38
+ }
39
+ #else // version < 5.0
40
+ #define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE) \
41
+ extern "C" { \
42
+ extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
43
+ char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
44
+ void *, int, SuperMatrix *, SuperMatrix *, \
45
+ FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, \
46
+ mem_usage_t *, SuperLUStat_t *, int *); \
47
+ } \
48
+ inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A, \
49
+ int *perm_c, int *perm_r, int *etree, char *equed, \
50
+ FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L, \
51
+ SuperMatrix *U, void *work, int lwork, \
52
+ SuperMatrix *B, SuperMatrix *X, \
53
+ FLOATTYPE *recip_pivot_growth, \
54
+ FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr, \
55
+ SuperLUStat_t *stats, int *info, KEYTYPE) { \
56
+ mem_usage_t mem_usage; \
57
+ PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, \
58
+ U, work, lwork, B, X, recip_pivot_growth, rcond, \
59
+ ferr, berr, &mem_usage, stats, info); \
60
+ return mem_usage.for_lu; /* bytes used by the factor storage */ \
61
+ }
62
+ #endif
63
+
64
+ DECL_GSSVX(s,float,float)
65
+ DECL_GSSVX(c,float,std::complex<float>)
66
+ DECL_GSSVX(d,double,double)
67
+ DECL_GSSVX(z,double,std::complex<double>)
68
+
69
+ #ifdef MILU_ALPHA
70
+ #define EIGEN_SUPERLU_HAS_ILU
71
+ #endif
72
+
73
+ #ifdef EIGEN_SUPERLU_HAS_ILU
74
+
75
+ // similarly for the incomplete factorization using gsisx
76
+ #define DECL_GSISX(PREFIX,FLOATTYPE,KEYTYPE) \
77
+ extern "C" { \
78
+ extern void PREFIX##gsisx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
79
+ char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
80
+ void *, int, SuperMatrix *, SuperMatrix *, FLOATTYPE *, FLOATTYPE *, \
81
+ mem_usage_t *, SuperLUStat_t *, int *); \
82
+ } \
83
+ inline float SuperLU_gsisx(superlu_options_t *options, SuperMatrix *A, \
84
+ int *perm_c, int *perm_r, int *etree, char *equed, \
85
+ FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L, \
86
+ SuperMatrix *U, void *work, int lwork, \
87
+ SuperMatrix *B, SuperMatrix *X, \
88
+ FLOATTYPE *recip_pivot_growth, \
89
+ FLOATTYPE *rcond, \
90
+ SuperLUStat_t *stats, int *info, KEYTYPE) { \
91
+ mem_usage_t mem_usage; \
92
+ PREFIX##gsisx(options, A, perm_c, perm_r, etree, equed, R, C, L, \
93
+ U, work, lwork, B, X, recip_pivot_growth, rcond, \
94
+ &mem_usage, stats, info); \
95
+ return mem_usage.for_lu; /* bytes used by the factor storage */ \
96
+ }
97
+
98
+ DECL_GSISX(s,float,float)
99
+ DECL_GSISX(c,float,std::complex<float>)
100
+ DECL_GSISX(d,double,double)
101
+ DECL_GSISX(z,double,std::complex<double>)
102
+
103
+ #endif
104
+
105
+ template<typename MatrixType>
106
+ struct SluMatrixMapHelper;
107
+
108
+ /** \internal
109
+ *
110
+ * A wrapper class for SuperLU matrices. It supports only compressed sparse matrices
111
+ * and dense matrices. Supernodal and other fancy format are not supported by this wrapper.
112
+ *
113
+ * This wrapper class mainly aims to avoids the need of dynamic allocation of the storage structure.
114
+ */
115
+ struct SluMatrix : SuperMatrix
116
+ {
117
+ SluMatrix()
118
+ {
119
+ Store = &storage;
120
+ }
121
+
122
+ SluMatrix(const SluMatrix& other)
123
+ : SuperMatrix(other)
124
+ {
125
+ Store = &storage;
126
+ storage = other.storage;
127
+ }
128
+
129
+ SluMatrix& operator=(const SluMatrix& other)
130
+ {
131
+ SuperMatrix::operator=(static_cast<const SuperMatrix&>(other));
132
+ Store = &storage;
133
+ storage = other.storage;
134
+ return *this;
135
+ }
136
+
137
+ struct
138
+ {
139
+ union {int nnz;int lda;};
140
+ void *values;
141
+ int *innerInd;
142
+ int *outerInd;
143
+ } storage;
144
+
145
+ void setStorageType(Stype_t t)
146
+ {
147
+ Stype = t;
148
+ if (t==SLU_NC || t==SLU_NR || t==SLU_DN)
149
+ Store = &storage;
150
+ else
151
+ {
152
+ eigen_assert(false && "storage type not supported");
153
+ Store = 0;
154
+ }
155
+ }
156
+
157
+ template<typename Scalar>
158
+ void setScalarType()
159
+ {
160
+ if (internal::is_same<Scalar,float>::value)
161
+ Dtype = SLU_S;
162
+ else if (internal::is_same<Scalar,double>::value)
163
+ Dtype = SLU_D;
164
+ else if (internal::is_same<Scalar,std::complex<float> >::value)
165
+ Dtype = SLU_C;
166
+ else if (internal::is_same<Scalar,std::complex<double> >::value)
167
+ Dtype = SLU_Z;
168
+ else
169
+ {
170
+ eigen_assert(false && "Scalar type not supported by SuperLU");
171
+ }
172
+ }
173
+
174
+ template<typename MatrixType>
175
+ static SluMatrix Map(MatrixBase<MatrixType>& _mat)
176
+ {
177
+ MatrixType& mat(_mat.derived());
178
+ eigen_assert( ((MatrixType::Flags&RowMajorBit)!=RowMajorBit) && "row-major dense matrices are not supported by SuperLU");
179
+ SluMatrix res;
180
+ res.setStorageType(SLU_DN);
181
+ res.setScalarType<typename MatrixType::Scalar>();
182
+ res.Mtype = SLU_GE;
183
+
184
+ res.nrow = internal::convert_index<int>(mat.rows());
185
+ res.ncol = internal::convert_index<int>(mat.cols());
186
+
187
+ res.storage.lda = internal::convert_index<int>(MatrixType::IsVectorAtCompileTime ? mat.size() : mat.outerStride());
188
+ res.storage.values = (void*)(mat.data());
189
+ return res;
190
+ }
191
+
192
+ template<typename MatrixType>
193
+ static SluMatrix Map(SparseMatrixBase<MatrixType>& a_mat)
194
+ {
195
+ MatrixType &mat(a_mat.derived());
196
+ SluMatrix res;
197
+ if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
198
+ {
199
+ res.setStorageType(SLU_NR);
200
+ res.nrow = internal::convert_index<int>(mat.cols());
201
+ res.ncol = internal::convert_index<int>(mat.rows());
202
+ }
203
+ else
204
+ {
205
+ res.setStorageType(SLU_NC);
206
+ res.nrow = internal::convert_index<int>(mat.rows());
207
+ res.ncol = internal::convert_index<int>(mat.cols());
208
+ }
209
+
210
+ res.Mtype = SLU_GE;
211
+
212
+ res.storage.nnz = internal::convert_index<int>(mat.nonZeros());
213
+ res.storage.values = mat.valuePtr();
214
+ res.storage.innerInd = mat.innerIndexPtr();
215
+ res.storage.outerInd = mat.outerIndexPtr();
216
+
217
+ res.setScalarType<typename MatrixType::Scalar>();
218
+
219
+ // FIXME the following is not very accurate
220
+ if (int(MatrixType::Flags) & int(Upper))
221
+ res.Mtype = SLU_TRU;
222
+ if (int(MatrixType::Flags) & int(Lower))
223
+ res.Mtype = SLU_TRL;
224
+
225
+ eigen_assert(((int(MatrixType::Flags) & int(SelfAdjoint))==0) && "SelfAdjoint matrix shape not supported by SuperLU");
226
+
227
+ return res;
228
+ }
229
+ };
230
+
231
+ template<typename Scalar, int Rows, int Cols, int Options, int MRows, int MCols>
232
+ struct SluMatrixMapHelper<Matrix<Scalar,Rows,Cols,Options,MRows,MCols> >
233
+ {
234
+ typedef Matrix<Scalar,Rows,Cols,Options,MRows,MCols> MatrixType;
235
+ static void run(MatrixType& mat, SluMatrix& res)
236
+ {
237
+ eigen_assert( ((Options&RowMajor)!=RowMajor) && "row-major dense matrices is not supported by SuperLU");
238
+ res.setStorageType(SLU_DN);
239
+ res.setScalarType<Scalar>();
240
+ res.Mtype = SLU_GE;
241
+
242
+ res.nrow = mat.rows();
243
+ res.ncol = mat.cols();
244
+
245
+ res.storage.lda = mat.outerStride();
246
+ res.storage.values = mat.data();
247
+ }
248
+ };
249
+
250
+ template<typename Derived>
251
+ struct SluMatrixMapHelper<SparseMatrixBase<Derived> >
252
+ {
253
+ typedef Derived MatrixType;
254
+ static void run(MatrixType& mat, SluMatrix& res)
255
+ {
256
+ if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
257
+ {
258
+ res.setStorageType(SLU_NR);
259
+ res.nrow = mat.cols();
260
+ res.ncol = mat.rows();
261
+ }
262
+ else
263
+ {
264
+ res.setStorageType(SLU_NC);
265
+ res.nrow = mat.rows();
266
+ res.ncol = mat.cols();
267
+ }
268
+
269
+ res.Mtype = SLU_GE;
270
+
271
+ res.storage.nnz = mat.nonZeros();
272
+ res.storage.values = mat.valuePtr();
273
+ res.storage.innerInd = mat.innerIndexPtr();
274
+ res.storage.outerInd = mat.outerIndexPtr();
275
+
276
+ res.setScalarType<typename MatrixType::Scalar>();
277
+
278
+ // FIXME the following is not very accurate
279
+ if (MatrixType::Flags & Upper)
280
+ res.Mtype = SLU_TRU;
281
+ if (MatrixType::Flags & Lower)
282
+ res.Mtype = SLU_TRL;
283
+
284
+ eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
285
+ }
286
+ };
287
+
288
+ namespace internal {
289
+
290
+ template<typename MatrixType>
291
+ SluMatrix asSluMatrix(MatrixType& mat)
292
+ {
293
+ return SluMatrix::Map(mat);
294
+ }
295
+
296
+ /** View a Super LU matrix as an Eigen expression */
297
+ template<typename Scalar, int Flags, typename Index>
298
+ MappedSparseMatrix<Scalar,Flags,Index> map_superlu(SluMatrix& sluMat)
299
+ {
300
+ eigen_assert(((Flags&RowMajor)==RowMajor && sluMat.Stype == SLU_NR)
301
+ || ((Flags&ColMajor)==ColMajor && sluMat.Stype == SLU_NC));
302
+
303
+ Index outerSize = (Flags&RowMajor)==RowMajor ? sluMat.ncol : sluMat.nrow;
304
+
305
+ return MappedSparseMatrix<Scalar,Flags,Index>(
306
+ sluMat.nrow, sluMat.ncol, sluMat.storage.outerInd[outerSize],
307
+ sluMat.storage.outerInd, sluMat.storage.innerInd, reinterpret_cast<Scalar*>(sluMat.storage.values) );
308
+ }
309
+
310
+ } // end namespace internal
311
+
312
+ /** \ingroup SuperLUSupport_Module
313
+ * \class SuperLUBase
314
+ * \brief The base class for the direct and incomplete LU factorization of SuperLU
315
+ */
316
+ template<typename _MatrixType, typename Derived>
317
+ class SuperLUBase : public SparseSolverBase<Derived>
318
+ {
319
+ protected:
320
+ typedef SparseSolverBase<Derived> Base;
321
+ using Base::derived;
322
+ using Base::m_isInitialized;
323
+ public:
324
+ typedef _MatrixType MatrixType;
325
+ typedef typename MatrixType::Scalar Scalar;
326
+ typedef typename MatrixType::RealScalar RealScalar;
327
+ typedef typename MatrixType::StorageIndex StorageIndex;
328
+ typedef Matrix<Scalar,Dynamic,1> Vector;
329
+ typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
330
+ typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
331
+ typedef Map<PermutationMatrix<Dynamic,Dynamic,int> > PermutationMap;
332
+ typedef SparseMatrix<Scalar> LUMatrixType;
333
+ enum {
334
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
335
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
336
+ };
337
+
338
+ public:
339
+
340
+ SuperLUBase() {}
341
+
342
+ ~SuperLUBase()
343
+ {
344
+ clearFactors();
345
+ }
346
+
347
+ inline Index rows() const { return m_matrix.rows(); }
348
+ inline Index cols() const { return m_matrix.cols(); }
349
+
350
+ /** \returns a reference to the Super LU option object to configure the Super LU algorithms. */
351
+ inline superlu_options_t& options() { return m_sluOptions; }
352
+
353
+ /** \brief Reports whether previous computation was successful.
354
+ *
355
+ * \returns \c Success if computation was successful,
356
+ * \c NumericalIssue if the matrix.appears to be negative.
357
+ */
358
+ ComputationInfo info() const
359
+ {
360
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
361
+ return m_info;
362
+ }
363
+
364
+ /** Computes the sparse Cholesky decomposition of \a matrix */
365
+ void compute(const MatrixType& matrix)
366
+ {
367
+ derived().analyzePattern(matrix);
368
+ derived().factorize(matrix);
369
+ }
370
+
371
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
372
+ *
373
+ * This function is particularly useful when solving for several problems having the same structure.
374
+ *
375
+ * \sa factorize()
376
+ */
377
+ void analyzePattern(const MatrixType& /*matrix*/)
378
+ {
379
+ m_isInitialized = true;
380
+ m_info = Success;
381
+ m_analysisIsOk = true;
382
+ m_factorizationIsOk = false;
383
+ }
384
+
385
+ template<typename Stream>
386
+ void dumpMemory(Stream& /*s*/)
387
+ {}
388
+
389
+ protected:
390
+
391
+ void initFactorization(const MatrixType& a)
392
+ {
393
+ set_default_options(&this->m_sluOptions);
394
+
395
+ const Index size = a.rows();
396
+ m_matrix = a;
397
+
398
+ m_sluA = internal::asSluMatrix(m_matrix);
399
+ clearFactors();
400
+
401
+ m_p.resize(size);
402
+ m_q.resize(size);
403
+ m_sluRscale.resize(size);
404
+ m_sluCscale.resize(size);
405
+ m_sluEtree.resize(size);
406
+
407
+ // set empty B and X
408
+ m_sluB.setStorageType(SLU_DN);
409
+ m_sluB.setScalarType<Scalar>();
410
+ m_sluB.Mtype = SLU_GE;
411
+ m_sluB.storage.values = 0;
412
+ m_sluB.nrow = 0;
413
+ m_sluB.ncol = 0;
414
+ m_sluB.storage.lda = internal::convert_index<int>(size);
415
+ m_sluX = m_sluB;
416
+
417
+ m_extractedDataAreDirty = true;
418
+ }
419
+
420
+ void init()
421
+ {
422
+ m_info = InvalidInput;
423
+ m_isInitialized = false;
424
+ m_sluL.Store = 0;
425
+ m_sluU.Store = 0;
426
+ }
427
+
428
+ void extractData() const;
429
+
430
+ void clearFactors()
431
+ {
432
+ if(m_sluL.Store)
433
+ Destroy_SuperNode_Matrix(&m_sluL);
434
+ if(m_sluU.Store)
435
+ Destroy_CompCol_Matrix(&m_sluU);
436
+
437
+ m_sluL.Store = 0;
438
+ m_sluU.Store = 0;
439
+
440
+ memset(&m_sluL,0,sizeof m_sluL);
441
+ memset(&m_sluU,0,sizeof m_sluU);
442
+ }
443
+
444
+ // cached data to reduce reallocation, etc.
445
+ mutable LUMatrixType m_l;
446
+ mutable LUMatrixType m_u;
447
+ mutable IntColVectorType m_p;
448
+ mutable IntRowVectorType m_q;
449
+
450
+ mutable LUMatrixType m_matrix; // copy of the factorized matrix
451
+ mutable SluMatrix m_sluA;
452
+ mutable SuperMatrix m_sluL, m_sluU;
453
+ mutable SluMatrix m_sluB, m_sluX;
454
+ mutable SuperLUStat_t m_sluStat;
455
+ mutable superlu_options_t m_sluOptions;
456
+ mutable std::vector<int> m_sluEtree;
457
+ mutable Matrix<RealScalar,Dynamic,1> m_sluRscale, m_sluCscale;
458
+ mutable Matrix<RealScalar,Dynamic,1> m_sluFerr, m_sluBerr;
459
+ mutable char m_sluEqued;
460
+
461
+ mutable ComputationInfo m_info;
462
+ int m_factorizationIsOk;
463
+ int m_analysisIsOk;
464
+ mutable bool m_extractedDataAreDirty;
465
+
466
+ private:
467
+ SuperLUBase(SuperLUBase& ) { }
468
+ };
469
+
470
+
471
+ /** \ingroup SuperLUSupport_Module
472
+ * \class SuperLU
473
+ * \brief A sparse direct LU factorization and solver based on the SuperLU library
474
+ *
475
+ * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
476
+ * using the SuperLU library. The sparse matrix A must be squared and invertible. The vectors or matrices
477
+ * X and B can be either dense or sparse.
478
+ *
479
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
480
+ *
481
+ * \warning This class is only for the 4.x versions of SuperLU. The 3.x and 5.x versions are not supported.
482
+ *
483
+ * \implsparsesolverconcept
484
+ *
485
+ * \sa \ref TutorialSparseSolverConcept, class SparseLU
486
+ */
487
+ template<typename _MatrixType>
488
+ class SuperLU : public SuperLUBase<_MatrixType,SuperLU<_MatrixType> >
489
+ {
490
+ public:
491
+ typedef SuperLUBase<_MatrixType,SuperLU> Base;
492
+ typedef _MatrixType MatrixType;
493
+ typedef typename Base::Scalar Scalar;
494
+ typedef typename Base::RealScalar RealScalar;
495
+ typedef typename Base::StorageIndex StorageIndex;
496
+ typedef typename Base::IntRowVectorType IntRowVectorType;
497
+ typedef typename Base::IntColVectorType IntColVectorType;
498
+ typedef typename Base::PermutationMap PermutationMap;
499
+ typedef typename Base::LUMatrixType LUMatrixType;
500
+ typedef TriangularView<LUMatrixType, Lower|UnitDiag> LMatrixType;
501
+ typedef TriangularView<LUMatrixType, Upper> UMatrixType;
502
+
503
+ public:
504
+ using Base::_solve_impl;
505
+
506
+ SuperLU() : Base() { init(); }
507
+
508
+ explicit SuperLU(const MatrixType& matrix) : Base()
509
+ {
510
+ init();
511
+ Base::compute(matrix);
512
+ }
513
+
514
+ ~SuperLU()
515
+ {
516
+ }
517
+
518
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
519
+ *
520
+ * This function is particularly useful when solving for several problems having the same structure.
521
+ *
522
+ * \sa factorize()
523
+ */
524
+ void analyzePattern(const MatrixType& matrix)
525
+ {
526
+ m_info = InvalidInput;
527
+ m_isInitialized = false;
528
+ Base::analyzePattern(matrix);
529
+ }
530
+
531
+ /** Performs a numeric decomposition of \a matrix
532
+ *
533
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
534
+ *
535
+ * \sa analyzePattern()
536
+ */
537
+ void factorize(const MatrixType& matrix);
538
+
539
+ /** \internal */
540
+ template<typename Rhs,typename Dest>
541
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
542
+
543
+ inline const LMatrixType& matrixL() const
544
+ {
545
+ if (m_extractedDataAreDirty) this->extractData();
546
+ return m_l;
547
+ }
548
+
549
+ inline const UMatrixType& matrixU() const
550
+ {
551
+ if (m_extractedDataAreDirty) this->extractData();
552
+ return m_u;
553
+ }
554
+
555
+ inline const IntColVectorType& permutationP() const
556
+ {
557
+ if (m_extractedDataAreDirty) this->extractData();
558
+ return m_p;
559
+ }
560
+
561
+ inline const IntRowVectorType& permutationQ() const
562
+ {
563
+ if (m_extractedDataAreDirty) this->extractData();
564
+ return m_q;
565
+ }
566
+
567
+ Scalar determinant() const;
568
+
569
+ protected:
570
+
571
+ using Base::m_matrix;
572
+ using Base::m_sluOptions;
573
+ using Base::m_sluA;
574
+ using Base::m_sluB;
575
+ using Base::m_sluX;
576
+ using Base::m_p;
577
+ using Base::m_q;
578
+ using Base::m_sluEtree;
579
+ using Base::m_sluEqued;
580
+ using Base::m_sluRscale;
581
+ using Base::m_sluCscale;
582
+ using Base::m_sluL;
583
+ using Base::m_sluU;
584
+ using Base::m_sluStat;
585
+ using Base::m_sluFerr;
586
+ using Base::m_sluBerr;
587
+ using Base::m_l;
588
+ using Base::m_u;
589
+
590
+ using Base::m_analysisIsOk;
591
+ using Base::m_factorizationIsOk;
592
+ using Base::m_extractedDataAreDirty;
593
+ using Base::m_isInitialized;
594
+ using Base::m_info;
595
+
596
+ void init()
597
+ {
598
+ Base::init();
599
+
600
+ set_default_options(&this->m_sluOptions);
601
+ m_sluOptions.PrintStat = NO;
602
+ m_sluOptions.ConditionNumber = NO;
603
+ m_sluOptions.Trans = NOTRANS;
604
+ m_sluOptions.ColPerm = COLAMD;
605
+ }
606
+
607
+
608
+ private:
609
+ SuperLU(SuperLU& ) { }
610
+ };
611
+
612
+ template<typename MatrixType>
613
+ void SuperLU<MatrixType>::factorize(const MatrixType& a)
614
+ {
615
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
616
+ if(!m_analysisIsOk)
617
+ {
618
+ m_info = InvalidInput;
619
+ return;
620
+ }
621
+
622
+ this->initFactorization(a);
623
+
624
+ m_sluOptions.ColPerm = COLAMD;
625
+ int info = 0;
626
+ RealScalar recip_pivot_growth, rcond;
627
+ RealScalar ferr, berr;
628
+
629
+ StatInit(&m_sluStat);
630
+ SuperLU_gssvx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
631
+ &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
632
+ &m_sluL, &m_sluU,
633
+ NULL, 0,
634
+ &m_sluB, &m_sluX,
635
+ &recip_pivot_growth, &rcond,
636
+ &ferr, &berr,
637
+ &m_sluStat, &info, Scalar());
638
+ StatFree(&m_sluStat);
639
+
640
+ m_extractedDataAreDirty = true;
641
+
642
+ // FIXME how to better check for errors ???
643
+ m_info = info == 0 ? Success : NumericalIssue;
644
+ m_factorizationIsOk = true;
645
+ }
646
+
647
+ template<typename MatrixType>
648
+ template<typename Rhs,typename Dest>
649
+ void SuperLU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
650
+ {
651
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
652
+
653
+ const Index rhsCols = b.cols();
654
+ eigen_assert(m_matrix.rows()==b.rows());
655
+
656
+ m_sluOptions.Trans = NOTRANS;
657
+ m_sluOptions.Fact = FACTORED;
658
+ m_sluOptions.IterRefine = NOREFINE;
659
+
660
+
661
+ m_sluFerr.resize(rhsCols);
662
+ m_sluBerr.resize(rhsCols);
663
+
664
+ Ref<const Matrix<typename Rhs::Scalar,Dynamic,Dynamic,ColMajor> > b_ref(b);
665
+ Ref<const Matrix<typename Dest::Scalar,Dynamic,Dynamic,ColMajor> > x_ref(x);
666
+
667
+ m_sluB = SluMatrix::Map(b_ref.const_cast_derived());
668
+ m_sluX = SluMatrix::Map(x_ref.const_cast_derived());
669
+
670
+ typename Rhs::PlainObject b_cpy;
671
+ if(m_sluEqued!='N')
672
+ {
673
+ b_cpy = b;
674
+ m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());
675
+ }
676
+
677
+ StatInit(&m_sluStat);
678
+ int info = 0;
679
+ RealScalar recip_pivot_growth, rcond;
680
+ SuperLU_gssvx(&m_sluOptions, &m_sluA,
681
+ m_q.data(), m_p.data(),
682
+ &m_sluEtree[0], &m_sluEqued,
683
+ &m_sluRscale[0], &m_sluCscale[0],
684
+ &m_sluL, &m_sluU,
685
+ NULL, 0,
686
+ &m_sluB, &m_sluX,
687
+ &recip_pivot_growth, &rcond,
688
+ &m_sluFerr[0], &m_sluBerr[0],
689
+ &m_sluStat, &info, Scalar());
690
+ StatFree(&m_sluStat);
691
+
692
+ if(x.derived().data() != x_ref.data())
693
+ x = x_ref;
694
+
695
+ m_info = info==0 ? Success : NumericalIssue;
696
+ }
697
+
698
+ // the code of this extractData() function has been adapted from the SuperLU's Matlab support code,
699
+ //
700
+ // Copyright (c) 1994 by Xerox Corporation. All rights reserved.
701
+ //
702
+ // THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
703
+ // EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
704
+ //
705
+ template<typename MatrixType, typename Derived>
706
+ void SuperLUBase<MatrixType,Derived>::extractData() const
707
+ {
708
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for extracting factors, you must first call either compute() or analyzePattern()/factorize()");
709
+ if (m_extractedDataAreDirty)
710
+ {
711
+ int upper;
712
+ int fsupc, istart, nsupr;
713
+ int lastl = 0, lastu = 0;
714
+ SCformat *Lstore = static_cast<SCformat*>(m_sluL.Store);
715
+ NCformat *Ustore = static_cast<NCformat*>(m_sluU.Store);
716
+ Scalar *SNptr;
717
+
718
+ const Index size = m_matrix.rows();
719
+ m_l.resize(size,size);
720
+ m_l.resizeNonZeros(Lstore->nnz);
721
+ m_u.resize(size,size);
722
+ m_u.resizeNonZeros(Ustore->nnz);
723
+
724
+ int* Lcol = m_l.outerIndexPtr();
725
+ int* Lrow = m_l.innerIndexPtr();
726
+ Scalar* Lval = m_l.valuePtr();
727
+
728
+ int* Ucol = m_u.outerIndexPtr();
729
+ int* Urow = m_u.innerIndexPtr();
730
+ Scalar* Uval = m_u.valuePtr();
731
+
732
+ Ucol[0] = 0;
733
+ Ucol[0] = 0;
734
+
735
+ /* for each supernode */
736
+ for (int k = 0; k <= Lstore->nsuper; ++k)
737
+ {
738
+ fsupc = L_FST_SUPC(k);
739
+ istart = L_SUB_START(fsupc);
740
+ nsupr = L_SUB_START(fsupc+1) - istart;
741
+ upper = 1;
742
+
743
+ /* for each column in the supernode */
744
+ for (int j = fsupc; j < L_FST_SUPC(k+1); ++j)
745
+ {
746
+ SNptr = &((Scalar*)Lstore->nzval)[L_NZ_START(j)];
747
+
748
+ /* Extract U */
749
+ for (int i = U_NZ_START(j); i < U_NZ_START(j+1); ++i)
750
+ {
751
+ Uval[lastu] = ((Scalar*)Ustore->nzval)[i];
752
+ /* Matlab doesn't like explicit zero. */
753
+ if (Uval[lastu] != 0.0)
754
+ Urow[lastu++] = U_SUB(i);
755
+ }
756
+ for (int i = 0; i < upper; ++i)
757
+ {
758
+ /* upper triangle in the supernode */
759
+ Uval[lastu] = SNptr[i];
760
+ /* Matlab doesn't like explicit zero. */
761
+ if (Uval[lastu] != 0.0)
762
+ Urow[lastu++] = L_SUB(istart+i);
763
+ }
764
+ Ucol[j+1] = lastu;
765
+
766
+ /* Extract L */
767
+ Lval[lastl] = 1.0; /* unit diagonal */
768
+ Lrow[lastl++] = L_SUB(istart + upper - 1);
769
+ for (int i = upper; i < nsupr; ++i)
770
+ {
771
+ Lval[lastl] = SNptr[i];
772
+ /* Matlab doesn't like explicit zero. */
773
+ if (Lval[lastl] != 0.0)
774
+ Lrow[lastl++] = L_SUB(istart+i);
775
+ }
776
+ Lcol[j+1] = lastl;
777
+
778
+ ++upper;
779
+ } /* for j ... */
780
+
781
+ } /* for k ... */
782
+
783
+ // squeeze the matrices :
784
+ m_l.resizeNonZeros(lastl);
785
+ m_u.resizeNonZeros(lastu);
786
+
787
+ m_extractedDataAreDirty = false;
788
+ }
789
+ }
790
+
791
+ template<typename MatrixType>
792
+ typename SuperLU<MatrixType>::Scalar SuperLU<MatrixType>::determinant() const
793
+ {
794
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for computing the determinant, you must first call either compute() or analyzePattern()/factorize()");
795
+
796
+ if (m_extractedDataAreDirty)
797
+ this->extractData();
798
+
799
+ Scalar det = Scalar(1);
800
+ for (int j=0; j<m_u.cols(); ++j)
801
+ {
802
+ if (m_u.outerIndexPtr()[j+1]-m_u.outerIndexPtr()[j] > 0)
803
+ {
804
+ int lastId = m_u.outerIndexPtr()[j+1]-1;
805
+ eigen_assert(m_u.innerIndexPtr()[lastId]<=j);
806
+ if (m_u.innerIndexPtr()[lastId]==j)
807
+ det *= m_u.valuePtr()[lastId];
808
+ }
809
+ }
810
+ if(PermutationMap(m_p.data(),m_p.size()).determinant()*PermutationMap(m_q.data(),m_q.size()).determinant()<0)
811
+ det = -det;
812
+ if(m_sluEqued!='N')
813
+ return det/m_sluRscale.prod()/m_sluCscale.prod();
814
+ else
815
+ return det;
816
+ }
817
+
818
+ #ifdef EIGEN_PARSED_BY_DOXYGEN
819
+ #define EIGEN_SUPERLU_HAS_ILU
820
+ #endif
821
+
822
+ #ifdef EIGEN_SUPERLU_HAS_ILU
823
+
824
+ /** \ingroup SuperLUSupport_Module
825
+ * \class SuperILU
826
+ * \brief A sparse direct \b incomplete LU factorization and solver based on the SuperLU library
827
+ *
828
+ * This class allows to solve for an approximate solution of A.X = B sparse linear problems via an incomplete LU factorization
829
+ * using the SuperLU library. This class is aimed to be used as a preconditioner of the iterative linear solvers.
830
+ *
831
+ * \warning This class is only for the 4.x versions of SuperLU. The 3.x and 5.x versions are not supported.
832
+ *
833
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
834
+ *
835
+ * \implsparsesolverconcept
836
+ *
837
+ * \sa \ref TutorialSparseSolverConcept, class IncompleteLUT, class ConjugateGradient, class BiCGSTAB
838
+ */
839
+
840
+ template<typename _MatrixType>
841
+ class SuperILU : public SuperLUBase<_MatrixType,SuperILU<_MatrixType> >
842
+ {
843
+ public:
844
+ typedef SuperLUBase<_MatrixType,SuperILU> Base;
845
+ typedef _MatrixType MatrixType;
846
+ typedef typename Base::Scalar Scalar;
847
+ typedef typename Base::RealScalar RealScalar;
848
+
849
+ public:
850
+ using Base::_solve_impl;
851
+
852
+ SuperILU() : Base() { init(); }
853
+
854
+ SuperILU(const MatrixType& matrix) : Base()
855
+ {
856
+ init();
857
+ Base::compute(matrix);
858
+ }
859
+
860
+ ~SuperILU()
861
+ {
862
+ }
863
+
864
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
865
+ *
866
+ * This function is particularly useful when solving for several problems having the same structure.
867
+ *
868
+ * \sa factorize()
869
+ */
870
+ void analyzePattern(const MatrixType& matrix)
871
+ {
872
+ Base::analyzePattern(matrix);
873
+ }
874
+
875
+ /** Performs a numeric decomposition of \a matrix
876
+ *
877
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
878
+ *
879
+ * \sa analyzePattern()
880
+ */
881
+ void factorize(const MatrixType& matrix);
882
+
883
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
884
+ /** \internal */
885
+ template<typename Rhs,typename Dest>
886
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
887
+ #endif // EIGEN_PARSED_BY_DOXYGEN
888
+
889
+ protected:
890
+
891
+ using Base::m_matrix;
892
+ using Base::m_sluOptions;
893
+ using Base::m_sluA;
894
+ using Base::m_sluB;
895
+ using Base::m_sluX;
896
+ using Base::m_p;
897
+ using Base::m_q;
898
+ using Base::m_sluEtree;
899
+ using Base::m_sluEqued;
900
+ using Base::m_sluRscale;
901
+ using Base::m_sluCscale;
902
+ using Base::m_sluL;
903
+ using Base::m_sluU;
904
+ using Base::m_sluStat;
905
+ using Base::m_sluFerr;
906
+ using Base::m_sluBerr;
907
+ using Base::m_l;
908
+ using Base::m_u;
909
+
910
+ using Base::m_analysisIsOk;
911
+ using Base::m_factorizationIsOk;
912
+ using Base::m_extractedDataAreDirty;
913
+ using Base::m_isInitialized;
914
+ using Base::m_info;
915
+
916
+ void init()
917
+ {
918
+ Base::init();
919
+
920
+ ilu_set_default_options(&m_sluOptions);
921
+ m_sluOptions.PrintStat = NO;
922
+ m_sluOptions.ConditionNumber = NO;
923
+ m_sluOptions.Trans = NOTRANS;
924
+ m_sluOptions.ColPerm = MMD_AT_PLUS_A;
925
+
926
+ // no attempt to preserve column sum
927
+ m_sluOptions.ILU_MILU = SILU;
928
+ // only basic ILU(k) support -- no direct control over memory consumption
929
+ // better to use ILU_DropRule = DROP_BASIC | DROP_AREA
930
+ // and set ILU_FillFactor to max memory growth
931
+ m_sluOptions.ILU_DropRule = DROP_BASIC;
932
+ m_sluOptions.ILU_DropTol = NumTraits<Scalar>::dummy_precision()*10;
933
+ }
934
+
935
+ private:
936
+ SuperILU(SuperILU& ) { }
937
+ };
938
+
939
+ template<typename MatrixType>
940
+ void SuperILU<MatrixType>::factorize(const MatrixType& a)
941
+ {
942
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
943
+ if(!m_analysisIsOk)
944
+ {
945
+ m_info = InvalidInput;
946
+ return;
947
+ }
948
+
949
+ this->initFactorization(a);
950
+
951
+ int info = 0;
952
+ RealScalar recip_pivot_growth, rcond;
953
+
954
+ StatInit(&m_sluStat);
955
+ SuperLU_gsisx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
956
+ &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
957
+ &m_sluL, &m_sluU,
958
+ NULL, 0,
959
+ &m_sluB, &m_sluX,
960
+ &recip_pivot_growth, &rcond,
961
+ &m_sluStat, &info, Scalar());
962
+ StatFree(&m_sluStat);
963
+
964
+ // FIXME how to better check for errors ???
965
+ m_info = info == 0 ? Success : NumericalIssue;
966
+ m_factorizationIsOk = true;
967
+ }
968
+
969
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
970
+ template<typename MatrixType>
971
+ template<typename Rhs,typename Dest>
972
+ void SuperILU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
973
+ {
974
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
975
+
976
+ const int rhsCols = b.cols();
977
+ eigen_assert(m_matrix.rows()==b.rows());
978
+
979
+ m_sluOptions.Trans = NOTRANS;
980
+ m_sluOptions.Fact = FACTORED;
981
+ m_sluOptions.IterRefine = NOREFINE;
982
+
983
+ m_sluFerr.resize(rhsCols);
984
+ m_sluBerr.resize(rhsCols);
985
+
986
+ Ref<const Matrix<typename Rhs::Scalar,Dynamic,Dynamic,ColMajor> > b_ref(b);
987
+ Ref<const Matrix<typename Dest::Scalar,Dynamic,Dynamic,ColMajor> > x_ref(x);
988
+
989
+ m_sluB = SluMatrix::Map(b_ref.const_cast_derived());
990
+ m_sluX = SluMatrix::Map(x_ref.const_cast_derived());
991
+
992
+ typename Rhs::PlainObject b_cpy;
993
+ if(m_sluEqued!='N')
994
+ {
995
+ b_cpy = b;
996
+ m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());
997
+ }
998
+
999
+ int info = 0;
1000
+ RealScalar recip_pivot_growth, rcond;
1001
+
1002
+ StatInit(&m_sluStat);
1003
+ SuperLU_gsisx(&m_sluOptions, &m_sluA,
1004
+ m_q.data(), m_p.data(),
1005
+ &m_sluEtree[0], &m_sluEqued,
1006
+ &m_sluRscale[0], &m_sluCscale[0],
1007
+ &m_sluL, &m_sluU,
1008
+ NULL, 0,
1009
+ &m_sluB, &m_sluX,
1010
+ &recip_pivot_growth, &rcond,
1011
+ &m_sluStat, &info, Scalar());
1012
+ StatFree(&m_sluStat);
1013
+
1014
+ if(x.derived().data() != x_ref.data())
1015
+ x = x_ref;
1016
+
1017
+ m_info = info==0 ? Success : NumericalIssue;
1018
+ }
1019
+ #endif
1020
+
1021
+ #endif
1022
+
1023
+ } // end namespace Eigen
1024
+
1025
+ #endif // EIGEN_SUPERLUSUPPORT_H