sequenzo 0.1.18__cp312-cp312-macosx_10_13_universal2.whl → 0.1.19__cp312-cp312-macosx_10_13_universal2.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 sequenzo might be problematic. Click here for more details.

Files changed (357) hide show
  1. sequenzo/__init__.py +39 -7
  2. sequenzo/big_data/clara/utils/get_weighted_diss.c +155 -155
  3. sequenzo/big_data/clara/utils/get_weighted_diss.cpython-312-darwin.so +0 -0
  4. sequenzo/clustering/KMedoids.py +39 -0
  5. sequenzo/clustering/hierarchical_clustering.py +107 -5
  6. sequenzo/define_sequence_data.py +10 -1
  7. sequenzo/dissimilarity_measures/get_distance_matrix.py +1 -2
  8. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.c +155 -155
  9. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cpython-312-darwin.so +0 -0
  10. sequenzo/dissimilarity_measures/utils/seqconc.c +155 -155
  11. sequenzo/dissimilarity_measures/utils/seqconc.cpython-312-darwin.so +0 -0
  12. sequenzo/dissimilarity_measures/utils/seqdss.c +155 -155
  13. sequenzo/dissimilarity_measures/utils/seqdss.cpython-312-darwin.so +0 -0
  14. sequenzo/dissimilarity_measures/utils/seqdur.c +155 -155
  15. sequenzo/dissimilarity_measures/utils/seqdur.cpython-312-darwin.so +0 -0
  16. sequenzo/dissimilarity_measures/utils/seqlength.c +155 -155
  17. sequenzo/dissimilarity_measures/utils/seqlength.cpython-312-darwin.so +0 -0
  18. sequenzo/multidomain/cat.py +0 -53
  19. sequenzo/multidomain/idcd.py +0 -1
  20. sequenzo/openmp_setup.py +233 -0
  21. sequenzo/visualization/plot_transition_matrix.py +21 -22
  22. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/METADATA +43 -10
  23. sequenzo-0.1.19.dist-info/RECORD +215 -0
  24. sequenzo/dissimilarity_measures/setup.py +0 -35
  25. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LDLT.h +0 -688
  26. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT.h +0 -558
  27. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -99
  28. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -682
  29. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -346
  30. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -462
  31. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -91
  32. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -622
  33. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -418
  34. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -226
  35. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -374
  36. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -158
  37. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -657
  38. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -558
  39. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -77
  40. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -904
  41. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -87
  42. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -561
  43. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AlignedBox.h +0 -486
  44. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AngleAxis.h +0 -247
  45. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/EulerAngles.h +0 -114
  46. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Homogeneous.h +0 -501
  47. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Hyperplane.h +0 -282
  48. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -235
  49. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -232
  50. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Quaternion.h +0 -870
  51. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Rotation2D.h +0 -199
  52. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/RotationBase.h +0 -206
  53. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Scaling.h +0 -188
  54. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Transform.h +0 -1563
  55. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Translation.h +0 -202
  56. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Umeyama.h +0 -166
  57. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -168
  58. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -110
  59. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/Householder.h +0 -176
  60. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -545
  61. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -226
  62. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -212
  63. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -229
  64. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -394
  65. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -453
  66. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -444
  67. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -198
  68. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -117
  69. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Jacobi/Jacobi.h +0 -483
  70. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -358
  71. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/Determinant.h +0 -117
  72. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/FullPivLU.h +0 -877
  73. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/InverseImpl.h +0 -432
  74. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU.h +0 -624
  75. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -83
  76. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -351
  77. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -137
  78. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Amd.h +0 -435
  79. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -1863
  80. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -153
  81. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -678
  82. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -545
  83. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -674
  84. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -97
  85. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -635
  86. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -713
  87. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR.h +0 -434
  88. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -68
  89. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -335
  90. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/BDCSVD.h +0 -1366
  91. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD.h +0 -812
  92. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -91
  93. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/SVDBase.h +0 -376
  94. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -414
  95. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -697
  96. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -174
  97. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -378
  98. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -274
  99. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -352
  100. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  101. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -270
  102. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -571
  103. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -206
  104. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -370
  105. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -722
  106. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -150
  107. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -342
  108. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -138
  109. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDot.h +0 -98
  110. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -29
  111. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMap.h +0 -305
  112. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -1518
  113. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -398
  114. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -178
  115. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -181
  116. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -49
  117. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRef.h +0 -397
  118. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -659
  119. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -124
  120. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -198
  121. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -92
  122. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -189
  123. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -186
  124. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseVector.h +0 -478
  125. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseView.h +0 -254
  126. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -315
  127. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU.h +0 -923
  128. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -66
  129. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -226
  130. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -110
  131. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -375
  132. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -80
  133. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -181
  134. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -179
  135. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -107
  136. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  137. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -126
  138. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -130
  139. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -223
  140. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -258
  141. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -137
  142. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -136
  143. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -83
  144. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseQR/SparseQR.h +0 -758
  145. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdDeque.h +0 -116
  146. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdList.h +0 -106
  147. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdVector.h +0 -131
  148. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/details.h +0 -84
  149. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -1025
  150. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -642
  151. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Image.h +0 -82
  152. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Kernel.h +0 -79
  153. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/RealSvd2x2.h +0 -55
  154. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/blas.h +0 -440
  155. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapack.h +0 -152
  156. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke.h +0 -16292
  157. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke_mangling.h +0 -17
  158. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  159. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  160. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/BlockMethods.h +0 -1442
  161. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  162. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -177
  163. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  164. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  165. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  166. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  167. sequenzo/dissimilarity_measures/src/eigen/blas/BandTriangularSolver.h +0 -97
  168. sequenzo/dissimilarity_measures/src/eigen/blas/GeneralRank1Update.h +0 -44
  169. sequenzo/dissimilarity_measures/src/eigen/blas/PackedSelfadjointProduct.h +0 -53
  170. sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularMatrixVector.h +0 -79
  171. sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularSolverVector.h +0 -88
  172. sequenzo/dissimilarity_measures/src/eigen/blas/Rank2Update.h +0 -57
  173. sequenzo/dissimilarity_measures/src/eigen/blas/common.h +0 -175
  174. sequenzo/dissimilarity_measures/src/eigen/blas/f2c/datatypes.h +0 -24
  175. sequenzo/dissimilarity_measures/src/eigen/blas/level1_cplx_impl.h +0 -155
  176. sequenzo/dissimilarity_measures/src/eigen/blas/level1_impl.h +0 -144
  177. sequenzo/dissimilarity_measures/src/eigen/blas/level1_real_impl.h +0 -122
  178. sequenzo/dissimilarity_measures/src/eigen/blas/level2_cplx_impl.h +0 -360
  179. sequenzo/dissimilarity_measures/src/eigen/blas/level2_impl.h +0 -553
  180. sequenzo/dissimilarity_measures/src/eigen/blas/level2_real_impl.h +0 -306
  181. sequenzo/dissimilarity_measures/src/eigen/blas/level3_impl.h +0 -702
  182. sequenzo/dissimilarity_measures/src/eigen/debug/gdb/__init__.py +0 -1
  183. sequenzo/dissimilarity_measures/src/eigen/debug/gdb/printers.py +0 -314
  184. sequenzo/dissimilarity_measures/src/eigen/lapack/lapack_common.h +0 -29
  185. sequenzo/dissimilarity_measures/src/eigen/scripts/relicense.py +0 -69
  186. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +0 -554
  187. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +0 -329
  188. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +0 -247
  189. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +0 -1176
  190. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +0 -1559
  191. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +0 -1093
  192. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +0 -518
  193. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +0 -377
  194. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +0 -1023
  195. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +0 -73
  196. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +0 -6
  197. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +0 -1413
  198. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +0 -575
  199. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +0 -1650
  200. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +0 -1679
  201. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +0 -456
  202. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +0 -1132
  203. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +0 -544
  204. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +0 -214
  205. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +0 -347
  206. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +0 -137
  207. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +0 -6
  208. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +0 -104
  209. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +0 -389
  210. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +0 -1048
  211. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +0 -409
  212. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +0 -236
  213. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +0 -490
  214. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +0 -236
  215. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +0 -983
  216. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +0 -703
  217. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +0 -388
  218. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +0 -669
  219. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +0 -379
  220. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +0 -237
  221. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +0 -191
  222. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +0 -488
  223. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +0 -302
  224. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +0 -33
  225. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +0 -99
  226. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +0 -44
  227. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +0 -79
  228. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +0 -603
  229. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +0 -738
  230. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +0 -247
  231. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +0 -82
  232. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +0 -263
  233. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +0 -216
  234. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +0 -98
  235. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +0 -327
  236. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +0 -311
  237. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +0 -1102
  238. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +0 -708
  239. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +0 -291
  240. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +0 -322
  241. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +0 -998
  242. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +0 -6
  243. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +0 -966
  244. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +0 -582
  245. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +0 -454
  246. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +0 -465
  247. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +0 -528
  248. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +0 -513
  249. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +0 -471
  250. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +0 -161
  251. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +0 -346
  252. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +0 -303
  253. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +0 -264
  254. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +0 -249
  255. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +0 -629
  256. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +0 -293
  257. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +0 -236
  258. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +0 -338
  259. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +0 -669
  260. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +0 -67
  261. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +0 -249
  262. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +0 -486
  263. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +0 -236
  264. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +0 -23
  265. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +0 -40
  266. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +0 -301
  267. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +0 -48
  268. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +0 -20
  269. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +0 -537
  270. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +0 -88
  271. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h +0 -261
  272. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +0 -158
  273. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +0 -108
  274. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +0 -730
  275. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +0 -220
  276. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h +0 -293
  277. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/KdBVH.h +0 -223
  278. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +0 -790
  279. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h +0 -355
  280. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h +0 -305
  281. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h +0 -261
  282. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +0 -449
  283. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +0 -187
  284. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +0 -511
  285. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h +0 -335
  286. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IDRS.h +0 -436
  287. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +0 -90
  288. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h +0 -154
  289. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h +0 -267
  290. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h +0 -193
  291. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +0 -305
  292. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +0 -84
  293. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +0 -202
  294. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +0 -160
  295. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +0 -188
  296. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +0 -396
  297. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +0 -441
  298. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +0 -569
  299. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +0 -373
  300. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +0 -705
  301. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +0 -368
  302. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +0 -117
  303. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +0 -95
  304. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +0 -601
  305. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +0 -657
  306. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h +0 -66
  307. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h +0 -70
  308. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +0 -107
  309. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +0 -79
  310. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +0 -298
  311. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +0 -91
  312. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +0 -30
  313. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +0 -99
  314. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +0 -49
  315. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +0 -130
  316. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/Companion.h +0 -280
  317. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +0 -428
  318. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +0 -143
  319. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +0 -352
  320. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h +0 -862
  321. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +0 -212
  322. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h +0 -295
  323. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h +0 -259
  324. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h +0 -89
  325. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +0 -122
  326. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +0 -1079
  327. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +0 -404
  328. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h +0 -282
  329. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +0 -247
  330. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h +0 -349
  331. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +0 -286
  332. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +0 -68
  333. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +0 -357
  334. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +0 -66
  335. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +0 -1959
  336. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +0 -118
  337. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +0 -67
  338. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +0 -167
  339. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +0 -58
  340. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +0 -330
  341. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +0 -58
  342. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +0 -2045
  343. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +0 -79
  344. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +0 -46
  345. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +0 -16
  346. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +0 -46
  347. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +0 -16
  348. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +0 -369
  349. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +0 -54
  350. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +0 -34
  351. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/Spline.h +0 -507
  352. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFitting.h +0 -431
  353. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFwd.h +0 -93
  354. sequenzo-0.1.18.dist-info/RECORD +0 -544
  355. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/WHEEL +0 -0
  356. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/licenses/LICENSE +0 -0
  357. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/top_level.txt +0 -0
