sequenzo 0.1.17__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.
- sequenzo/__init__.py +64 -8
- sequenzo/big_data/clara/clara.py +1 -1
- sequenzo/big_data/clara/utils/get_weighted_diss.c +155 -155
- sequenzo/big_data/clara/utils/get_weighted_diss.cpython-312-darwin.so +0 -0
- sequenzo/clustering/KMedoids.py +39 -0
- sequenzo/clustering/hierarchical_clustering.py +304 -8
- sequenzo/define_sequence_data.py +44 -3
- sequenzo/dissimilarity_measures/c_code.cpython-312-darwin.so +0 -0
- sequenzo/dissimilarity_measures/get_distance_matrix.py +1 -2
- sequenzo/dissimilarity_measures/get_substitution_cost_matrix.py +1 -1
- sequenzo/dissimilarity_measures/src/DHDdistance.cpp +13 -37
- sequenzo/dissimilarity_measures/src/LCPdistance.cpp +13 -37
- sequenzo/dissimilarity_measures/src/OMdistance.cpp +12 -47
- sequenzo/dissimilarity_measures/src/OMspellDistance.cpp +103 -67
- sequenzo/dissimilarity_measures/src/dp_utils.h +160 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_arithmetic.hpp +41 -16
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_complex.hpp +4 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_details.hpp +7 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_logical.hpp +10 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_math.hpp +127 -43
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_memory.hpp +30 -2
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_swizzle.hpp +174 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_trigo.hpp +14 -5
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx.hpp +111 -54
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx2.hpp +131 -9
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512bw.hpp +11 -113
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512dq.hpp +39 -7
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512f.hpp +336 -30
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi.hpp +9 -37
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi2.hpp +58 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common.hpp +1 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common_fwd.hpp +35 -2
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_constants.hpp +3 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_emulated.hpp +17 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx.hpp +13 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_sse.hpp +18 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma4.hpp +13 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_isa.hpp +8 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon.hpp +363 -34
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon64.hpp +7 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_rvv.hpp +13 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_scalar.hpp +41 -4
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse2.hpp +252 -16
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse3.hpp +9 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_ssse3.hpp +12 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sve.hpp +7 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_vsx.hpp +892 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_wasm.hpp +78 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_arch.hpp +3 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_config.hpp +13 -2
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_cpuid.hpp +5 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_inline.hpp +5 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_all_registers.hpp +2 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_api.hpp +64 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch.hpp +36 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_rvv_register.hpp +40 -31
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_traits.hpp +8 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_vsx_register.hpp +77 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/xsimd.hpp +6 -0
- sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.c +155 -155
- sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cpython-312-darwin.so +0 -0
- sequenzo/dissimilarity_measures/utils/seqconc.c +155 -155
- sequenzo/dissimilarity_measures/utils/seqconc.cpython-312-darwin.so +0 -0
- sequenzo/dissimilarity_measures/utils/seqdss.c +155 -155
- sequenzo/dissimilarity_measures/utils/seqdss.cpython-312-darwin.so +0 -0
- sequenzo/dissimilarity_measures/utils/seqdur.c +155 -155
- sequenzo/dissimilarity_measures/utils/seqdur.cpython-312-darwin.so +0 -0
- sequenzo/dissimilarity_measures/utils/seqlength.c +155 -155
- sequenzo/dissimilarity_measures/utils/seqlength.cpython-312-darwin.so +0 -0
- sequenzo/multidomain/cat.py +0 -53
- sequenzo/multidomain/idcd.py +0 -1
- sequenzo/openmp_setup.py +233 -0
- sequenzo/sequence_characteristics/__init__.py +4 -0
- sequenzo/sequence_characteristics/complexity_index.py +17 -57
- sequenzo/sequence_characteristics/overall_cross_sectional_entropy.py +177 -111
- sequenzo/sequence_characteristics/plot_characteristics.py +30 -11
- sequenzo/sequence_characteristics/simple_characteristics.py +1 -0
- sequenzo/sequence_characteristics/state_frequencies_and_entropy_per_sequence.py +9 -3
- sequenzo/sequence_characteristics/turbulence.py +47 -67
- sequenzo/sequence_characteristics/variance_of_spell_durations.py +19 -9
- sequenzo/sequence_characteristics/within_sequence_entropy.py +5 -58
- sequenzo/visualization/plot_sequence_index.py +58 -35
- sequenzo/visualization/plot_state_distribution.py +57 -36
- sequenzo/visualization/plot_transition_matrix.py +21 -22
- sequenzo/with_event_history_analysis/__init__.py +35 -0
- sequenzo/with_event_history_analysis/sequence_analysis_multi_state_model.py +850 -0
- sequenzo/with_event_history_analysis/sequence_history_analysis.py +283 -0
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/METADATA +48 -14
- sequenzo-0.1.19.dist-info/RECORD +215 -0
- sequenzo/dissimilarity_measures/setup.py +0 -35
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LDLT.h +0 -688
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT.h +0 -558
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -99
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -682
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -346
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -462
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -91
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -622
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -418
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -226
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -374
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -158
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -657
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -558
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -77
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -904
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -87
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -561
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AlignedBox.h +0 -486
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AngleAxis.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/EulerAngles.h +0 -114
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Homogeneous.h +0 -501
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Hyperplane.h +0 -282
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -235
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -232
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Quaternion.h +0 -870
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Rotation2D.h +0 -199
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/RotationBase.h +0 -206
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Scaling.h +0 -188
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Transform.h +0 -1563
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Translation.h +0 -202
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Umeyama.h +0 -166
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -168
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -110
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/Householder.h +0 -176
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -545
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -226
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -212
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -229
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -394
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -453
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -444
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -198
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -117
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Jacobi/Jacobi.h +0 -483
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -358
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/Determinant.h +0 -117
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/FullPivLU.h +0 -877
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/InverseImpl.h +0 -432
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU.h +0 -624
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -83
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -351
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -137
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Amd.h +0 -435
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -1863
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -153
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -678
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -545
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -674
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -97
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -635
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -713
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR.h +0 -434
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -68
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -335
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/BDCSVD.h +0 -1366
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD.h +0 -812
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -91
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/SVDBase.h +0 -376
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -414
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -697
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -174
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -378
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -274
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -352
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -270
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -571
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -206
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -370
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -722
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -150
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -342
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -138
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDot.h +0 -98
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -29
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMap.h +0 -305
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -1518
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -398
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -178
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -181
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -49
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRef.h +0 -397
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -659
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -124
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -198
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -92
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -189
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -186
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseVector.h +0 -478
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseView.h +0 -254
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -315
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU.h +0 -923
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -66
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -226
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -110
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -375
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -80
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -181
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -179
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -107
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -126
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -130
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -223
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -258
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -137
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -136
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -83
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseQR/SparseQR.h +0 -758
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdDeque.h +0 -116
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdList.h +0 -106
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdVector.h +0 -131
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/details.h +0 -84
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -1025
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -642
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Image.h +0 -82
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Kernel.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/RealSvd2x2.h +0 -55
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/blas.h +0 -440
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapack.h +0 -152
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke.h +0 -16292
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke_mangling.h +0 -17
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/BlockMethods.h +0 -1442
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -177
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
- sequenzo/dissimilarity_measures/src/eigen/blas/BandTriangularSolver.h +0 -97
- sequenzo/dissimilarity_measures/src/eigen/blas/GeneralRank1Update.h +0 -44
- sequenzo/dissimilarity_measures/src/eigen/blas/PackedSelfadjointProduct.h +0 -53
- sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularMatrixVector.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularSolverVector.h +0 -88
- sequenzo/dissimilarity_measures/src/eigen/blas/Rank2Update.h +0 -57
- sequenzo/dissimilarity_measures/src/eigen/blas/common.h +0 -175
- sequenzo/dissimilarity_measures/src/eigen/blas/f2c/datatypes.h +0 -24
- sequenzo/dissimilarity_measures/src/eigen/blas/level1_cplx_impl.h +0 -155
- sequenzo/dissimilarity_measures/src/eigen/blas/level1_impl.h +0 -144
- sequenzo/dissimilarity_measures/src/eigen/blas/level1_real_impl.h +0 -122
- sequenzo/dissimilarity_measures/src/eigen/blas/level2_cplx_impl.h +0 -360
- sequenzo/dissimilarity_measures/src/eigen/blas/level2_impl.h +0 -553
- sequenzo/dissimilarity_measures/src/eigen/blas/level2_real_impl.h +0 -306
- sequenzo/dissimilarity_measures/src/eigen/blas/level3_impl.h +0 -702
- sequenzo/dissimilarity_measures/src/eigen/debug/gdb/__init__.py +0 -1
- sequenzo/dissimilarity_measures/src/eigen/debug/gdb/printers.py +0 -314
- sequenzo/dissimilarity_measures/src/eigen/lapack/lapack_common.h +0 -29
- sequenzo/dissimilarity_measures/src/eigen/scripts/relicense.py +0 -69
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +0 -554
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +0 -329
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +0 -1176
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +0 -1559
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +0 -1093
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +0 -518
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +0 -377
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +0 -1023
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +0 -73
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +0 -6
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +0 -1413
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +0 -575
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +0 -1650
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +0 -1679
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +0 -456
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +0 -1132
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +0 -544
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +0 -214
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +0 -347
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +0 -137
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +0 -6
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +0 -104
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +0 -389
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +0 -1048
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +0 -409
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +0 -490
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +0 -983
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +0 -703
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +0 -388
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +0 -669
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +0 -379
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +0 -237
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +0 -191
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +0 -488
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +0 -302
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +0 -33
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +0 -99
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +0 -44
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +0 -603
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +0 -738
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +0 -82
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +0 -263
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +0 -216
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +0 -98
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +0 -327
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +0 -311
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +0 -1102
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +0 -708
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +0 -291
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +0 -322
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +0 -998
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +0 -6
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +0 -966
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +0 -582
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +0 -454
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +0 -465
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +0 -528
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +0 -513
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +0 -471
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +0 -161
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +0 -346
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +0 -303
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +0 -264
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +0 -249
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +0 -629
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +0 -293
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +0 -338
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +0 -669
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +0 -249
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +0 -486
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +0 -23
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +0 -40
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +0 -301
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +0 -48
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +0 -20
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +0 -537
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +0 -88
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h +0 -261
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +0 -158
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +0 -108
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +0 -730
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +0 -220
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h +0 -293
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/KdBVH.h +0 -223
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +0 -790
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h +0 -355
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h +0 -305
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h +0 -261
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +0 -449
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +0 -187
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +0 -511
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h +0 -335
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IDRS.h +0 -436
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +0 -90
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h +0 -154
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h +0 -267
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h +0 -193
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +0 -305
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +0 -84
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +0 -202
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +0 -160
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +0 -188
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +0 -396
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +0 -441
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +0 -569
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +0 -373
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +0 -705
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +0 -368
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +0 -117
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +0 -95
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +0 -601
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +0 -657
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h +0 -66
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h +0 -70
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +0 -107
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +0 -298
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +0 -91
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +0 -30
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +0 -99
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +0 -49
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +0 -130
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/Companion.h +0 -280
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +0 -428
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +0 -143
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +0 -352
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h +0 -862
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +0 -212
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h +0 -295
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h +0 -259
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h +0 -89
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +0 -122
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +0 -1079
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +0 -404
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h +0 -282
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h +0 -349
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +0 -286
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +0 -68
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +0 -357
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +0 -66
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +0 -1959
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +0 -118
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +0 -167
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +0 -58
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +0 -330
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +0 -58
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +0 -2045
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +0 -46
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +0 -16
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +0 -46
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +0 -16
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +0 -369
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +0 -54
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +0 -34
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/Spline.h +0 -507
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFitting.h +0 -431
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFwd.h +0 -93
- sequenzo-0.1.17.dist-info/RECORD +0 -537
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/WHEEL +0 -0
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/licenses/LICENSE +0 -0
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/top_level.txt +0 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Martin Renou *
|
|
4
4
|
* Copyright (c) QuantStack *
|
|
5
5
|
* Copyright (c) Serge Guelton *
|
|
6
|
+
* Copyright (c) Marco Barbone *
|
|
6
7
|
* *
|
|
7
8
|
* Distributed under the terms of the BSD 3-Clause License. *
|
|
8
9
|
* *
|
|
@@ -20,7 +21,6 @@
|
|
|
20
21
|
|
|
21
22
|
namespace xsimd
|
|
22
23
|
{
|
|
23
|
-
|
|
24
24
|
namespace kernel
|
|
25
25
|
{
|
|
26
26
|
using namespace types;
|
|
@@ -925,12 +925,12 @@ namespace xsimd
|
|
|
925
925
|
template <class A>
|
|
926
926
|
XSIMD_INLINE batch<float, A> max(batch<float, A> const& self, batch<float, A> const& other, requires_arch<avx>) noexcept
|
|
927
927
|
{
|
|
928
|
-
return _mm256_max_ps(
|
|
928
|
+
return _mm256_max_ps(other, self);
|
|
929
929
|
}
|
|
930
930
|
template <class A>
|
|
931
931
|
XSIMD_INLINE batch<double, A> max(batch<double, A> const& self, batch<double, A> const& other, requires_arch<avx>) noexcept
|
|
932
932
|
{
|
|
933
|
-
return _mm256_max_pd(
|
|
933
|
+
return _mm256_max_pd(other, self);
|
|
934
934
|
}
|
|
935
935
|
template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
936
936
|
XSIMD_INLINE batch<T, A> max(batch<T, A> const& self, batch<T, A> const& other, requires_arch<avx>) noexcept
|
|
@@ -942,12 +942,12 @@ namespace xsimd
|
|
|
942
942
|
template <class A>
|
|
943
943
|
XSIMD_INLINE batch<float, A> min(batch<float, A> const& self, batch<float, A> const& other, requires_arch<avx>) noexcept
|
|
944
944
|
{
|
|
945
|
-
return _mm256_min_ps(
|
|
945
|
+
return _mm256_min_ps(other, self);
|
|
946
946
|
}
|
|
947
947
|
template <class A>
|
|
948
948
|
XSIMD_INLINE batch<double, A> min(batch<double, A> const& self, batch<double, A> const& other, requires_arch<avx>) noexcept
|
|
949
949
|
{
|
|
950
|
-
return _mm256_min_pd(
|
|
950
|
+
return _mm256_min_pd(other, self);
|
|
951
951
|
}
|
|
952
952
|
template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
953
953
|
XSIMD_INLINE batch<T, A> min(batch<T, A> const& self, batch<T, A> const& other, requires_arch<avx>) noexcept
|
|
@@ -1046,7 +1046,7 @@ namespace xsimd
|
|
|
1046
1046
|
}
|
|
1047
1047
|
|
|
1048
1048
|
// reduce_add
|
|
1049
|
-
template <class A, class T, class = typename std::enable_if<std::
|
|
1049
|
+
template <class A, class T, class = typename std::enable_if<std::is_scalar<T>::value, void>::type>
|
|
1050
1050
|
XSIMD_INLINE T reduce_add(batch<T, A> const& self, requires_arch<avx>) noexcept
|
|
1051
1051
|
{
|
|
1052
1052
|
typename batch<T, sse4_2>::register_type low, high;
|
|
@@ -1077,6 +1077,16 @@ namespace xsimd
|
|
|
1077
1077
|
return reduce_min(batch<T, sse4_2>(low));
|
|
1078
1078
|
}
|
|
1079
1079
|
|
|
1080
|
+
// reduce_mul
|
|
1081
|
+
template <class A, class T, class = typename std::enable_if<std::is_scalar<T>::value, void>::type>
|
|
1082
|
+
XSIMD_INLINE T reduce_mul(batch<T, A> const& self, requires_arch<avx>) noexcept
|
|
1083
|
+
{
|
|
1084
|
+
typename batch<T, sse4_2>::register_type low, high;
|
|
1085
|
+
detail::split_avx(self, low, high);
|
|
1086
|
+
batch<T, sse4_2> blow(low), bhigh(high);
|
|
1087
|
+
return reduce_mul(blow * bhigh);
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1080
1090
|
// rsqrt
|
|
1081
1091
|
template <class A>
|
|
1082
1092
|
XSIMD_INLINE batch<float, A> rsqrt(batch<float, A> const& val, requires_arch<avx>) noexcept
|
|
@@ -1418,23 +1428,19 @@ namespace xsimd
|
|
|
1418
1428
|
XSIMD_INLINE batch<float, A> swizzle(batch<float, A> const& self, batch<uint32_t, A> mask, requires_arch<avx>) noexcept
|
|
1419
1429
|
{
|
|
1420
1430
|
// duplicate low and high part of input
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
__m256
|
|
1425
|
-
__m256 low_low = _mm256_insertf128_ps(self, _mm256_castps256_ps128(low), 1);
|
|
1431
|
+
// Duplicate lanes separately
|
|
1432
|
+
// 1) duplicate low and high lanes
|
|
1433
|
+
__m256 lo = _mm256_permute2f128_ps(self, self, 0x00); // [low | low]
|
|
1434
|
+
__m256 hi = _mm256_permute2f128_ps(self, self, 0x11); // [high| high]
|
|
1426
1435
|
|
|
1427
1436
|
// normalize mask
|
|
1428
1437
|
batch<uint32_t, A> half_mask = mask % 4;
|
|
1429
1438
|
|
|
1430
1439
|
// permute within each lane
|
|
1431
|
-
__m256 r0 = _mm256_permutevar_ps(
|
|
1432
|
-
__m256 r1 = _mm256_permutevar_ps(
|
|
1440
|
+
__m256 r0 = _mm256_permutevar_ps(lo, half_mask);
|
|
1441
|
+
__m256 r1 = _mm256_permutevar_ps(hi, half_mask);
|
|
1433
1442
|
|
|
1434
|
-
// mask to choose the right lane
|
|
1435
1443
|
batch_bool<uint32_t, A> blend_mask = mask >= 4;
|
|
1436
|
-
|
|
1437
|
-
// blend the two permutes
|
|
1438
1444
|
return _mm256_blendv_ps(r0, r1, batch_bool_cast<float>(blend_mask));
|
|
1439
1445
|
}
|
|
1440
1446
|
|
|
@@ -1442,18 +1448,15 @@ namespace xsimd
|
|
|
1442
1448
|
XSIMD_INLINE batch<double, A> swizzle(batch<double, A> const& self, batch<uint64_t, A> mask, requires_arch<avx>) noexcept
|
|
1443
1449
|
{
|
|
1444
1450
|
// duplicate low and high part of input
|
|
1445
|
-
__m256d
|
|
1446
|
-
__m256d
|
|
1447
|
-
|
|
1448
|
-
__m256d low = _mm256_castpd128_pd256(_mm256_castpd256_pd128(self));
|
|
1449
|
-
__m256d low_low = _mm256_insertf128_pd(self, _mm256_castpd256_pd128(low), 1);
|
|
1451
|
+
__m256d lo = _mm256_permute2f128_pd(self, self, 0x00);
|
|
1452
|
+
__m256d hi = _mm256_permute2f128_pd(self, self, 0x11);
|
|
1450
1453
|
|
|
1451
1454
|
// normalize mask
|
|
1452
1455
|
batch<uint64_t, A> half_mask = -(mask & 1);
|
|
1453
1456
|
|
|
1454
1457
|
// permute within each lane
|
|
1455
|
-
__m256d r0 = _mm256_permutevar_pd(
|
|
1456
|
-
__m256d r1 = _mm256_permutevar_pd(
|
|
1458
|
+
__m256d r0 = _mm256_permutevar_pd(lo, half_mask);
|
|
1459
|
+
__m256d r1 = _mm256_permutevar_pd(hi, half_mask);
|
|
1457
1460
|
|
|
1458
1461
|
// mask to choose the right lane
|
|
1459
1462
|
batch_bool<uint64_t, A> blend_mask = mask >= 2;
|
|
@@ -1479,53 +1482,67 @@ namespace xsimd
|
|
|
1479
1482
|
|
|
1480
1483
|
// swizzle (constant mask)
|
|
1481
1484
|
template <class A, uint32_t V0, uint32_t V1, uint32_t V2, uint32_t V3, uint32_t V4, uint32_t V5, uint32_t V6, uint32_t V7>
|
|
1482
|
-
XSIMD_INLINE batch<float, A> swizzle(batch<float, A> const& self, batch_constant<uint32_t, A, V0, V1, V2, V3, V4, V5, V6, V7
|
|
1485
|
+
XSIMD_INLINE batch<float, A> swizzle(batch<float, A> const& self, batch_constant<uint32_t, A, V0, V1, V2, V3, V4, V5, V6, V7> mask, requires_arch<avx>) noexcept
|
|
1483
1486
|
{
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1487
|
+
constexpr bool is_identity = detail::is_identity(mask);
|
|
1488
|
+
constexpr bool is_dup_low = detail::is_dup_lo(mask);
|
|
1489
|
+
constexpr bool is_dup_hi = detail::is_dup_hi(mask);
|
|
1490
|
+
constexpr bool is_dup = is_dup_low || is_dup_hi;
|
|
1491
|
+
XSIMD_IF_CONSTEXPR(is_identity)
|
|
1492
|
+
{
|
|
1493
|
+
return self;
|
|
1494
|
+
}
|
|
1495
|
+
XSIMD_IF_CONSTEXPR(is_dup)
|
|
1496
|
+
{
|
|
1497
|
+
constexpr auto control = is_dup_low ? 0x00 : 0x11;
|
|
1498
|
+
constexpr auto is_dup_identity = is_dup_low ? detail::is_identity<uint32_t, V0, V1, V2, V3>() : detail::is_identity<int64_t, V4 - 4, V5 - 4, V6 - 4, V7 - 4>();
|
|
1499
|
+
auto split = _mm256_permute2f128_ps(self, self, control);
|
|
1500
|
+
XSIMD_IF_CONSTEXPR(!is_dup_identity)
|
|
1501
|
+
{
|
|
1502
|
+
constexpr auto shuffle_mask = is_dup_low ? detail::mod_shuffle(V0, V1, V2, V3) : detail::mod_shuffle(V4 - 4, V5 - 4, V6 - 4, V7 - 4);
|
|
1503
|
+
split = _mm256_permute_ps(split, shuffle_mask);
|
|
1504
|
+
}
|
|
1505
|
+
return split;
|
|
1506
|
+
}
|
|
1507
|
+
// Duplicate lanes separately
|
|
1508
|
+
// 1) duplicate low and high lanes
|
|
1509
|
+
__m256 low_dup = _mm256_permute2f128_ps(self, self, 0x00); // [low | low]
|
|
1510
|
+
__m256 hi_dup = _mm256_permute2f128_ps(self, self, 0x11); // [high| high]
|
|
1490
1511
|
|
|
1491
|
-
//
|
|
1492
|
-
batch_constant<uint32_t, A, (V0 % 4), (V1 % 4), (V2 % 4), (V3 % 4), (V4 % 4), (V5 % 4), (V6 % 4), (V7 % 4)> half_mask;
|
|
1512
|
+
// 2) build lane-local index vector (each element = source_index & 3)
|
|
1513
|
+
constexpr batch_constant<uint32_t, A, (V0 % 4), (V1 % 4), (V2 % 4), (V3 % 4), (V4 % 4), (V5 % 4), (V6 % 4), (V7 % 4)> half_mask;
|
|
1493
1514
|
|
|
1494
|
-
//
|
|
1495
|
-
__m256
|
|
1496
|
-
__m256 r1 = _mm256_permutevar_ps(hi_hi, half_mask.as_batch());
|
|
1515
|
+
__m256 r0 = _mm256_permutevar_ps(low_dup, half_mask.as_batch()); // pick from low lane
|
|
1516
|
+
__m256 r1 = _mm256_permutevar_ps(hi_dup, half_mask.as_batch()); // pick from high lane
|
|
1497
1517
|
|
|
1498
|
-
|
|
1499
|
-
batch_bool_constant<uint32_t, A, (V0 >= 4), (V1 >= 4), (V2 >= 4), (V3 >= 4), (V4 >= 4), (V5 >= 4), (V6 >= 4), (V7 >= 4)> blend_mask;
|
|
1518
|
+
constexpr batch_bool_constant<uint32_t, A, (V0 >= 4), (V1 >= 4), (V2 >= 4), (V3 >= 4), (V4 >= 4), (V5 >= 4), (V6 >= 4), (V7 >= 4)> lane_mask {};
|
|
1500
1519
|
|
|
1501
|
-
|
|
1502
|
-
constexpr auto mask = blend_mask.mask();
|
|
1503
|
-
return _mm256_blend_ps(r0, r1, mask);
|
|
1520
|
+
return _mm256_blend_ps(r0, r1, lane_mask.mask());
|
|
1504
1521
|
}
|
|
1505
1522
|
|
|
1506
1523
|
template <class A, uint64_t V0, uint64_t V1, uint64_t V2, uint64_t V3>
|
|
1507
|
-
XSIMD_INLINE batch<double, A> swizzle(batch<double, A> const& self, batch_constant<uint64_t, A, V0, V1, V2, V3
|
|
1524
|
+
XSIMD_INLINE batch<double, A> swizzle(batch<double, A> const& self, batch_constant<uint64_t, A, V0, V1, V2, V3> mask, requires_arch<avx>) noexcept
|
|
1508
1525
|
{
|
|
1526
|
+
// cannot use detail::mod_shuffle as the mod and shift are different in this case
|
|
1527
|
+
constexpr auto imm = ((V0 & 1) << 0) | ((V1 & 1) << 1) | ((V2 & 1) << 2) | ((V3 & 1) << 3);
|
|
1528
|
+
XSIMD_IF_CONSTEXPR(detail::is_identity(mask)) { return self; }
|
|
1529
|
+
XSIMD_IF_CONSTEXPR(!detail::is_cross_lane(mask))
|
|
1530
|
+
{
|
|
1531
|
+
return _mm256_permute_pd(self, imm);
|
|
1532
|
+
}
|
|
1509
1533
|
// duplicate low and high part of input
|
|
1510
|
-
__m256d
|
|
1511
|
-
__m256d
|
|
1512
|
-
|
|
1513
|
-
__m256d low = _mm256_castpd128_pd256(_mm256_castpd256_pd128(self));
|
|
1514
|
-
__m256d low_low = _mm256_insertf128_pd(self, _mm256_castpd256_pd128(low), 1);
|
|
1515
|
-
|
|
1516
|
-
// normalize mask
|
|
1517
|
-
batch_constant<uint64_t, A, (V0 % 2) * -1, (V1 % 2) * -1, (V2 % 2) * -1, (V3 % 2) * -1> half_mask;
|
|
1534
|
+
__m256d lo = _mm256_permute2f128_pd(self, self, 0x00);
|
|
1535
|
+
__m256d hi = _mm256_permute2f128_pd(self, self, 0x11);
|
|
1518
1536
|
|
|
1519
1537
|
// permute within each lane
|
|
1520
|
-
__m256d r0 =
|
|
1521
|
-
__m256d r1 =
|
|
1538
|
+
__m256d r0 = _mm256_permute_pd(lo, imm);
|
|
1539
|
+
__m256d r1 = _mm256_permute_pd(hi, imm);
|
|
1522
1540
|
|
|
1523
1541
|
// mask to choose the right lane
|
|
1524
|
-
batch_bool_constant<uint64_t, A, (V0 >= 2), (V1 >= 2), (V2 >= 2), (V3 >= 2)> blend_mask;
|
|
1542
|
+
constexpr batch_bool_constant<uint64_t, A, (V0 >= 2), (V1 >= 2), (V2 >= 2), (V3 >= 2)> blend_mask;
|
|
1525
1543
|
|
|
1526
1544
|
// blend the two permutes
|
|
1527
|
-
|
|
1528
|
-
return _mm256_blend_pd(r0, r1, mask);
|
|
1545
|
+
return _mm256_blend_pd(r0, r1, blend_mask.mask());
|
|
1529
1546
|
}
|
|
1530
1547
|
template <class A,
|
|
1531
1548
|
typename T,
|
|
@@ -1861,6 +1878,46 @@ namespace xsimd
|
|
|
1861
1878
|
auto hi = _mm256_unpackhi_pd(self, other);
|
|
1862
1879
|
return _mm256_insertf128_pd(lo, _mm256_castpd256_pd128(hi), 1);
|
|
1863
1880
|
}
|
|
1881
|
+
|
|
1882
|
+
// first
|
|
1883
|
+
template <class A>
|
|
1884
|
+
XSIMD_INLINE float first(batch<float, A> const& self, requires_arch<avx>) noexcept
|
|
1885
|
+
{
|
|
1886
|
+
return _mm256_cvtss_f32(self);
|
|
1887
|
+
}
|
|
1888
|
+
|
|
1889
|
+
template <class A>
|
|
1890
|
+
XSIMD_INLINE double first(batch<double, A> const& self, requires_arch<avx>) noexcept
|
|
1891
|
+
{
|
|
1892
|
+
return _mm256_cvtsd_f64(self);
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
1896
|
+
XSIMD_INLINE T first(batch<T, A> const& self, requires_arch<avx>) noexcept
|
|
1897
|
+
{
|
|
1898
|
+
XSIMD_IF_CONSTEXPR(sizeof(T) == 1)
|
|
1899
|
+
{
|
|
1900
|
+
return static_cast<T>(_mm256_cvtsi256_si32(self) & 0xFF);
|
|
1901
|
+
}
|
|
1902
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 2)
|
|
1903
|
+
{
|
|
1904
|
+
return static_cast<T>(_mm256_cvtsi256_si32(self) & 0xFFFF);
|
|
1905
|
+
}
|
|
1906
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 4)
|
|
1907
|
+
{
|
|
1908
|
+
return static_cast<T>(_mm256_cvtsi256_si32(self));
|
|
1909
|
+
}
|
|
1910
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 8)
|
|
1911
|
+
{
|
|
1912
|
+
batch<T, sse4_2> low = _mm256_castsi256_si128(self);
|
|
1913
|
+
return first(low, sse4_2 {});
|
|
1914
|
+
}
|
|
1915
|
+
else
|
|
1916
|
+
{
|
|
1917
|
+
assert(false && "unsupported arch/op combination");
|
|
1918
|
+
return {};
|
|
1919
|
+
}
|
|
1920
|
+
}
|
|
1864
1921
|
}
|
|
1865
1922
|
}
|
|
1866
1923
|
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
|
|
18
18
|
#include "../types/xsimd_avx2_register.hpp"
|
|
19
19
|
|
|
20
|
+
#include <limits>
|
|
21
|
+
|
|
20
22
|
namespace xsimd
|
|
21
23
|
{
|
|
22
24
|
|
|
@@ -172,6 +174,29 @@ namespace xsimd
|
|
|
172
174
|
}
|
|
173
175
|
}
|
|
174
176
|
|
|
177
|
+
template <size_t shift, class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
178
|
+
XSIMD_INLINE batch<T, A> bitwise_lshift(batch<T, A> const& self, requires_arch<avx2>) noexcept
|
|
179
|
+
{
|
|
180
|
+
constexpr auto bits = std::numeric_limits<T>::digits + std::numeric_limits<T>::is_signed;
|
|
181
|
+
static_assert(shift < bits, "Shift must be less than the number of bits in T");
|
|
182
|
+
XSIMD_IF_CONSTEXPR(sizeof(T) == 2)
|
|
183
|
+
{
|
|
184
|
+
return _mm256_slli_epi16(self, shift);
|
|
185
|
+
}
|
|
186
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 4)
|
|
187
|
+
{
|
|
188
|
+
return _mm256_slli_epi32(self, shift);
|
|
189
|
+
}
|
|
190
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 8)
|
|
191
|
+
{
|
|
192
|
+
return _mm256_slli_epi64(self, shift);
|
|
193
|
+
}
|
|
194
|
+
else
|
|
195
|
+
{
|
|
196
|
+
return bitwise_lshift<shift>(self, avx {});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
175
200
|
template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
176
201
|
XSIMD_INLINE batch<T, A> bitwise_lshift(batch<T, A> const& self, batch<T, A> const& other, requires_arch<avx2>) noexcept
|
|
177
202
|
{
|
|
@@ -252,6 +277,65 @@ namespace xsimd
|
|
|
252
277
|
}
|
|
253
278
|
}
|
|
254
279
|
|
|
280
|
+
template <size_t shift, class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
281
|
+
XSIMD_INLINE batch<T, A> bitwise_rshift(batch<T, A> const& self, requires_arch<avx2>) noexcept
|
|
282
|
+
{
|
|
283
|
+
constexpr auto bits = std::numeric_limits<T>::digits + std::numeric_limits<T>::is_signed;
|
|
284
|
+
static_assert(shift < bits, "Shift amount must be less than the number of bits in T");
|
|
285
|
+
if (std::is_signed<T>::value)
|
|
286
|
+
{
|
|
287
|
+
XSIMD_IF_CONSTEXPR(sizeof(T) == 1)
|
|
288
|
+
{
|
|
289
|
+
__m256i sign_mask = _mm256_set1_epi16((0xFF00 >> shift) & 0x00FF);
|
|
290
|
+
__m256i cmp_is_negative = _mm256_cmpgt_epi8(_mm256_setzero_si256(), self);
|
|
291
|
+
__m256i res = _mm256_srai_epi16(self, shift);
|
|
292
|
+
return _mm256_or_si256(
|
|
293
|
+
detail::fwd_to_sse([](__m128i s, __m128i o) noexcept
|
|
294
|
+
{ return bitwise_and(batch<T, sse4_2>(s), batch<T, sse4_2>(o), sse4_2 {}); },
|
|
295
|
+
sign_mask, cmp_is_negative),
|
|
296
|
+
_mm256_andnot_si256(sign_mask, res));
|
|
297
|
+
}
|
|
298
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 2)
|
|
299
|
+
{
|
|
300
|
+
return _mm256_srai_epi16(self, shift);
|
|
301
|
+
}
|
|
302
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 4)
|
|
303
|
+
{
|
|
304
|
+
return _mm256_srai_epi32(self, shift);
|
|
305
|
+
}
|
|
306
|
+
else
|
|
307
|
+
{
|
|
308
|
+
return bitwise_rshift<shift>(self, avx {});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else
|
|
312
|
+
{
|
|
313
|
+
XSIMD_IF_CONSTEXPR(sizeof(T) == 1)
|
|
314
|
+
{
|
|
315
|
+
const __m256i byte_mask = _mm256_set1_epi16(0x00FF);
|
|
316
|
+
__m256i u16 = _mm256_and_si256(self, byte_mask);
|
|
317
|
+
__m256i r16 = _mm256_srli_epi16(u16, shift);
|
|
318
|
+
return _mm256_and_si256(r16, byte_mask);
|
|
319
|
+
}
|
|
320
|
+
XSIMD_IF_CONSTEXPR(sizeof(T) == 2)
|
|
321
|
+
{
|
|
322
|
+
return _mm256_srli_epi16(self, shift);
|
|
323
|
+
}
|
|
324
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 4)
|
|
325
|
+
{
|
|
326
|
+
return _mm256_srli_epi32(self, shift);
|
|
327
|
+
}
|
|
328
|
+
else XSIMD_IF_CONSTEXPR(sizeof(T) == 8)
|
|
329
|
+
{
|
|
330
|
+
return _mm256_srli_epi64(self, shift);
|
|
331
|
+
}
|
|
332
|
+
else
|
|
333
|
+
{
|
|
334
|
+
return bitwise_rshift<shift>(self, avx {});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
255
339
|
template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
256
340
|
XSIMD_INLINE batch<T, A> bitwise_rshift(batch<T, A> const& self, batch<T, A> const& other, requires_arch<avx2>) noexcept
|
|
257
341
|
{
|
|
@@ -657,9 +741,35 @@ namespace xsimd
|
|
|
657
741
|
|
|
658
742
|
// rotate_left
|
|
659
743
|
template <size_t N, class A>
|
|
744
|
+
XSIMD_INLINE batch<uint8_t, A> rotate_left(batch<uint8_t, A> const& self, requires_arch<avx2>) noexcept
|
|
745
|
+
{
|
|
746
|
+
auto other = _mm256_permute2x128_si256(self, self, 0x1);
|
|
747
|
+
if (N < 16)
|
|
748
|
+
{
|
|
749
|
+
return _mm256_alignr_epi8(other, self, N);
|
|
750
|
+
}
|
|
751
|
+
else
|
|
752
|
+
{
|
|
753
|
+
return _mm256_alignr_epi8(self, other, N - 16);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
template <size_t N, class A>
|
|
757
|
+
XSIMD_INLINE batch<int8_t, A> rotate_left(batch<int8_t, A> const& self, requires_arch<avx2>) noexcept
|
|
758
|
+
{
|
|
759
|
+
return bitwise_cast<int8_t>(rotate_left<N, A>(bitwise_cast<uint8_t>(self), avx2 {}));
|
|
760
|
+
}
|
|
761
|
+
template <size_t N, class A>
|
|
660
762
|
XSIMD_INLINE batch<uint16_t, A> rotate_left(batch<uint16_t, A> const& self, requires_arch<avx2>) noexcept
|
|
661
763
|
{
|
|
662
|
-
|
|
764
|
+
auto other = _mm256_permute2x128_si256(self, self, 0x1);
|
|
765
|
+
if (N < 8)
|
|
766
|
+
{
|
|
767
|
+
return _mm256_alignr_epi8(other, self, 2 * N);
|
|
768
|
+
}
|
|
769
|
+
else
|
|
770
|
+
{
|
|
771
|
+
return _mm256_alignr_epi8(self, other, 2 * (N - 8));
|
|
772
|
+
}
|
|
663
773
|
}
|
|
664
774
|
template <size_t N, class A>
|
|
665
775
|
XSIMD_INLINE batch<int16_t, A> rotate_left(batch<int16_t, A> const& self, requires_arch<avx2>) noexcept
|
|
@@ -879,9 +989,8 @@ namespace xsimd
|
|
|
879
989
|
template <class A>
|
|
880
990
|
XSIMD_INLINE batch<float, A> swizzle(batch<float, A> const& self, batch<uint32_t, A> mask, requires_arch<avx2>) noexcept
|
|
881
991
|
{
|
|
882
|
-
return
|
|
992
|
+
return swizzle(self, mask, avx {});
|
|
883
993
|
}
|
|
884
|
-
|
|
885
994
|
template <class A>
|
|
886
995
|
XSIMD_INLINE batch<double, A> swizzle(batch<double, A> const& self, batch<uint64_t, A> mask, requires_arch<avx2>) noexcept
|
|
887
996
|
{
|
|
@@ -903,7 +1012,7 @@ namespace xsimd
|
|
|
903
1012
|
template <class A>
|
|
904
1013
|
XSIMD_INLINE batch<uint32_t, A> swizzle(batch<uint32_t, A> const& self, batch<uint32_t, A> mask, requires_arch<avx2>) noexcept
|
|
905
1014
|
{
|
|
906
|
-
return
|
|
1015
|
+
return swizzle(self, mask, avx {});
|
|
907
1016
|
}
|
|
908
1017
|
template <class A>
|
|
909
1018
|
XSIMD_INLINE batch<int32_t, A> swizzle(batch<int32_t, A> const& self, batch<uint32_t, A> mask, requires_arch<avx2>) noexcept
|
|
@@ -915,20 +1024,33 @@ namespace xsimd
|
|
|
915
1024
|
template <class A, uint32_t V0, uint32_t V1, uint32_t V2, uint32_t V3, uint32_t V4, uint32_t V5, uint32_t V6, uint32_t V7>
|
|
916
1025
|
XSIMD_INLINE batch<float, A> swizzle(batch<float, A> const& self, batch_constant<uint32_t, A, V0, V1, V2, V3, V4, V5, V6, V7> mask, requires_arch<avx2>) noexcept
|
|
917
1026
|
{
|
|
918
|
-
|
|
1027
|
+
XSIMD_IF_CONSTEXPR(detail::is_all_different(mask) && !detail::is_identity(mask))
|
|
1028
|
+
{
|
|
1029
|
+
// The intrinsic does NOT allow to copy the same element of the source vector to more than one element of the destination vector.
|
|
1030
|
+
// one-shot 8-lane permute
|
|
1031
|
+
return _mm256_permutevar8x32_ps(self, mask.as_batch());
|
|
1032
|
+
}
|
|
1033
|
+
return swizzle(self, mask, avx {});
|
|
919
1034
|
}
|
|
920
1035
|
|
|
921
1036
|
template <class A, uint64_t V0, uint64_t V1, uint64_t V2, uint64_t V3>
|
|
922
|
-
XSIMD_INLINE batch<double, A> swizzle(batch<double, A> const& self, batch_constant<uint64_t, A, V0, V1, V2, V3
|
|
1037
|
+
XSIMD_INLINE batch<double, A> swizzle(batch<double, A> const& self, batch_constant<uint64_t, A, V0, V1, V2, V3> mask, requires_arch<avx2>) noexcept
|
|
923
1038
|
{
|
|
924
|
-
|
|
925
|
-
|
|
1039
|
+
XSIMD_IF_CONSTEXPR(detail::is_identity(mask)) { return self; }
|
|
1040
|
+
XSIMD_IF_CONSTEXPR(!detail::is_cross_lane(mask))
|
|
1041
|
+
{
|
|
1042
|
+
constexpr auto imm = ((V0 & 1) << 0) | ((V1 & 1) << 1) | ((V2 & 1) << 2) | ((V3 & 1) << 3);
|
|
1043
|
+
return _mm256_permute_pd(self, imm);
|
|
1044
|
+
}
|
|
1045
|
+
constexpr auto imm = detail::mod_shuffle(V0, V1, V2, V3);
|
|
1046
|
+
// fallback to full 4-element permute
|
|
1047
|
+
return _mm256_permute4x64_pd(self, imm);
|
|
926
1048
|
}
|
|
927
1049
|
|
|
928
1050
|
template <class A, uint64_t V0, uint64_t V1, uint64_t V2, uint64_t V3>
|
|
929
1051
|
XSIMD_INLINE batch<uint64_t, A> swizzle(batch<uint64_t, A> const& self, batch_constant<uint64_t, A, V0, V1, V2, V3>, requires_arch<avx2>) noexcept
|
|
930
1052
|
{
|
|
931
|
-
constexpr auto mask = detail::
|
|
1053
|
+
constexpr auto mask = detail::mod_shuffle(V0, V1, V2, V3);
|
|
932
1054
|
return _mm256_permute4x64_epi64(self, mask);
|
|
933
1055
|
}
|
|
934
1056
|
template <class A, uint64_t V0, uint64_t V1, uint64_t V2, uint64_t V3>
|
|
@@ -429,18 +429,6 @@ namespace xsimd
|
|
|
429
429
|
return detail::compare_int_avx512bw<A, T, _MM_CMPINT_NE>(self, other);
|
|
430
430
|
}
|
|
431
431
|
|
|
432
|
-
// rotate_left
|
|
433
|
-
template <size_t N, class A>
|
|
434
|
-
XSIMD_INLINE batch<uint16_t, A> rotate_left(batch<uint16_t, A> const& self, requires_arch<avx512bw>) noexcept
|
|
435
|
-
{
|
|
436
|
-
return _mm512_alignr_epi8(self, self, N);
|
|
437
|
-
}
|
|
438
|
-
template <size_t N, class A>
|
|
439
|
-
XSIMD_INLINE batch<int16_t, A> rotate_left(batch<int16_t, A> const& self, requires_arch<avx512bw>) noexcept
|
|
440
|
-
{
|
|
441
|
-
return bitwise_cast<int16_t>(rotate_left<N, A>(bitwise_cast<uint16_t>(self), avx512bw {}));
|
|
442
|
-
}
|
|
443
|
-
|
|
444
432
|
// sadd
|
|
445
433
|
template <class A, class T, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
|
|
446
434
|
XSIMD_INLINE batch<T, A> sadd(batch<T, A> const& self, batch<T, A> const& other, requires_arch<avx512bw>) noexcept
|
|
@@ -496,115 +484,25 @@ namespace xsimd
|
|
|
496
484
|
}
|
|
497
485
|
|
|
498
486
|
// slide_left
|
|
499
|
-
|
|
500
|
-
{
|
|
501
|
-
template <size_t... Is>
|
|
502
|
-
constexpr std::array<uint64_t, sizeof...(Is)> make_slide_perm_hi(::xsimd::detail::index_sequence<Is...>)
|
|
503
|
-
{
|
|
504
|
-
return { (Is == 0 ? 8 : Is - 1)... };
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
template <size_t N, size_t... Is>
|
|
508
|
-
constexpr std::array<uint16_t, sizeof...(Is)> make_slide_left_pattern(::xsimd::detail::index_sequence<Is...>)
|
|
509
|
-
{
|
|
510
|
-
return { (Is >= N ? Is - N : 0)... };
|
|
511
|
-
}
|
|
512
|
-
template <size_t N, size_t... Is>
|
|
513
|
-
constexpr std::array<uint16_t, sizeof...(Is)> make_slide_left_mask(::xsimd::detail::index_sequence<Is...>)
|
|
514
|
-
{
|
|
515
|
-
return { (Is >= N ? 0xFFFF : 0x0000)... };
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
template <size_t N, class A, class T>
|
|
487
|
+
template <size_t N, class A, class T, class = typename std::enable_if<(N & 3) == 2 && (N < 64)>::type>
|
|
520
488
|
XSIMD_INLINE batch<T, A> slide_left(batch<T, A> const& x, requires_arch<avx512bw>) noexcept
|
|
521
489
|
{
|
|
522
|
-
|
|
523
|
-
if (BitCount == 0)
|
|
524
|
-
{
|
|
525
|
-
return x;
|
|
526
|
-
}
|
|
527
|
-
if (BitCount >= 512)
|
|
528
|
-
{
|
|
529
|
-
return batch<T, A>(T(0));
|
|
530
|
-
}
|
|
531
|
-
batch<T, A> xx;
|
|
532
|
-
if (N & 1)
|
|
533
|
-
{
|
|
534
|
-
alignas(A::alignment()) uint64_t buffer[8];
|
|
535
|
-
_mm512_store_epi64(&buffer[0], x);
|
|
536
|
-
for (int i = 7; i > 0; --i)
|
|
537
|
-
buffer[i] = (buffer[i] << 8) | (buffer[i - 1] >> 56);
|
|
538
|
-
buffer[0] = buffer[0] << 8;
|
|
539
|
-
xx = _mm512_load_epi64(&buffer[0]);
|
|
490
|
+
static_assert((N & 3) == 2 && N < 64, "The AVX512F implementation may have a lower latency.");
|
|
540
491
|
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
xr = _mm512_permutex2var_epi64(xr, _mm512_load_epi64(slide_perm.data()), _mm512_setzero_si512());
|
|
545
|
-
xx = _mm512_or_si512(xr, xl);
|
|
546
|
-
if (N == 1)
|
|
547
|
-
return xx;
|
|
548
|
-
}
|
|
549
|
-
else
|
|
550
|
-
{
|
|
551
|
-
xx = x;
|
|
552
|
-
}
|
|
553
|
-
alignas(A::alignment()) auto slide_pattern = detail::make_slide_left_pattern<N / 2>(::xsimd::detail::make_index_sequence<512 / 16>());
|
|
554
|
-
alignas(A::alignment()) auto slide_mask = detail::make_slide_left_mask<N / 2>(::xsimd::detail::make_index_sequence<512 / 16>());
|
|
555
|
-
return _mm512_and_si512(_mm512_permutexvar_epi16(_mm512_load_epi32(slide_pattern.data()), xx), _mm512_load_epi32(slide_mask.data()));
|
|
492
|
+
__mmask32 mask = 0xFFFFFFFFu << ((N / 2) & 31);
|
|
493
|
+
auto slide_pattern = make_batch_constant<uint16_t, detail::make_slide_left_pattern<N / 2>, A>();
|
|
494
|
+
return _mm512_maskz_permutexvar_epi16(mask, slide_pattern.as_batch(), x);
|
|
556
495
|
}
|
|
557
496
|
|
|
558
497
|
// slide_right
|
|
559
|
-
|
|
560
|
-
{
|
|
561
|
-
template <size_t... Is>
|
|
562
|
-
constexpr std::array<uint64_t, sizeof...(Is)> make_slide_perm_low(::xsimd::detail::index_sequence<Is...>)
|
|
563
|
-
{
|
|
564
|
-
return { (Is + 1)... };
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
template <size_t N, size_t... Is>
|
|
568
|
-
constexpr std::array<uint16_t, sizeof...(Is)> make_slide_right_pattern(::xsimd::detail::index_sequence<Is...>)
|
|
569
|
-
{
|
|
570
|
-
return { (Is < (32 - N) ? Is + N : 0)... };
|
|
571
|
-
}
|
|
572
|
-
template <size_t N, size_t... Is>
|
|
573
|
-
constexpr std::array<uint16_t, sizeof...(Is)> make_slide_right_mask(::xsimd::detail::index_sequence<Is...>)
|
|
574
|
-
{
|
|
575
|
-
return { (Is < 32 - N ? 0xFFFF : 0x0000)... };
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
template <size_t N, class A, class T>
|
|
498
|
+
template <size_t N, class A, class T, class = typename std::enable_if<(N & 3) == 2 && (N < 64)>::type>
|
|
579
499
|
XSIMD_INLINE batch<T, A> slide_right(batch<T, A> const& x, requires_arch<avx512bw>) noexcept
|
|
580
500
|
{
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
if (BitCount >= 512)
|
|
587
|
-
{
|
|
588
|
-
return batch<T, A>(T(0));
|
|
589
|
-
}
|
|
590
|
-
batch<T, A> xx;
|
|
591
|
-
if (N & 1)
|
|
592
|
-
{
|
|
593
|
-
alignas(A::alignment()) auto slide_perm = detail::make_slide_perm_low(::xsimd::detail::make_index_sequence<512 / 64>());
|
|
594
|
-
__m512i xr = _mm512_srli_epi64(x, 8);
|
|
595
|
-
__m512i xl = _mm512_slli_epi64(x, 56);
|
|
596
|
-
xl = _mm512_permutex2var_epi64(xl, _mm512_load_epi64(slide_perm.data()), _mm512_setzero_si512());
|
|
597
|
-
xx = _mm512_or_si512(xr, xl);
|
|
598
|
-
if (N == 1)
|
|
599
|
-
return xx;
|
|
600
|
-
}
|
|
601
|
-
else
|
|
602
|
-
{
|
|
603
|
-
xx = x;
|
|
604
|
-
}
|
|
605
|
-
alignas(A::alignment()) auto slide_pattern = detail::make_slide_right_pattern<N / 2>(::xsimd::detail::make_index_sequence<512 / 16>());
|
|
606
|
-
alignas(A::alignment()) auto slide_mask = detail::make_slide_right_mask<N / 2>(::xsimd::detail::make_index_sequence<512 / 16>());
|
|
607
|
-
return _mm512_and_si512(_mm512_permutexvar_epi16(_mm512_load_epi32(slide_pattern.data()), xx), _mm512_load_epi32(slide_mask.data()));
|
|
501
|
+
static_assert((N & 3) == 2 && N < 64, "The AVX512F implementation may have a lower latency.");
|
|
502
|
+
|
|
503
|
+
__mmask32 mask = 0xFFFFFFFFu >> ((N / 2) & 31);
|
|
504
|
+
auto slide_pattern = make_batch_constant<uint16_t, detail::make_slide_right_pattern<N / 2>, A>();
|
|
505
|
+
return _mm512_maskz_permutexvar_epi16(mask, slide_pattern.as_batch(), x);
|
|
608
506
|
}
|
|
609
507
|
|
|
610
508
|
// ssub
|