pylibsparseir 0.1.0__cp313-cp313-macosx_15_0_arm64.whl → 0.5.2__cp313-cp313-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 +160 -45
  534. pylibsparseir/libsparseir.dylib +0 -0
  535. pylibsparseir-0.5.2.dist-info/METADATA +215 -0
  536. pylibsparseir-0.5.2.dist-info/RECORD +545 -0
  537. {pylibsparseir-0.1.0.dist-info → pylibsparseir-0.5.2.dist-info}/WHEEL +1 -1
  538. pylibsparseir-0.5.2.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,91 @@
1
+ namespace Eigen {
2
+
3
+ namespace internal {
4
+
5
+ // TODO : once qrsolv2 is removed, use ColPivHouseholderQR or PermutationMatrix instead of ipvt
6
+ template <typename Scalar>
7
+ void qrsolv(
8
+ Matrix< Scalar, Dynamic, Dynamic > &s,
9
+ // TODO : use a PermutationMatrix once lmpar is no more:
10
+ const VectorXi &ipvt,
11
+ const Matrix< Scalar, Dynamic, 1 > &diag,
12
+ const Matrix< Scalar, Dynamic, 1 > &qtb,
13
+ Matrix< Scalar, Dynamic, 1 > &x,
14
+ Matrix< Scalar, Dynamic, 1 > &sdiag)
15
+
16
+ {
17
+ typedef DenseIndex Index;
18
+
19
+ /* Local variables */
20
+ Index i, j, k, l;
21
+ Scalar temp;
22
+ Index n = s.cols();
23
+ Matrix< Scalar, Dynamic, 1 > wa(n);
24
+ JacobiRotation<Scalar> givens;
25
+
26
+ /* Function Body */
27
+ // the following will only change the lower triangular part of s, including
28
+ // the diagonal, though the diagonal is restored afterward
29
+
30
+ /* copy r and (q transpose)*b to preserve input and initialize s. */
31
+ /* in particular, save the diagonal elements of r in x. */
32
+ x = s.diagonal();
33
+ wa = qtb;
34
+
35
+ s.topLeftCorner(n,n).template triangularView<StrictlyLower>() = s.topLeftCorner(n,n).transpose();
36
+
37
+ /* eliminate the diagonal matrix d using a givens rotation. */
38
+ for (j = 0; j < n; ++j) {
39
+
40
+ /* prepare the row of d to be eliminated, locating the */
41
+ /* diagonal element using p from the qr factorization. */
42
+ l = ipvt[j];
43
+ if (diag[l] == 0.)
44
+ break;
45
+ sdiag.tail(n-j).setZero();
46
+ sdiag[j] = diag[l];
47
+
48
+ /* the transformations to eliminate the row of d */
49
+ /* modify only a single element of (q transpose)*b */
50
+ /* beyond the first n, which is initially zero. */
51
+ Scalar qtbpj = 0.;
52
+ for (k = j; k < n; ++k) {
53
+ /* determine a givens rotation which eliminates the */
54
+ /* appropriate element in the current row of d. */
55
+ givens.makeGivens(-s(k,k), sdiag[k]);
56
+
57
+ /* compute the modified diagonal element of r and */
58
+ /* the modified element of ((q transpose)*b,0). */
59
+ s(k,k) = givens.c() * s(k,k) + givens.s() * sdiag[k];
60
+ temp = givens.c() * wa[k] + givens.s() * qtbpj;
61
+ qtbpj = -givens.s() * wa[k] + givens.c() * qtbpj;
62
+ wa[k] = temp;
63
+
64
+ /* accumulate the transformation in the row of s. */
65
+ for (i = k+1; i<n; ++i) {
66
+ temp = givens.c() * s(i,k) + givens.s() * sdiag[i];
67
+ sdiag[i] = -givens.s() * s(i,k) + givens.c() * sdiag[i];
68
+ s(i,k) = temp;
69
+ }
70
+ }
71
+ }
72
+
73
+ /* solve the triangular system for z. if the system is */
74
+ /* singular, then obtain a least squares solution. */
75
+ Index nsing;
76
+ for(nsing=0; nsing<n && sdiag[nsing]!=0; nsing++) {}
77
+
78
+ wa.tail(n-nsing).setZero();
79
+ s.topLeftCorner(nsing, nsing).transpose().template triangularView<Upper>().solveInPlace(wa.head(nsing));
80
+
81
+ // restore
82
+ sdiag = s.diagonal();
83
+ s.diagonal() = x;
84
+
85
+ /* permute the components of z back to components of x. */
86
+ for (j = 0; j < n; ++j) x[ipvt[j]] = wa[j];
87
+ }
88
+
89
+ } // end namespace internal
90
+
91
+ } // end namespace Eigen
@@ -0,0 +1,30 @@
1
+ namespace Eigen {
2
+
3
+ namespace internal {
4
+
5
+ // TODO : move this to GivensQR once there's such a thing in Eigen
6
+
7
+ template <typename Scalar>
8
+ void r1mpyq(DenseIndex m, DenseIndex n, Scalar *a, const std::vector<JacobiRotation<Scalar> > &v_givens, const std::vector<JacobiRotation<Scalar> > &w_givens)
9
+ {
10
+ typedef DenseIndex Index;
11
+
12
+ /* apply the first set of givens rotations to a. */
13
+ for (Index j = n-2; j>=0; --j)
14
+ for (Index i = 0; i<m; ++i) {
15
+ Scalar temp = v_givens[j].c() * a[i+m*j] - v_givens[j].s() * a[i+m*(n-1)];
16
+ a[i+m*(n-1)] = v_givens[j].s() * a[i+m*j] + v_givens[j].c() * a[i+m*(n-1)];
17
+ a[i+m*j] = temp;
18
+ }
19
+ /* apply the second set of givens rotations to a. */
20
+ for (Index j = 0; j<n-1; ++j)
21
+ for (Index i = 0; i<m; ++i) {
22
+ Scalar temp = w_givens[j].c() * a[i+m*j] + w_givens[j].s() * a[i+m*(n-1)];
23
+ a[i+m*(n-1)] = -w_givens[j].s() * a[i+m*j] + w_givens[j].c() * a[i+m*(n-1)];
24
+ a[i+m*j] = temp;
25
+ }
26
+ }
27
+
28
+ } // end namespace internal
29
+
30
+ } // end namespace Eigen
@@ -0,0 +1,99 @@
1
+ namespace Eigen {
2
+
3
+ namespace internal {
4
+
5
+ template <typename Scalar>
6
+ void r1updt(
7
+ Matrix< Scalar, Dynamic, Dynamic > &s,
8
+ const Matrix< Scalar, Dynamic, 1> &u,
9
+ std::vector<JacobiRotation<Scalar> > &v_givens,
10
+ std::vector<JacobiRotation<Scalar> > &w_givens,
11
+ Matrix< Scalar, Dynamic, 1> &v,
12
+ Matrix< Scalar, Dynamic, 1> &w,
13
+ bool *sing)
14
+ {
15
+ typedef DenseIndex Index;
16
+ const JacobiRotation<Scalar> IdentityRotation = JacobiRotation<Scalar>(1,0);
17
+
18
+ /* Local variables */
19
+ const Index m = s.rows();
20
+ const Index n = s.cols();
21
+ Index i, j=1;
22
+ Scalar temp;
23
+ JacobiRotation<Scalar> givens;
24
+
25
+ // r1updt had a broader usecase, but we don't use it here. And, more
26
+ // importantly, we can not test it.
27
+ eigen_assert(m==n);
28
+ eigen_assert(u.size()==m);
29
+ eigen_assert(v.size()==n);
30
+ eigen_assert(w.size()==n);
31
+
32
+ /* move the nontrivial part of the last column of s into w. */
33
+ w[n-1] = s(n-1,n-1);
34
+
35
+ /* rotate the vector v into a multiple of the n-th unit vector */
36
+ /* in such a way that a spike is introduced into w. */
37
+ for (j=n-2; j>=0; --j) {
38
+ w[j] = 0.;
39
+ if (v[j] != 0.) {
40
+ /* determine a givens rotation which eliminates the */
41
+ /* j-th element of v. */
42
+ givens.makeGivens(-v[n-1], v[j]);
43
+
44
+ /* apply the transformation to v and store the information */
45
+ /* necessary to recover the givens rotation. */
46
+ v[n-1] = givens.s() * v[j] + givens.c() * v[n-1];
47
+ v_givens[j] = givens;
48
+
49
+ /* apply the transformation to s and extend the spike in w. */
50
+ for (i = j; i < m; ++i) {
51
+ temp = givens.c() * s(j,i) - givens.s() * w[i];
52
+ w[i] = givens.s() * s(j,i) + givens.c() * w[i];
53
+ s(j,i) = temp;
54
+ }
55
+ } else
56
+ v_givens[j] = IdentityRotation;
57
+ }
58
+
59
+ /* add the spike from the rank 1 update to w. */
60
+ w += v[n-1] * u;
61
+
62
+ /* eliminate the spike. */
63
+ *sing = false;
64
+ for (j = 0; j < n-1; ++j) {
65
+ if (w[j] != 0.) {
66
+ /* determine a givens rotation which eliminates the */
67
+ /* j-th element of the spike. */
68
+ givens.makeGivens(-s(j,j), w[j]);
69
+
70
+ /* apply the transformation to s and reduce the spike in w. */
71
+ for (i = j; i < m; ++i) {
72
+ temp = givens.c() * s(j,i) + givens.s() * w[i];
73
+ w[i] = -givens.s() * s(j,i) + givens.c() * w[i];
74
+ s(j,i) = temp;
75
+ }
76
+
77
+ /* store the information necessary to recover the */
78
+ /* givens rotation. */
79
+ w_givens[j] = givens;
80
+ } else
81
+ v_givens[j] = IdentityRotation;
82
+
83
+ /* test for zero diagonal elements in the output s. */
84
+ if (s(j,j) == 0.) {
85
+ *sing = true;
86
+ }
87
+ }
88
+ /* move w back into the last column of the output s. */
89
+ s(n-1,n-1) = w[n-1];
90
+
91
+ if (s(j,j) == 0.) {
92
+ *sing = true;
93
+ }
94
+ return;
95
+ }
96
+
97
+ } // end namespace internal
98
+
99
+ } // end namespace Eigen
@@ -0,0 +1,49 @@
1
+ namespace Eigen {
2
+
3
+ namespace internal {
4
+
5
+ template <typename Scalar>
6
+ void rwupdt(
7
+ Matrix< Scalar, Dynamic, Dynamic > &r,
8
+ const Matrix< Scalar, Dynamic, 1> &w,
9
+ Matrix< Scalar, Dynamic, 1> &b,
10
+ Scalar alpha)
11
+ {
12
+ typedef DenseIndex Index;
13
+
14
+ const Index n = r.cols();
15
+ eigen_assert(r.rows()>=n);
16
+ std::vector<JacobiRotation<Scalar> > givens(n);
17
+
18
+ /* Local variables */
19
+ Scalar temp, rowj;
20
+
21
+ /* Function Body */
22
+ for (Index j = 0; j < n; ++j) {
23
+ rowj = w[j];
24
+
25
+ /* apply the previous transformations to */
26
+ /* r(i,j), i=0,1,...,j-1, and to w(j). */
27
+ for (Index i = 0; i < j; ++i) {
28
+ temp = givens[i].c() * r(i,j) + givens[i].s() * rowj;
29
+ rowj = -givens[i].s() * r(i,j) + givens[i].c() * rowj;
30
+ r(i,j) = temp;
31
+ }
32
+
33
+ /* determine a givens rotation which eliminates w(j). */
34
+ givens[j].makeGivens(-r(j,j), rowj);
35
+
36
+ if (rowj == 0.)
37
+ continue; // givens[j] is identity
38
+
39
+ /* apply the current transformation to r(j,j), b(j), and alpha. */
40
+ r(j,j) = givens[j].c() * r(j,j) + givens[j].s() * rowj;
41
+ temp = givens[j].c() * b[j] + givens[j].s() * alpha;
42
+ alpha = -givens[j].s() * b[j] + givens[j].c() * alpha;
43
+ b[j] = temp;
44
+ }
45
+ }
46
+
47
+ } // end namespace internal
48
+
49
+ } // end namespace Eigen
@@ -0,0 +1,130 @@
1
+ // -*- coding: utf-8
2
+ // vim: set fileencoding=utf-8
3
+
4
+ // This file is part of Eigen, a lightweight C++ template library
5
+ // for linear algebra.
6
+ //
7
+ // Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
8
+ //
9
+ // This Source Code Form is subject to the terms of the Mozilla
10
+ // Public License v. 2.0. If a copy of the MPL was not distributed
11
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
+
13
+ #ifndef EIGEN_NUMERICAL_DIFF_H
14
+ #define EIGEN_NUMERICAL_DIFF_H
15
+
16
+ namespace Eigen {
17
+
18
+ enum NumericalDiffMode {
19
+ Forward,
20
+ Central
21
+ };
22
+
23
+
24
+ /**
25
+ * This class allows you to add a method df() to your functor, which will
26
+ * use numerical differentiation to compute an approximate of the
27
+ * derivative for the functor. Of course, if you have an analytical form
28
+ * for the derivative, you should rather implement df() by yourself.
29
+ *
30
+ * More information on
31
+ * http://en.wikipedia.org/wiki/Numerical_differentiation
32
+ *
33
+ * Currently only "Forward" and "Central" scheme are implemented.
34
+ */
35
+ template<typename _Functor, NumericalDiffMode mode=Forward>
36
+ class NumericalDiff : public _Functor
37
+ {
38
+ public:
39
+ typedef _Functor Functor;
40
+ typedef typename Functor::Scalar Scalar;
41
+ typedef typename Functor::InputType InputType;
42
+ typedef typename Functor::ValueType ValueType;
43
+ typedef typename Functor::JacobianType JacobianType;
44
+
45
+ NumericalDiff(Scalar _epsfcn=0.) : Functor(), epsfcn(_epsfcn) {}
46
+ NumericalDiff(const Functor& f, Scalar _epsfcn=0.) : Functor(f), epsfcn(_epsfcn) {}
47
+
48
+ // forward constructors
49
+ template<typename T0>
50
+ NumericalDiff(const T0& a0) : Functor(a0), epsfcn(0) {}
51
+ template<typename T0, typename T1>
52
+ NumericalDiff(const T0& a0, const T1& a1) : Functor(a0, a1), epsfcn(0) {}
53
+ template<typename T0, typename T1, typename T2>
54
+ NumericalDiff(const T0& a0, const T1& a1, const T2& a2) : Functor(a0, a1, a2), epsfcn(0) {}
55
+
56
+ enum {
57
+ InputsAtCompileTime = Functor::InputsAtCompileTime,
58
+ ValuesAtCompileTime = Functor::ValuesAtCompileTime
59
+ };
60
+
61
+ /**
62
+ * return the number of evaluation of functor
63
+ */
64
+ int df(const InputType& _x, JacobianType &jac) const
65
+ {
66
+ using std::sqrt;
67
+ using std::abs;
68
+ /* Local variables */
69
+ Scalar h;
70
+ int nfev=0;
71
+ const typename InputType::Index n = _x.size();
72
+ const Scalar eps = sqrt(((std::max)(epsfcn,NumTraits<Scalar>::epsilon() )));
73
+ ValueType val1, val2;
74
+ InputType x = _x;
75
+ // TODO : we should do this only if the size is not already known
76
+ val1.resize(Functor::values());
77
+ val2.resize(Functor::values());
78
+
79
+ // initialization
80
+ switch(mode) {
81
+ case Forward:
82
+ // compute f(x)
83
+ Functor::operator()(x, val1); nfev++;
84
+ break;
85
+ case Central:
86
+ // do nothing
87
+ break;
88
+ default:
89
+ eigen_assert(false);
90
+ };
91
+
92
+ // Function Body
93
+ for (int j = 0; j < n; ++j) {
94
+ h = eps * abs(x[j]);
95
+ if (h == 0.) {
96
+ h = eps;
97
+ }
98
+ switch(mode) {
99
+ case Forward:
100
+ x[j] += h;
101
+ Functor::operator()(x, val2);
102
+ nfev++;
103
+ x[j] = _x[j];
104
+ jac.col(j) = (val2-val1)/h;
105
+ break;
106
+ case Central:
107
+ x[j] += h;
108
+ Functor::operator()(x, val2); nfev++;
109
+ x[j] -= 2*h;
110
+ Functor::operator()(x, val1); nfev++;
111
+ x[j] = _x[j];
112
+ jac.col(j) = (val2-val1)/(2*h);
113
+ break;
114
+ default:
115
+ eigen_assert(false);
116
+ };
117
+ }
118
+ return nfev;
119
+ }
120
+ private:
121
+ Scalar epsfcn;
122
+
123
+ NumericalDiff& operator=(const NumericalDiff&);
124
+ };
125
+
126
+ } // end namespace Eigen
127
+
128
+ //vim: ai ts=4 sts=4 et sw=4
129
+ #endif // EIGEN_NUMERICAL_DIFF_H
130
+
@@ -0,0 +1,280 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2010 Manuel Yguel <manuel.yguel@gmail.com>
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_COMPANION_H
11
+ #define EIGEN_COMPANION_H
12
+
13
+ // This file requires the user to include
14
+ // * Eigen/Core
15
+ // * Eigen/src/PolynomialSolver.h
16
+
17
+ namespace Eigen {
18
+
19
+ namespace internal {
20
+
21
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
22
+
23
+ template<int Size>
24
+ struct decrement_if_fixed_size
25
+ {
26
+ enum {
27
+ ret = (Size == Dynamic) ? Dynamic : Size-1 };
28
+ };
29
+
30
+ #endif
31
+
32
+ template< typename _Scalar, int _Deg >
33
+ class companion
34
+ {
35
+ public:
36
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Deg==Dynamic ? Dynamic : _Deg)
37
+
38
+ enum {
39
+ Deg = _Deg,
40
+ Deg_1=decrement_if_fixed_size<Deg>::ret
41
+ };
42
+
43
+ typedef _Scalar Scalar;
44
+ typedef typename NumTraits<Scalar>::Real RealScalar;
45
+ typedef Matrix<Scalar, Deg, 1> RightColumn;
46
+ //typedef DiagonalMatrix< Scalar, Deg_1, Deg_1 > BottomLeftDiagonal;
47
+ typedef Matrix<Scalar, Deg_1, 1> BottomLeftDiagonal;
48
+
49
+ typedef Matrix<Scalar, Deg, Deg> DenseCompanionMatrixType;
50
+ typedef Matrix< Scalar, _Deg, Deg_1 > LeftBlock;
51
+ typedef Matrix< Scalar, Deg_1, Deg_1 > BottomLeftBlock;
52
+ typedef Matrix< Scalar, 1, Deg_1 > LeftBlockFirstRow;
53
+
54
+ typedef DenseIndex Index;
55
+
56
+ public:
57
+ EIGEN_STRONG_INLINE const _Scalar operator()(Index row, Index col ) const
58
+ {
59
+ if( m_bl_diag.rows() > col )
60
+ {
61
+ if( 0 < row ){ return m_bl_diag[col]; }
62
+ else{ return 0; }
63
+ }
64
+ else{ return m_monic[row]; }
65
+ }
66
+
67
+ public:
68
+ template<typename VectorType>
69
+ void setPolynomial( const VectorType& poly )
70
+ {
71
+ const Index deg = poly.size()-1;
72
+ m_monic = -poly.head(deg)/poly[deg];
73
+ m_bl_diag.setOnes(deg-1);
74
+ }
75
+
76
+ template<typename VectorType>
77
+ companion( const VectorType& poly ){
78
+ setPolynomial( poly ); }
79
+
80
+ public:
81
+ DenseCompanionMatrixType denseMatrix() const
82
+ {
83
+ const Index deg = m_monic.size();
84
+ const Index deg_1 = deg-1;
85
+ DenseCompanionMatrixType companMat(deg,deg);
86
+ companMat <<
87
+ ( LeftBlock(deg,deg_1)
88
+ << LeftBlockFirstRow::Zero(1,deg_1),
89
+ BottomLeftBlock::Identity(deg-1,deg-1)*m_bl_diag.asDiagonal() ).finished()
90
+ , m_monic;
91
+ return companMat;
92
+ }
93
+
94
+
95
+
96
+ protected:
97
+ /** Helper function for the balancing algorithm.
98
+ * \returns true if the row and the column, having colNorm and rowNorm
99
+ * as norms, are balanced, false otherwise.
100
+ * colB and rowB are respectively the multipliers for
101
+ * the column and the row in order to balance them.
102
+ * */
103
+ bool balanced( RealScalar colNorm, RealScalar rowNorm,
104
+ bool& isBalanced, RealScalar& colB, RealScalar& rowB );
105
+
106
+ /** Helper function for the balancing algorithm.
107
+ * \returns true if the row and the column, having colNorm and rowNorm
108
+ * as norms, are balanced, false otherwise.
109
+ * colB and rowB are respectively the multipliers for
110
+ * the column and the row in order to balance them.
111
+ * */
112
+ bool balancedR( RealScalar colNorm, RealScalar rowNorm,
113
+ bool& isBalanced, RealScalar& colB, RealScalar& rowB );
114
+
115
+ public:
116
+ /**
117
+ * Balancing algorithm from B. N. PARLETT and C. REINSCH (1969)
118
+ * "Balancing a matrix for calculation of eigenvalues and eigenvectors"
119
+ * adapted to the case of companion matrices.
120
+ * A matrix with non zero row and non zero column is balanced
121
+ * for a certain norm if the i-th row and the i-th column
122
+ * have same norm for all i.
123
+ */
124
+ void balance();
125
+
126
+ protected:
127
+ RightColumn m_monic;
128
+ BottomLeftDiagonal m_bl_diag;
129
+ };
130
+
131
+
132
+
133
+ template< typename _Scalar, int _Deg >
134
+ inline
135
+ bool companion<_Scalar,_Deg>::balanced( RealScalar colNorm, RealScalar rowNorm,
136
+ bool& isBalanced, RealScalar& colB, RealScalar& rowB )
137
+ {
138
+ if( RealScalar(0) == colNorm || RealScalar(0) == rowNorm
139
+ || !(numext::isfinite)(colNorm) || !(numext::isfinite)(rowNorm)){
140
+ return true;
141
+ }
142
+ else
143
+ {
144
+ //To find the balancing coefficients, if the radix is 2,
145
+ //one finds \f$ \sigma \f$ such that
146
+ // \f$ 2^{2\sigma-1} < rowNorm / colNorm \le 2^{2\sigma+1} \f$
147
+ // then the balancing coefficient for the row is \f$ 1/2^{\sigma} \f$
148
+ // and the balancing coefficient for the column is \f$ 2^{\sigma} \f$
149
+ const RealScalar radix = RealScalar(2);
150
+ const RealScalar radix2 = RealScalar(4);
151
+
152
+ rowB = rowNorm / radix;
153
+ colB = RealScalar(1);
154
+ const RealScalar s = colNorm + rowNorm;
155
+
156
+ // Find sigma s.t. rowNorm / 2 <= 2^(2*sigma) * colNorm
157
+ RealScalar scout = colNorm;
158
+ while (scout < rowB)
159
+ {
160
+ colB *= radix;
161
+ scout *= radix2;
162
+ }
163
+
164
+ // We now have an upper-bound for sigma, try to lower it.
165
+ // Find sigma s.t. 2^(2*sigma) * colNorm / 2 < rowNorm
166
+ scout = colNorm * (colB / radix) * colB; // Avoid overflow.
167
+ while (scout >= rowNorm)
168
+ {
169
+ colB /= radix;
170
+ scout /= radix2;
171
+ }
172
+
173
+ // This line is used to avoid insubstantial balancing.
174
+ if ((rowNorm + radix * scout) < RealScalar(0.95) * s * colB)
175
+ {
176
+ isBalanced = false;
177
+ rowB = RealScalar(1) / colB;
178
+ return false;
179
+ }
180
+ else
181
+ {
182
+ return true;
183
+ }
184
+ }
185
+ }
186
+
187
+ template< typename _Scalar, int _Deg >
188
+ inline
189
+ bool companion<_Scalar,_Deg>::balancedR( RealScalar colNorm, RealScalar rowNorm,
190
+ bool& isBalanced, RealScalar& colB, RealScalar& rowB )
191
+ {
192
+ if( RealScalar(0) == colNorm || RealScalar(0) == rowNorm ){ return true; }
193
+ else
194
+ {
195
+ /**
196
+ * Set the norm of the column and the row to the geometric mean
197
+ * of the row and column norm
198
+ */
199
+ const RealScalar q = colNorm/rowNorm;
200
+ if( !isApprox( q, _Scalar(1) ) )
201
+ {
202
+ rowB = sqrt( colNorm/rowNorm );
203
+ colB = RealScalar(1)/rowB;
204
+
205
+ isBalanced = false;
206
+ return false;
207
+ }
208
+ else{
209
+ return true; }
210
+ }
211
+ }
212
+
213
+
214
+ template< typename _Scalar, int _Deg >
215
+ void companion<_Scalar,_Deg>::balance()
216
+ {
217
+ using std::abs;
218
+ EIGEN_STATIC_ASSERT( Deg == Dynamic || 1 < Deg, YOU_MADE_A_PROGRAMMING_MISTAKE );
219
+ const Index deg = m_monic.size();
220
+ const Index deg_1 = deg-1;
221
+
222
+ bool hasConverged=false;
223
+ while( !hasConverged )
224
+ {
225
+ hasConverged = true;
226
+ RealScalar colNorm,rowNorm;
227
+ RealScalar colB,rowB;
228
+
229
+ //First row, first column excluding the diagonal
230
+ //==============================================
231
+ colNorm = abs(m_bl_diag[0]);
232
+ rowNorm = abs(m_monic[0]);
233
+
234
+ //Compute balancing of the row and the column
235
+ if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
236
+ {
237
+ m_bl_diag[0] *= colB;
238
+ m_monic[0] *= rowB;
239
+ }
240
+
241
+ //Middle rows and columns excluding the diagonal
242
+ //==============================================
243
+ for( Index i=1; i<deg_1; ++i )
244
+ {
245
+ // column norm, excluding the diagonal
246
+ colNorm = abs(m_bl_diag[i]);
247
+
248
+ // row norm, excluding the diagonal
249
+ rowNorm = abs(m_bl_diag[i-1]) + abs(m_monic[i]);
250
+
251
+ //Compute balancing of the row and the column
252
+ if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
253
+ {
254
+ m_bl_diag[i] *= colB;
255
+ m_bl_diag[i-1] *= rowB;
256
+ m_monic[i] *= rowB;
257
+ }
258
+ }
259
+
260
+ //Last row, last column excluding the diagonal
261
+ //============================================
262
+ const Index ebl = m_bl_diag.size()-1;
263
+ VectorBlock<RightColumn,Deg_1> headMonic( m_monic, 0, deg_1 );
264
+ colNorm = headMonic.array().abs().sum();
265
+ rowNorm = abs( m_bl_diag[ebl] );
266
+
267
+ //Compute balancing of the row and the column
268
+ if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
269
+ {
270
+ headMonic *= colB;
271
+ m_bl_diag[ebl] *= rowB;
272
+ }
273
+ }
274
+ }
275
+
276
+ } // end namespace internal
277
+
278
+ } // end namespace Eigen
279
+
280
+ #endif // EIGEN_COMPANION_H