@@ -1,669 +0,0 @@
1
- // This file is part of Eigen, a lightweight C++ template library
2
- // for linear algebra.
3
- //
4
- // Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
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_CXX11_TENSORSYMMETRY_TEMPLATEGROUPTHEORY_H
11
- #define EIGEN_CXX11_TENSORSYMMETRY_TEMPLATEGROUPTHEORY_H
12
-
13
- namespace Eigen {
14
-
15
- namespace internal {
16
-
17
- namespace group_theory {
18
-
19
- /** \internal
20
- * \file CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h
21
- * This file contains C++ templates that implement group theory algorithms.
22
- *
23
- * The algorithms allow for a compile-time analysis of finite groups.
24
- *
25
- * Currently only Dimino's algorithm is implemented, which returns a list
26
- * of all elements in a group given a set of (possibly redundant) generators.
27
- * (One could also do that with the so-called orbital algorithm, but that
28
- * is much more expensive and usually has no advantages.)
29
- */
30
-
31
- /**********************************************************************
32
- * "Ok kid, here is where it gets complicated."
33
- * - Amelia Pond in the "Doctor Who" episode
34
- * "The Big Bang"
35
- *
36
- * Dimino's algorithm
37
- * ==================
38
- *
39
- * The following is Dimino's algorithm in sequential form:
40
- *
41
- * Input: identity element, list of generators, equality check,
42
- * multiplication operation
43
- * Output: list of group elements
44
- *
45
- * 1. add identity element
46
- * 2. remove identities from list of generators
47
- * 3. add all powers of first generator that aren't the
48
- * identity element
49
- * 4. go through all remaining generators:
50
- * a. if generator is already in the list of elements
51
- * -> do nothing
52
- * b. otherwise
53
- * i. remember current # of elements
54
- * (i.e. the size of the current subgroup)
55
- * ii. add all current elements (which includes
56
- * the identity) each multiplied from right
57
- * with the current generator to the group
58
- * iii. add all remaining cosets that are generated
59
- * by products of the new generator with itself
60
- * and all other generators seen so far
61
- *
62
- * In functional form, this is implemented as a long set of recursive
63
- * templates that have a complicated relationship.
64
- *
65
- * The main interface for Dimino's algorithm is the template
66
- * enumerate_group_elements. All lists are implemented as variadic
67
- * type_list<typename...> and numeric_list<typename = int, int...>
68
- * templates.
69
- *
70
- * 'Calling' templates is usually done via typedefs.
71
- *
72
- * This algorithm is an extended version of the basic version. The
73
- * extension consists in the fact that each group element has a set
74
- * of flags associated with it. Multiplication of two group elements
75
- * with each other results in a group element whose flags are the
76
- * XOR of the flags of the previous elements. Each time the algorithm
77
- * notices that a group element it just calculated is already in the
78
- * list of current elements, the flags of both will be compared and
79
- * added to the so-called 'global flags' of the group.
80
- *
81
- * The rationale behind this extension is that this allows not only
82
- * for the description of symmetries between tensor indices, but
83
- * also allows for the description of hermiticity, antisymmetry and
84
- * antihermiticity. Negation and conjugation each are specific bit
85
- * in the flags value and if two different ways to reach a group
86
- * element lead to two different flags, this poses a constraint on
87
- * the allowed values of the resulting tensor. For example, if a
88
- * group element is reach both with and without the conjugation
89
- * flags, it is clear that the resulting tensor has to be real.
90
- *
91
- * Note that this flag mechanism is quite generic and may have other
92
- * uses beyond tensor properties.
93
- *
94
- * IMPORTANT:
95
- * This algorithm assumes the group to be finite. If you try to
96
- * run it with a group that's infinite, the algorithm will only
97
- * terminate once you hit a compiler limit (max template depth).
98
- * Also note that trying to use this implementation to create a
99
- * very large group will probably either make you hit the same
100
- * limit, cause the compiler to segfault or at the very least
101
- * take a *really* long time (hours, days, weeks - sic!) to
102
- * compile. It is not recommended to plug in more than 4
103
- * generators, unless they are independent of each other.
104
- */
105
-
106
- /** \internal
107
- *
108
- * \class strip_identities
109
- * \ingroup CXX11_TensorSymmetry_Module
110
- *
111
- * \brief Cleanse a list of group elements of the identity element
112
- *
113
- * This template is used to make a first pass through all initial
114
- * generators of Dimino's algorithm and remove the identity
115
- * elements.
116
- *
117
- * \sa enumerate_group_elements
118
- */
119
- template<template<typename, typename> class Equality, typename id, typename L> struct strip_identities;
120
-
121
- template<
122
- template<typename, typename> class Equality,
123
- typename id,
124
- typename t,
125
- typename... ts
126
- >
127
- struct strip_identities<Equality, id, type_list<t, ts...>>
128
- {
129
- typedef typename conditional<
130
- Equality<id, t>::value,
131
- typename strip_identities<Equality, id, type_list<ts...>>::type,
132
- typename concat<type_list<t>, typename strip_identities<Equality, id, type_list<ts...>>::type>::type
133
- >::type type;
134
- constexpr static int global_flags = Equality<id, t>::global_flags | strip_identities<Equality, id, type_list<ts...>>::global_flags;
135
- };
136
-
137
- template<
138
- template<typename, typename> class Equality,
139
- typename id
140
- EIGEN_TPL_PP_SPEC_HACK_DEFC(typename, ts)
141
- >
142
- struct strip_identities<Equality, id, type_list<EIGEN_TPL_PP_SPEC_HACK_USE(ts)>>
143
- {
144
- typedef type_list<> type;
145
- constexpr static int global_flags = 0;
146
- };
147
-
148
- /** \internal
149
- *
150
- * \class dimino_first_step_elements_helper
151
- * \ingroup CXX11_TensorSymmetry_Module
152
- *
153
- * \brief Recursive template that adds powers of the first generator to the list of group elements
154
- *
155
- * This template calls itself recursively to add powers of the first
156
- * generator to the list of group elements. It stops if it reaches
157
- * the identity element again.
158
- *
159
- * \sa enumerate_group_elements, dimino_first_step_elements
160
- */
161
- template<
162
- template<typename, typename> class Multiply,
163
- template<typename, typename> class Equality,
164
- typename id,
165
- typename g,
166
- typename current_element,
167
- typename elements,
168
- bool dont_add_current_element // = false
169
- >
170
- struct dimino_first_step_elements_helper
171
- #ifndef EIGEN_PARSED_BY_DOXYGEN
172
- : // recursive inheritance is too difficult for Doxygen
173
- public dimino_first_step_elements_helper<
174
- Multiply,
175
- Equality,
176
- id,
177
- g,
178
- typename Multiply<current_element, g>::type,
179
- typename concat<elements, type_list<current_element>>::type,
180
- Equality<typename Multiply<current_element, g>::type, id>::value
181
- > {};
182
-
183
- template<
184
- template<typename, typename> class Multiply,
185
- template<typename, typename> class Equality,
186
- typename id,
187
- typename g,
188
- typename current_element,
189
- typename elements
190
- >
191
- struct dimino_first_step_elements_helper<Multiply, Equality, id, g, current_element, elements, true>
192
- #endif // EIGEN_PARSED_BY_DOXYGEN
193
- {
194
- typedef elements type;
195
- constexpr static int global_flags = Equality<current_element, id>::global_flags;
196
- };
197
-
198
- /** \internal
199
- *
200
- * \class dimino_first_step_elements
201
- * \ingroup CXX11_TensorSymmetry_Module
202
- *
203
- * \brief Add all powers of the first generator to the list of group elements
204
- *
205
- * This template takes the first non-identity generator and generates the initial
206
- * list of elements which consists of all powers of that generator. For a group
207
- * with just one generated, it would be enumerated after this.
208
- *
209
- * \sa enumerate_group_elements
210
- */
211
- template<
212
- template<typename, typename> class Multiply,
213
- template<typename, typename> class Equality,
214
- typename id,
215
- typename generators
216
- >
217
- struct dimino_first_step_elements
218
- {
219
- typedef typename get<0, generators>::type first_generator;
220
- typedef typename skip<1, generators>::type next_generators;
221
- typedef type_list<first_generator> generators_done;
222
-
223
- typedef dimino_first_step_elements_helper<
224
- Multiply,
225
- Equality,
226
- id,
227
- first_generator,
228
- first_generator,
229
- type_list<id>,
230
- false
231
- > helper;
232
- typedef typename helper::type type;
233
- constexpr static int global_flags = helper::global_flags;
234
- };
235
-
236
- /** \internal
237
- *
238
- * \class dimino_get_coset_elements
239
- * \ingroup CXX11_TensorSymmetry_Module
240
- *
241
- * \brief Generate all elements of a specific coset
242
- *
243
- * This template generates all the elements of a specific coset by
244
- * multiplying all elements in the given subgroup with the new
245
- * coset representative. Note that the first element of the
246
- * subgroup is always the identity element, so the first element of
247
- * the result of this template is going to be the coset
248
- * representative itself.
249
- *
250
- * Note that this template accepts an additional boolean parameter
251
- * that specifies whether to actually generate the coset (true) or
252
- * just return an empty list (false).
253
- *
254
- * \sa enumerate_group_elements, dimino_add_cosets_for_rep
255
- */
256
- template<
257
- template<typename, typename> class Multiply,
258
- typename sub_group_elements,
259
- typename new_coset_rep,
260
- bool generate_coset // = true
261
- >
262
- struct dimino_get_coset_elements
263
- {
264
- typedef typename apply_op_from_right<Multiply, new_coset_rep, sub_group_elements>::type type;
265
- };
266
-
267
- template<
268
- template<typename, typename> class Multiply,
269
- typename sub_group_elements,
270
- typename new_coset_rep
271
- >
272
- struct dimino_get_coset_elements<Multiply, sub_group_elements, new_coset_rep, false>
273
- {
274
- typedef type_list<> type;
275
- };
276
-
277
- /** \internal
278
- *
279
- * \class dimino_add_cosets_for_rep
280
- * \ingroup CXX11_TensorSymmetry_Module
281
- *
282
- * \brief Recursive template for adding coset spaces
283
- *
284
- * This template multiplies the coset representative with a generator
285
- * from the list of previous generators. If the new element is not in
286
- * the group already, it adds the corresponding coset. Finally it
287
- * proceeds to call itself with the next generator from the list.
288
- *
289
- * \sa enumerate_group_elements, dimino_add_all_coset_spaces
290
- */
291
- template<
292
- template<typename, typename> class Multiply,
293
- template<typename, typename> class Equality,
294
- typename id,
295
- typename sub_group_elements,
296
- typename elements,
297
- typename generators,
298
- typename rep_element,
299
- int sub_group_size
300
- >
301
- struct dimino_add_cosets_for_rep;
302
-
303
- template<
304
- template<typename, typename> class Multiply,
305
- template<typename, typename> class Equality,
306
- typename id,
307
- typename sub_group_elements,
308
- typename elements,
309
- typename g,
310
- typename... gs,
311
- typename rep_element,
312
- int sub_group_size
313
- >
314
- struct dimino_add_cosets_for_rep<Multiply, Equality, id, sub_group_elements, elements, type_list<g, gs...>, rep_element, sub_group_size>
315
- {
316
- typedef typename Multiply<rep_element, g>::type new_coset_rep;
317
- typedef contained_in_list_gf<Equality, new_coset_rep, elements> _cil;
318
- constexpr static bool add_coset = !_cil::value;
319
-
320
- typedef typename dimino_get_coset_elements<
321
- Multiply,
322
- sub_group_elements,
323
- new_coset_rep,
324
- add_coset
325
- >::type coset_elements;
326
-
327
- typedef dimino_add_cosets_for_rep<
328
- Multiply,
329
- Equality,
330
- id,
331
- sub_group_elements,
332
- typename concat<elements, coset_elements>::type,
333
- type_list<gs...>,
334
- rep_element,
335
- sub_group_size
336
- > _helper;
337
-
338
- typedef typename _helper::type type;
339
- constexpr static int global_flags = _cil::global_flags | _helper::global_flags;
340
-
341
- /* Note that we don't have to update global flags here, since
342
- * we will only add these elements if they are not part of
343
- * the group already. But that only happens if the coset rep
344
- * is not already in the group, so the check for the coset rep
345
- * will catch this.
346
- */
347
- };
348
-
349
- template<
350
- template<typename, typename> class Multiply,
351
- template<typename, typename> class Equality,
352
- typename id,
353
- typename sub_group_elements,
354
- typename elements
355
- EIGEN_TPL_PP_SPEC_HACK_DEFC(typename, empty),
356
- typename rep_element,
357
- int sub_group_size
358
- >
359
- struct dimino_add_cosets_for_rep<Multiply, Equality, id, sub_group_elements, elements, type_list<EIGEN_TPL_PP_SPEC_HACK_USE(empty)>, rep_element, sub_group_size>
360
- {
361
- typedef elements type;
362
- constexpr static int global_flags = 0;
363
- };
364
-
365
- /** \internal
366
- *
367
- * \class dimino_add_all_coset_spaces
368
- * \ingroup CXX11_TensorSymmetry_Module
369
- *
370
- * \brief Recursive template for adding all coset spaces for a new generator
371
- *
372
- * This template tries to go through the list of generators (with
373
- * the help of the dimino_add_cosets_for_rep template) as long as
374
- * it still finds elements that are not part of the group and add
375
- * the corresponding cosets.
376
- *
377
- * \sa enumerate_group_elements, dimino_add_cosets_for_rep
378
- */
379
- template<
380
- template<typename, typename> class Multiply,
381
- template<typename, typename> class Equality,
382
- typename id,
383
- typename sub_group_elements,
384
- typename elements,
385
- typename generators,
386
- int sub_group_size,
387
- int rep_pos,
388
- bool stop_condition // = false
389
- >
390
- struct dimino_add_all_coset_spaces
391
- {
392
- typedef typename get<rep_pos, elements>::type rep_element;
393
- typedef dimino_add_cosets_for_rep<
394
- Multiply,
395
- Equality,
396
- id,
397
- sub_group_elements,
398
- elements,
399
- generators,
400
- rep_element,
401
- sub_group_elements::count
402
- > _ac4r;
403
- typedef typename _ac4r::type new_elements;
404
-
405
- constexpr static int new_rep_pos = rep_pos + sub_group_elements::count;
406
- constexpr static bool new_stop_condition = new_rep_pos >= new_elements::count;
407
-
408
- typedef dimino_add_all_coset_spaces<
409
- Multiply,
410
- Equality,
411
- id,
412
- sub_group_elements,
413
- new_elements,
414
- generators,
415
- sub_group_size,
416
- new_rep_pos,
417
- new_stop_condition
418
- > _helper;
419
-
420
- typedef typename _helper::type type;
421
- constexpr static int global_flags = _helper::global_flags | _ac4r::global_flags;
422
- };
423
-
424
- template<
425
- template<typename, typename> class Multiply,
426
- template<typename, typename> class Equality,
427
- typename id,
428
- typename sub_group_elements,
429
- typename elements,
430
- typename generators,
431
- int sub_group_size,
432
- int rep_pos
433
- >
434
- struct dimino_add_all_coset_spaces<Multiply, Equality, id, sub_group_elements, elements, generators, sub_group_size, rep_pos, true>
435
- {
436
- typedef elements type;
437
- constexpr static int global_flags = 0;
438
- };
439
-
440
- /** \internal
441
- *
442
- * \class dimino_add_generator
443
- * \ingroup CXX11_TensorSymmetry_Module
444
- *
445
- * \brief Enlarge the group by adding a new generator.
446
- *
447
- * It accepts a boolean parameter that determines if the generator is redundant,
448
- * i.e. was already seen in the group. In that case, it reduces to a no-op.
449
- *
450
- * \sa enumerate_group_elements, dimino_add_all_coset_spaces
451
- */
452
- template<
453
- template<typename, typename> class Multiply,
454
- template<typename, typename> class Equality,
455
- typename id,
456
- typename elements,
457
- typename generators_done,
458
- typename current_generator,
459
- bool redundant // = false
460
- >
461
- struct dimino_add_generator
462
- {
463
- /* this template is only called if the generator is not redundant
464
- * => all elements of the group multiplied with the new generator
465
- * are going to be new elements of the most trivial coset space
466
- */
467
- typedef typename apply_op_from_right<Multiply, current_generator, elements>::type multiplied_elements;
468
- typedef typename concat<elements, multiplied_elements>::type new_elements;
469
-
470
- constexpr static int rep_pos = elements::count;
471
-
472
- typedef dimino_add_all_coset_spaces<
473
- Multiply,
474
- Equality,
475
- id,
476
- elements, // elements of previous subgroup
477
- new_elements,
478
- typename concat<generators_done, type_list<current_generator>>::type,
479
- elements::count, // size of previous subgroup
480
- rep_pos,
481
- false // don't stop (because rep_pos >= new_elements::count is always false at this point)
482
- > _helper;
483
- typedef typename _helper::type type;
484
- constexpr static int global_flags = _helper::global_flags;
485
- };
486
-
487
- template<
488
- template<typename, typename> class Multiply,
489
- template<typename, typename> class Equality,
490
- typename id,
491
- typename elements,
492
- typename generators_done,
493
- typename current_generator
494
- >
495
- struct dimino_add_generator<Multiply, Equality, id, elements, generators_done, current_generator, true>
496
- {
497
- // redundant case
498
- typedef elements type;
499
- constexpr static int global_flags = 0;
500
- };
501
-
502
- /** \internal
503
- *
504
- * \class dimino_add_remaining_generators
505
- * \ingroup CXX11_TensorSymmetry_Module
506
- *
507
- * \brief Recursive template that adds all remaining generators to a group
508
- *
509
- * Loop through the list of generators that remain and successively
510
- * add them to the group.
511
- *
512
- * \sa enumerate_group_elements, dimino_add_generator
513
- */
514
- template<
515
- template<typename, typename> class Multiply,
516
- template<typename, typename> class Equality,
517
- typename id,
518
- typename generators_done,
519
- typename remaining_generators,
520
- typename elements
521
- >
522
- struct dimino_add_remaining_generators
523
- {
524
- typedef typename get<0, remaining_generators>::type first_generator;
525
- typedef typename skip<1, remaining_generators>::type next_generators;
526
-
527
- typedef contained_in_list_gf<Equality, first_generator, elements> _cil;
528
-
529
- typedef dimino_add_generator<
530
- Multiply,
531
- Equality,
532
- id,
533
- elements,
534
- generators_done,
535
- first_generator,
536
- _cil::value
537
- > _helper;
538
-
539
- typedef typename _helper::type new_elements;
540
-
541
- typedef dimino_add_remaining_generators<
542
- Multiply,
543
- Equality,
544
- id,
545
- typename concat<generators_done, type_list<first_generator>>::type,
546
- next_generators,
547
- new_elements
548
- > _next_iter;
549
-
550
- typedef typename _next_iter::type type;
551
- constexpr static int global_flags =
552
- _cil::global_flags |
553
- _helper::global_flags |
554
- _next_iter::global_flags;
555
- };
556
-
557
- template<
558
- template<typename, typename> class Multiply,
559
- template<typename, typename> class Equality,
560
- typename id,
561
- typename generators_done,
562
- typename elements
563
- >
564
- struct dimino_add_remaining_generators<Multiply, Equality, id, generators_done, type_list<>, elements>
565
- {
566
- typedef elements type;
567
- constexpr static int global_flags = 0;
568
- };
569
-
570
- /** \internal
571
- *
572
- * \class enumerate_group_elements_noid
573
- * \ingroup CXX11_TensorSymmetry_Module
574
- *
575
- * \brief Helper template that implements group element enumeration
576
- *
577
- * This is a helper template that implements the actual enumeration
578
- * of group elements. This has been split so that the list of
579
- * generators can be cleansed of the identity element before
580
- * performing the actual operation.
581
- *
582
- * \sa enumerate_group_elements
583
- */
584
- template<
585
- template<typename, typename> class Multiply,
586
- template<typename, typename> class Equality,
587
- typename id,
588
- typename generators,
589
- int initial_global_flags = 0
590
- >
591
- struct enumerate_group_elements_noid
592
- {
593
- typedef dimino_first_step_elements<Multiply, Equality, id, generators> first_step;
594
- typedef typename first_step::type first_step_elements;
595
-
596
- typedef dimino_add_remaining_generators<
597
- Multiply,
598
- Equality,
599
- id,
600
- typename first_step::generators_done,
601
- typename first_step::next_generators, // remaining_generators
602
- typename first_step::type // first_step elements
603
- > _helper;
604
-
605
- typedef typename _helper::type type;
606
- constexpr static int global_flags =
607
- initial_global_flags |
608
- first_step::global_flags |
609
- _helper::global_flags;
610
- };
611
-
612
- // in case when no generators are specified
613
- template<
614
- template<typename, typename> class Multiply,
615
- template<typename, typename> class Equality,
616
- typename id,
617
- int initial_global_flags
618
- >
619
- struct enumerate_group_elements_noid<Multiply, Equality, id, type_list<>, initial_global_flags>
620
- {
621
- typedef type_list<id> type;
622
- constexpr static int global_flags = initial_global_flags;
623
- };
624
-
625
- /** \internal
626
- *
627
- * \class enumerate_group_elements
628
- * \ingroup CXX11_TensorSymmetry_Module
629
- *
630
- * \brief Enumerate all elements in a finite group
631
- *
632
- * This template enumerates all elements in a finite group. It accepts
633
- * the following template parameters:
634
- *
635
- * \tparam Multiply The multiplication operation that multiplies two group elements
636
- * with each other.
637
- * \tparam Equality The equality check operation that checks if two group elements
638
- * are equal to another.
639
- * \tparam id The identity element
640
- * \tparam _generators A list of (possibly redundant) generators of the group
641
- */
642
- template<
643
- template<typename, typename> class Multiply,
644
- template<typename, typename> class Equality,
645
- typename id,
646
- typename _generators
647
- >
648
- struct enumerate_group_elements
649
- : public enumerate_group_elements_noid<
650
- Multiply,
651
- Equality,
652
- id,
653
- typename strip_identities<Equality, id, _generators>::type,
654
- strip_identities<Equality, id, _generators>::global_flags
655
- >
656
- {
657
- };
658
-
659
- } // end namespace group_theory
660
-
661
- } // end namespace internal
662
-
663
- } // end namespace Eigen
664
-
665
- #endif // EIGEN_CXX11_TENSORSYMMETRY_TEMPLATEGROUPTHEORY_H
666
-
667
- /*
668
- * kate: space-indent on; indent-width 2; mixedindent off; indent-mode cstyle;
669
- */