sequenzo 0.1.17__cp39-cp39-win_amd64.whl → 0.1.19__cp39-cp39-win_amd64.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 +156 -156
- sequenzo/big_data/clara/utils/get_weighted_diss.cp39-win_amd64.pyd +0 -0
- sequenzo/clustering/KMedoids.py +39 -0
- sequenzo/clustering/clustering_c_code.cp39-win_amd64.pyd +0 -0
- sequenzo/clustering/hierarchical_clustering.py +304 -8
- sequenzo/define_sequence_data.py +44 -3
- sequenzo/dissimilarity_measures/c_code.cp39-win_amd64.pyd +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/src/xsimd/test/test_basic_math.cpp +6 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch.cpp +54 -2
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_bool.cpp +8 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_cast.cpp +11 -4
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_complex.cpp +18 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_int.cpp +8 -14
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_manip.cpp +216 -173
- sequenzo/dissimilarity_measures/src/xsimd/test/test_load_store.cpp +6 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_memory.cpp +1 -1
- sequenzo/dissimilarity_measures/src/xsimd/test/test_power.cpp +7 -4
- sequenzo/dissimilarity_measures/src/xsimd/test/test_select.cpp +6 -2
- sequenzo/dissimilarity_measures/src/xsimd/test/test_shuffle.cpp +32 -18
- sequenzo/dissimilarity_measures/src/xsimd/test/test_utils.hpp +21 -24
- sequenzo/dissimilarity_measures/src/xsimd/test/test_xsimd_api.cpp +69 -9
- sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.c +156 -156
- sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqconc.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqconc.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqdss.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqdss.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqdur.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqdur.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqlength.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqlength.cp39-win_amd64.pyd +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 +272 -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/bench/BenchSparseUtil.h +0 -149
- sequenzo/dissimilarity_measures/src/eigen/bench/BenchTimer.h +0 -199
- sequenzo/dissimilarity_measures/src/eigen/bench/BenchUtil.h +0 -92
- sequenzo/dissimilarity_measures/src/eigen/bench/basicbenchmark.h +0 -63
- sequenzo/dissimilarity_measures/src/eigen/bench/btl/generic_bench/utils/utilities.h +0 -90
- sequenzo/dissimilarity_measures/src/eigen/bench/btl/libs/BLAS/blas.h +0 -675
- sequenzo/dissimilarity_measures/src/eigen/bench/btl/libs/BLAS/c_interface_base.h +0 -73
- sequenzo/dissimilarity_measures/src/eigen/bench/perf_monitoring/gemm_common.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/bench/perf_monitoring/gemv_common.h +0 -69
- sequenzo/dissimilarity_measures/src/eigen/bench/spbench/spbenchsolver.h +0 -573
- sequenzo/dissimilarity_measures/src/eigen/bench/spbench/spbenchstyle.h +0 -95
- sequenzo/dissimilarity_measures/src/eigen/bench/tensors/benchmark.h +0 -49
- sequenzo/dissimilarity_measures/src/eigen/bench/tensors/tensor_benchmarks.h +0 -597
- 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/demos/mandelbrot/mandelbrot.h +0 -71
- sequenzo/dissimilarity_measures/src/eigen/demos/mix_eigen_and_c/binary_library.h +0 -71
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/camera.h +0 -118
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/gpuhelper.h +0 -207
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/icosphere.h +0 -30
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/quaternion_demo.h +0 -114
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/trackball.h +0 -42
- 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/test/AnnoyingScalar.h +0 -165
- sequenzo/dissimilarity_measures/src/eigen/test/MovableScalar.h +0 -35
- sequenzo/dissimilarity_measures/src/eigen/test/SafeScalar.h +0 -30
- sequenzo/dissimilarity_measures/src/eigen/test/bug1213.h +0 -8
- sequenzo/dissimilarity_measures/src/eigen/test/evaluator_common.h +0 -0
- sequenzo/dissimilarity_measures/src/eigen/test/gpu_common.h +0 -176
- sequenzo/dissimilarity_measures/src/eigen/test/main.h +0 -857
- sequenzo/dissimilarity_measures/src/eigen/test/packetmath_test_shared.h +0 -275
- sequenzo/dissimilarity_measures/src/eigen/test/product.h +0 -259
- sequenzo/dissimilarity_measures/src/eigen/test/random_without_cast_overflow.h +0 -152
- sequenzo/dissimilarity_measures/src/eigen/test/solverbase.h +0 -36
- sequenzo/dissimilarity_measures/src/eigen/test/sparse.h +0 -204
- sequenzo/dissimilarity_measures/src/eigen/test/sparse_solver.h +0 -699
- sequenzo/dissimilarity_measures/src/eigen/test/split_test_helper.h +0 -5994
- sequenzo/dissimilarity_measures/src/eigen/test/svd_common.h +0 -521
- sequenzo/dissimilarity_measures/src/eigen/test/svd_fill.h +0 -118
- 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/dissimilarity_measures/src/eigen/unsupported/test/matrix_functions.h +0 -67
- sequenzo-0.1.17.dist-info/RECORD +0 -631
- {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
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
-
// for linear algebra.
|
|
3
|
-
//
|
|
4
|
-
// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
-
// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
|
|
6
|
-
//
|
|
7
|
-
// This Source Code Form is subject to the terms of the Mozilla
|
|
8
|
-
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
9
|
-
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
10
|
-
|
|
11
|
-
#include "main.h"
|
|
12
|
-
#include <typeinfo>
|
|
13
|
-
|
|
14
|
-
#if defined __GNUC__ && __GNUC__>=6
|
|
15
|
-
#pragma GCC diagnostic ignored "-Wignored-attributes"
|
|
16
|
-
#endif
|
|
17
|
-
// using namespace Eigen;
|
|
18
|
-
|
|
19
|
-
bool g_first_pass = true;
|
|
20
|
-
|
|
21
|
-
namespace Eigen {
|
|
22
|
-
namespace internal {
|
|
23
|
-
|
|
24
|
-
template<typename T> T negate(const T& x) { return -x; }
|
|
25
|
-
|
|
26
|
-
template<typename T>
|
|
27
|
-
Map<const Array<unsigned char,sizeof(T),1> >
|
|
28
|
-
bits(const T& x) {
|
|
29
|
-
return Map<const Array<unsigned char,sizeof(T),1> >(reinterpret_cast<const unsigned char *>(&x));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// The following implement bitwise operations on floating point types
|
|
33
|
-
template<typename T,typename Bits,typename Func>
|
|
34
|
-
T apply_bit_op(Bits a, Bits b, Func f) {
|
|
35
|
-
Array<unsigned char,sizeof(T),1> data;
|
|
36
|
-
T res;
|
|
37
|
-
for(Index i = 0; i < data.size(); ++i)
|
|
38
|
-
data[i] = f(a[i], b[i]);
|
|
39
|
-
// Note: The reinterpret_cast works around GCC's class-memaccess warnings:
|
|
40
|
-
std::memcpy(reinterpret_cast<unsigned char*>(&res), data.data(), sizeof(T));
|
|
41
|
-
return res;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
#define EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,T) \
|
|
45
|
-
template<> T EIGEN_CAT(p,OP)(const T& a,const T& b) { \
|
|
46
|
-
return apply_bit_op<T>(bits(a),bits(b),FUNC); \
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
#define EIGEN_TEST_MAKE_BITWISE(OP,FUNC) \
|
|
50
|
-
EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,float) \
|
|
51
|
-
EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,double) \
|
|
52
|
-
EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,half) \
|
|
53
|
-
EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,bfloat16) \
|
|
54
|
-
EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,std::complex<float>) \
|
|
55
|
-
EIGEN_TEST_MAKE_BITWISE2(OP,FUNC,std::complex<double>)
|
|
56
|
-
|
|
57
|
-
EIGEN_TEST_MAKE_BITWISE(xor,std::bit_xor<unsigned char>())
|
|
58
|
-
EIGEN_TEST_MAKE_BITWISE(and,std::bit_and<unsigned char>())
|
|
59
|
-
EIGEN_TEST_MAKE_BITWISE(or, std::bit_or<unsigned char>())
|
|
60
|
-
struct bit_andnot{
|
|
61
|
-
template<typename T> T
|
|
62
|
-
operator()(T a, T b) const { return a & (~b); }
|
|
63
|
-
};
|
|
64
|
-
EIGEN_TEST_MAKE_BITWISE(andnot, bit_andnot())
|
|
65
|
-
template<typename T>
|
|
66
|
-
bool biteq(T a, T b) {
|
|
67
|
-
return (bits(a) == bits(b)).all();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
namespace test {
|
|
73
|
-
|
|
74
|
-
// NOTE: we disable inlining for this function to workaround a GCC issue when using -O3 and the i387 FPU.
|
|
75
|
-
template<typename Scalar> EIGEN_DONT_INLINE
|
|
76
|
-
bool isApproxAbs(const Scalar& a, const Scalar& b, const typename NumTraits<Scalar>::Real& refvalue)
|
|
77
|
-
{
|
|
78
|
-
return internal::isMuchSmallerThan(a-b, refvalue);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
template<typename Scalar>
|
|
82
|
-
inline void print_mismatch(const Scalar* ref, const Scalar* vec, int size) {
|
|
83
|
-
std::cout << "ref: [" << Map<const Matrix<Scalar,1,Dynamic> >(ref,size) << "]" << " != vec: [" << Map<const Matrix<Scalar,1,Dynamic> >(vec,size) << "]\n";
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
template<typename Scalar> bool areApproxAbs(const Scalar* a, const Scalar* b, int size, const typename NumTraits<Scalar>::Real& refvalue)
|
|
87
|
-
{
|
|
88
|
-
for (int i=0; i<size; ++i)
|
|
89
|
-
{
|
|
90
|
-
if (!isApproxAbs(a[i],b[i],refvalue))
|
|
91
|
-
{
|
|
92
|
-
print_mismatch(a, b, size);
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
template<typename Scalar> bool areApprox(const Scalar* a, const Scalar* b, int size)
|
|
100
|
-
{
|
|
101
|
-
for (int i=0; i<size; ++i)
|
|
102
|
-
{
|
|
103
|
-
if ( a[i]!=b[i] && !internal::isApprox(a[i],b[i])
|
|
104
|
-
&& !((numext::isnan)(a[i]) && (numext::isnan)(b[i])) )
|
|
105
|
-
{
|
|
106
|
-
print_mismatch(a, b, size);
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
template<typename Scalar> bool areEqual(const Scalar* a, const Scalar* b, int size)
|
|
114
|
-
{
|
|
115
|
-
for (int i=0; i<size; ++i)
|
|
116
|
-
{
|
|
117
|
-
if ( (a[i] != b[i]) && !((numext::isnan)(a[i]) && (numext::isnan)(b[i])) )
|
|
118
|
-
{
|
|
119
|
-
print_mismatch(a, b, size);
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
#define CHECK_CWISE1(REFOP, POP) { \
|
|
127
|
-
for (int i=0; i<PacketSize; ++i) \
|
|
128
|
-
ref[i] = REFOP(data1[i]); \
|
|
129
|
-
internal::pstore(data2, POP(internal::pload<Packet>(data1))); \
|
|
130
|
-
VERIFY(test::areApprox(ref, data2, PacketSize) && #POP); \
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Checks component-wise for input of size N. All of data1, data2, and ref
|
|
134
|
-
// should have size at least ceil(N/PacketSize)*PacketSize to avoid memory
|
|
135
|
-
// access errors.
|
|
136
|
-
#define CHECK_CWISE1_N(REFOP, POP, N) { \
|
|
137
|
-
for (int i=0; i<N; ++i) \
|
|
138
|
-
ref[i] = REFOP(data1[i]); \
|
|
139
|
-
for (int j=0; j<N; j+=PacketSize) \
|
|
140
|
-
internal::pstore(data2 + j, POP(internal::pload<Packet>(data1 + j))); \
|
|
141
|
-
VERIFY(test::areApprox(ref, data2, N) && #POP); \
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
template<bool Cond,typename Packet>
|
|
145
|
-
struct packet_helper
|
|
146
|
-
{
|
|
147
|
-
template<typename T>
|
|
148
|
-
inline Packet load(const T* from) const { return internal::pload<Packet>(from); }
|
|
149
|
-
|
|
150
|
-
template<typename T>
|
|
151
|
-
inline Packet loadu(const T* from) const { return internal::ploadu<Packet>(from); }
|
|
152
|
-
|
|
153
|
-
template<typename T>
|
|
154
|
-
inline Packet load(const T* from, unsigned long long umask) const { return internal::ploadu<Packet>(from, umask); }
|
|
155
|
-
|
|
156
|
-
template<typename T>
|
|
157
|
-
inline void store(T* to, const Packet& x) const { internal::pstore(to,x); }
|
|
158
|
-
|
|
159
|
-
template<typename T>
|
|
160
|
-
inline void store(T* to, const Packet& x, unsigned long long umask) const { internal::pstoreu(to, x, umask); }
|
|
161
|
-
|
|
162
|
-
template<typename T>
|
|
163
|
-
inline Packet& forward_reference(Packet& packet, T& /*scalar*/) const { return packet; }
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
template<typename Packet>
|
|
167
|
-
struct packet_helper<false,Packet>
|
|
168
|
-
{
|
|
169
|
-
template<typename T>
|
|
170
|
-
inline T load(const T* from) const { return *from; }
|
|
171
|
-
|
|
172
|
-
template<typename T>
|
|
173
|
-
inline T loadu(const T* from) const { return *from; }
|
|
174
|
-
|
|
175
|
-
template<typename T>
|
|
176
|
-
inline T load(const T* from, unsigned long long) const { return *from; }
|
|
177
|
-
|
|
178
|
-
template<typename T>
|
|
179
|
-
inline void store(T* to, const T& x) const { *to = x; }
|
|
180
|
-
|
|
181
|
-
template<typename T>
|
|
182
|
-
inline void store(T* to, const T& x, unsigned long long) const { *to = x; }
|
|
183
|
-
|
|
184
|
-
template<typename T>
|
|
185
|
-
inline T& forward_reference(Packet& /*packet*/, T& scalar) const { return scalar; }
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
#define CHECK_CWISE1_IF(COND, REFOP, POP) if(COND) { \
|
|
189
|
-
test::packet_helper<COND,Packet> h; \
|
|
190
|
-
for (int i=0; i<PacketSize; ++i) \
|
|
191
|
-
ref[i] = Scalar(REFOP(data1[i])); \
|
|
192
|
-
h.store(data2, POP(h.load(data1))); \
|
|
193
|
-
VERIFY(test::areApprox(ref, data2, PacketSize) && #POP); \
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
#define CHECK_CWISE1_EXACT_IF(COND, REFOP, POP) if(COND) { \
|
|
197
|
-
test::packet_helper<COND,Packet> h; \
|
|
198
|
-
for (int i=0; i<PacketSize; ++i) \
|
|
199
|
-
ref[i] = Scalar(REFOP(data1[i])); \
|
|
200
|
-
h.store(data2, POP(h.load(data1))); \
|
|
201
|
-
VERIFY(test::areEqual(ref, data2, PacketSize) && #POP); \
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
#define CHECK_CWISE2_IF(COND, REFOP, POP) if(COND) { \
|
|
205
|
-
test::packet_helper<COND,Packet> h; \
|
|
206
|
-
for (int i=0; i<PacketSize; ++i) \
|
|
207
|
-
ref[i] = Scalar(REFOP(data1[i], data1[i+PacketSize])); \
|
|
208
|
-
h.store(data2, POP(h.load(data1),h.load(data1+PacketSize))); \
|
|
209
|
-
VERIFY(test::areApprox(ref, data2, PacketSize) && #POP); \
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// One input, one output by reference.
|
|
213
|
-
#define CHECK_CWISE1_BYREF1_IF(COND, REFOP, POP) if(COND) { \
|
|
214
|
-
test::packet_helper<COND,Packet> h; \
|
|
215
|
-
for (int i=0; i<PacketSize; ++i) \
|
|
216
|
-
ref[i] = Scalar(REFOP(data1[i], ref[i+PacketSize])); \
|
|
217
|
-
Packet pout; \
|
|
218
|
-
Scalar sout; \
|
|
219
|
-
h.store(data2, POP(h.load(data1), h.forward_reference(pout, sout))); \
|
|
220
|
-
h.store(data2+PacketSize, h.forward_reference(pout, sout)); \
|
|
221
|
-
VERIFY(test::areApprox(ref, data2, 2 * PacketSize) && #POP); \
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
#define CHECK_CWISE3_IF(COND, REFOP, POP) if (COND) { \
|
|
225
|
-
test::packet_helper<COND, Packet> h; \
|
|
226
|
-
for (int i = 0; i < PacketSize; ++i) \
|
|
227
|
-
ref[i] = Scalar(REFOP(data1[i], data1[i + PacketSize], \
|
|
228
|
-
data1[i + 2 * PacketSize])); \
|
|
229
|
-
h.store(data2, POP(h.load(data1), h.load(data1 + PacketSize), \
|
|
230
|
-
h.load(data1 + 2 * PacketSize))); \
|
|
231
|
-
VERIFY(test::areApprox(ref, data2, PacketSize) && #POP); \
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Specialize the runall struct in your test file by defining run().
|
|
235
|
-
template<
|
|
236
|
-
typename Scalar,
|
|
237
|
-
typename PacketType,
|
|
238
|
-
bool IsComplex = NumTraits<Scalar>::IsComplex,
|
|
239
|
-
bool IsInteger = NumTraits<Scalar>::IsInteger>
|
|
240
|
-
struct runall;
|
|
241
|
-
|
|
242
|
-
template<
|
|
243
|
-
typename Scalar,
|
|
244
|
-
typename PacketType = typename internal::packet_traits<Scalar>::type,
|
|
245
|
-
bool Vectorized = internal::packet_traits<Scalar>::Vectorizable,
|
|
246
|
-
bool HasHalf = !internal::is_same<typename internal::unpacket_traits<PacketType>::half,PacketType>::value >
|
|
247
|
-
struct runner;
|
|
248
|
-
|
|
249
|
-
template<typename Scalar,typename PacketType>
|
|
250
|
-
struct runner<Scalar,PacketType,true,true>
|
|
251
|
-
{
|
|
252
|
-
static void run() {
|
|
253
|
-
runall<Scalar,PacketType>::run();
|
|
254
|
-
runner<Scalar,typename internal::unpacket_traits<PacketType>::half>::run();
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
template<typename Scalar,typename PacketType>
|
|
259
|
-
struct runner<Scalar,PacketType,true,false>
|
|
260
|
-
{
|
|
261
|
-
static void run() {
|
|
262
|
-
runall<Scalar,PacketType>::run();
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
template<typename Scalar,typename PacketType>
|
|
267
|
-
struct runner<Scalar,PacketType,false,false>
|
|
268
|
-
{
|
|
269
|
-
static void run() {
|
|
270
|
-
runall<Scalar,PacketType>::run();
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
}
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
-
// for linear algebra.
|
|
3
|
-
//
|
|
4
|
-
// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
|
|
5
|
-
//
|
|
6
|
-
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
-
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
-
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
-
|
|
10
|
-
#include "main.h"
|
|
11
|
-
#include <Eigen/QR>
|
|
12
|
-
|
|
13
|
-
template<typename Derived1, typename Derived2>
|
|
14
|
-
bool areNotApprox(const MatrixBase<Derived1>& m1, const MatrixBase<Derived2>& m2, typename Derived1::RealScalar epsilon = NumTraits<typename Derived1::RealScalar>::dummy_precision())
|
|
15
|
-
{
|
|
16
|
-
return !((m1-m2).cwiseAbs2().maxCoeff() < epsilon * epsilon
|
|
17
|
-
* (std::max)(m1.cwiseAbs2().maxCoeff(), m2.cwiseAbs2().maxCoeff()));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
template<typename MatrixType> void product(const MatrixType& m)
|
|
21
|
-
{
|
|
22
|
-
/* this test covers the following files:
|
|
23
|
-
Identity.h Product.h
|
|
24
|
-
*/
|
|
25
|
-
typedef typename MatrixType::Scalar Scalar;
|
|
26
|
-
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> RowVectorType;
|
|
27
|
-
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> ColVectorType;
|
|
28
|
-
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MatrixType::RowsAtCompileTime> RowSquareMatrixType;
|
|
29
|
-
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> ColSquareMatrixType;
|
|
30
|
-
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
|
|
31
|
-
MatrixType::Flags&RowMajorBit?ColMajor:RowMajor> OtherMajorMatrixType;
|
|
32
|
-
|
|
33
|
-
Index rows = m.rows();
|
|
34
|
-
Index cols = m.cols();
|
|
35
|
-
|
|
36
|
-
// this test relies a lot on Random.h, and there's not much more that we can do
|
|
37
|
-
// to test it, hence I consider that we will have tested Random.h
|
|
38
|
-
MatrixType m1 = MatrixType::Random(rows, cols),
|
|
39
|
-
m2 = MatrixType::Random(rows, cols),
|
|
40
|
-
m3(rows, cols);
|
|
41
|
-
RowSquareMatrixType
|
|
42
|
-
identity = RowSquareMatrixType::Identity(rows, rows),
|
|
43
|
-
square = RowSquareMatrixType::Random(rows, rows),
|
|
44
|
-
res = RowSquareMatrixType::Random(rows, rows);
|
|
45
|
-
ColSquareMatrixType
|
|
46
|
-
square2 = ColSquareMatrixType::Random(cols, cols),
|
|
47
|
-
res2 = ColSquareMatrixType::Random(cols, cols);
|
|
48
|
-
RowVectorType v1 = RowVectorType::Random(rows);
|
|
49
|
-
ColVectorType vc2 = ColVectorType::Random(cols), vcres(cols);
|
|
50
|
-
OtherMajorMatrixType tm1 = m1;
|
|
51
|
-
|
|
52
|
-
Scalar s1 = internal::random<Scalar>();
|
|
53
|
-
|
|
54
|
-
Index r = internal::random<Index>(0, rows-1),
|
|
55
|
-
c = internal::random<Index>(0, cols-1),
|
|
56
|
-
c2 = internal::random<Index>(0, cols-1);
|
|
57
|
-
|
|
58
|
-
// begin testing Product.h: only associativity for now
|
|
59
|
-
// (we use Transpose.h but this doesn't count as a test for it)
|
|
60
|
-
VERIFY_IS_APPROX((m1*m1.transpose())*m2, m1*(m1.transpose()*m2));
|
|
61
|
-
m3 = m1;
|
|
62
|
-
m3 *= m1.transpose() * m2;
|
|
63
|
-
VERIFY_IS_APPROX(m3, m1 * (m1.transpose()*m2));
|
|
64
|
-
VERIFY_IS_APPROX(m3, m1 * (m1.transpose()*m2));
|
|
65
|
-
|
|
66
|
-
// continue testing Product.h: distributivity
|
|
67
|
-
VERIFY_IS_APPROX(square*(m1 + m2), square*m1+square*m2);
|
|
68
|
-
VERIFY_IS_APPROX(square*(m1 - m2), square*m1-square*m2);
|
|
69
|
-
|
|
70
|
-
// continue testing Product.h: compatibility with ScalarMultiple.h
|
|
71
|
-
VERIFY_IS_APPROX(s1*(square*m1), (s1*square)*m1);
|
|
72
|
-
VERIFY_IS_APPROX(s1*(square*m1), square*(m1*s1));
|
|
73
|
-
|
|
74
|
-
// test Product.h together with Identity.h
|
|
75
|
-
VERIFY_IS_APPROX(v1, identity*v1);
|
|
76
|
-
VERIFY_IS_APPROX(v1.transpose(), v1.transpose() * identity);
|
|
77
|
-
// again, test operator() to check const-qualification
|
|
78
|
-
VERIFY_IS_APPROX(MatrixType::Identity(rows, cols)(r,c), static_cast<Scalar>(r==c));
|
|
79
|
-
|
|
80
|
-
if (rows!=cols)
|
|
81
|
-
VERIFY_RAISES_ASSERT(m3 = m1*m1);
|
|
82
|
-
|
|
83
|
-
// test the previous tests were not screwed up because operator* returns 0
|
|
84
|
-
// (we use the more accurate default epsilon)
|
|
85
|
-
if (!NumTraits<Scalar>::IsInteger && (std::min)(rows,cols)>1)
|
|
86
|
-
{
|
|
87
|
-
VERIFY(areNotApprox(m1.transpose()*m2,m2.transpose()*m1));
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// test optimized operator+= path
|
|
91
|
-
res = square;
|
|
92
|
-
res.noalias() += m1 * m2.transpose();
|
|
93
|
-
VERIFY_IS_APPROX(res, square + m1 * m2.transpose());
|
|
94
|
-
if (!NumTraits<Scalar>::IsInteger && (std::min)(rows,cols)>1)
|
|
95
|
-
{
|
|
96
|
-
VERIFY(areNotApprox(res,square + m2 * m1.transpose()));
|
|
97
|
-
}
|
|
98
|
-
vcres = vc2;
|
|
99
|
-
vcres.noalias() += m1.transpose() * v1;
|
|
100
|
-
VERIFY_IS_APPROX(vcres, vc2 + m1.transpose() * v1);
|
|
101
|
-
|
|
102
|
-
// test optimized operator-= path
|
|
103
|
-
res = square;
|
|
104
|
-
res.noalias() -= m1 * m2.transpose();
|
|
105
|
-
VERIFY_IS_APPROX(res, square - (m1 * m2.transpose()));
|
|
106
|
-
if (!NumTraits<Scalar>::IsInteger && (std::min)(rows,cols)>1)
|
|
107
|
-
{
|
|
108
|
-
VERIFY(areNotApprox(res,square - m2 * m1.transpose()));
|
|
109
|
-
}
|
|
110
|
-
vcres = vc2;
|
|
111
|
-
vcres.noalias() -= m1.transpose() * v1;
|
|
112
|
-
VERIFY_IS_APPROX(vcres, vc2 - m1.transpose() * v1);
|
|
113
|
-
|
|
114
|
-
// test scaled products
|
|
115
|
-
res = square;
|
|
116
|
-
res.noalias() = s1 * m1 * m2.transpose();
|
|
117
|
-
VERIFY_IS_APPROX(res, ((s1*m1).eval() * m2.transpose()));
|
|
118
|
-
res = square;
|
|
119
|
-
res.noalias() += s1 * m1 * m2.transpose();
|
|
120
|
-
VERIFY_IS_APPROX(res, square + ((s1*m1).eval() * m2.transpose()));
|
|
121
|
-
res = square;
|
|
122
|
-
res.noalias() -= s1 * m1 * m2.transpose();
|
|
123
|
-
VERIFY_IS_APPROX(res, square - ((s1*m1).eval() * m2.transpose()));
|
|
124
|
-
|
|
125
|
-
// test d ?= a+b*c rules
|
|
126
|
-
res.noalias() = square + m1 * m2.transpose();
|
|
127
|
-
VERIFY_IS_APPROX(res, square + m1 * m2.transpose());
|
|
128
|
-
res.noalias() += square + m1 * m2.transpose();
|
|
129
|
-
VERIFY_IS_APPROX(res, 2*(square + m1 * m2.transpose()));
|
|
130
|
-
res.noalias() -= square + m1 * m2.transpose();
|
|
131
|
-
VERIFY_IS_APPROX(res, square + m1 * m2.transpose());
|
|
132
|
-
|
|
133
|
-
// test d ?= a-b*c rules
|
|
134
|
-
res.noalias() = square - m1 * m2.transpose();
|
|
135
|
-
VERIFY_IS_APPROX(res, square - m1 * m2.transpose());
|
|
136
|
-
res.noalias() += square - m1 * m2.transpose();
|
|
137
|
-
VERIFY_IS_APPROX(res, 2*(square - m1 * m2.transpose()));
|
|
138
|
-
res.noalias() -= square - m1 * m2.transpose();
|
|
139
|
-
VERIFY_IS_APPROX(res, square - m1 * m2.transpose());
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
tm1 = m1;
|
|
143
|
-
VERIFY_IS_APPROX(tm1.transpose() * v1, m1.transpose() * v1);
|
|
144
|
-
VERIFY_IS_APPROX(v1.transpose() * tm1, v1.transpose() * m1);
|
|
145
|
-
|
|
146
|
-
// test submatrix and matrix/vector product
|
|
147
|
-
for (int i=0; i<rows; ++i)
|
|
148
|
-
res.row(i) = m1.row(i) * m2.transpose();
|
|
149
|
-
VERIFY_IS_APPROX(res, m1 * m2.transpose());
|
|
150
|
-
// the other way round:
|
|
151
|
-
for (int i=0; i<rows; ++i)
|
|
152
|
-
res.col(i) = m1 * m2.transpose().col(i);
|
|
153
|
-
VERIFY_IS_APPROX(res, m1 * m2.transpose());
|
|
154
|
-
|
|
155
|
-
res2 = square2;
|
|
156
|
-
res2.noalias() += m1.transpose() * m2;
|
|
157
|
-
VERIFY_IS_APPROX(res2, square2 + m1.transpose() * m2);
|
|
158
|
-
if (!NumTraits<Scalar>::IsInteger && (std::min)(rows,cols)>1)
|
|
159
|
-
{
|
|
160
|
-
VERIFY(areNotApprox(res2,square2 + m2.transpose() * m1));
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
VERIFY_IS_APPROX(res.col(r).noalias() = square.adjoint() * square.col(r), (square.adjoint() * square.col(r)).eval());
|
|
164
|
-
VERIFY_IS_APPROX(res.col(r).noalias() = square * square.col(r), (square * square.col(r)).eval());
|
|
165
|
-
|
|
166
|
-
// vector at runtime (see bug 1166)
|
|
167
|
-
{
|
|
168
|
-
RowSquareMatrixType ref(square);
|
|
169
|
-
ColSquareMatrixType ref2(square2);
|
|
170
|
-
ref = res = square;
|
|
171
|
-
VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.col(0).transpose() * square.transpose(), (ref.row(0) = m1.col(0).transpose() * square.transpose()));
|
|
172
|
-
VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.block(0,0,rows,1).transpose() * square.transpose(), (ref.row(0) = m1.col(0).transpose() * square.transpose()));
|
|
173
|
-
VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.col(0).transpose() * square, (ref.row(0) = m1.col(0).transpose() * square));
|
|
174
|
-
VERIFY_IS_APPROX(res.block(0,0,1,rows).noalias() = m1.block(0,0,rows,1).transpose() * square, (ref.row(0) = m1.col(0).transpose() * square));
|
|
175
|
-
ref2 = res2 = square2;
|
|
176
|
-
VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.row(0) * square2.transpose(), (ref2.row(0) = m1.row(0) * square2.transpose()));
|
|
177
|
-
VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.block(0,0,1,cols) * square2.transpose(), (ref2.row(0) = m1.row(0) * square2.transpose()));
|
|
178
|
-
VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.row(0) * square2, (ref2.row(0) = m1.row(0) * square2));
|
|
179
|
-
VERIFY_IS_APPROX(res2.block(0,0,1,cols).noalias() = m1.block(0,0,1,cols) * square2, (ref2.row(0) = m1.row(0) * square2));
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// vector.block() (see bug 1283)
|
|
183
|
-
{
|
|
184
|
-
RowVectorType w1(rows);
|
|
185
|
-
VERIFY_IS_APPROX(square * v1.block(0,0,rows,1), square * v1);
|
|
186
|
-
VERIFY_IS_APPROX(w1.noalias() = square * v1.block(0,0,rows,1), square * v1);
|
|
187
|
-
VERIFY_IS_APPROX(w1.block(0,0,rows,1).noalias() = square * v1.block(0,0,rows,1), square * v1);
|
|
188
|
-
|
|
189
|
-
Matrix<Scalar,1,MatrixType::ColsAtCompileTime> w2(cols);
|
|
190
|
-
VERIFY_IS_APPROX(vc2.block(0,0,cols,1).transpose() * square2, vc2.transpose() * square2);
|
|
191
|
-
VERIFY_IS_APPROX(w2.noalias() = vc2.block(0,0,cols,1).transpose() * square2, vc2.transpose() * square2);
|
|
192
|
-
VERIFY_IS_APPROX(w2.block(0,0,1,cols).noalias() = vc2.block(0,0,cols,1).transpose() * square2, vc2.transpose() * square2);
|
|
193
|
-
|
|
194
|
-
vc2 = square2.block(0,0,1,cols).transpose();
|
|
195
|
-
VERIFY_IS_APPROX(square2.block(0,0,1,cols) * square2, vc2.transpose() * square2);
|
|
196
|
-
VERIFY_IS_APPROX(w2.noalias() = square2.block(0,0,1,cols) * square2, vc2.transpose() * square2);
|
|
197
|
-
VERIFY_IS_APPROX(w2.block(0,0,1,cols).noalias() = square2.block(0,0,1,cols) * square2, vc2.transpose() * square2);
|
|
198
|
-
|
|
199
|
-
vc2 = square2.block(0,0,cols,1);
|
|
200
|
-
VERIFY_IS_APPROX(square2.block(0,0,cols,1).transpose() * square2, vc2.transpose() * square2);
|
|
201
|
-
VERIFY_IS_APPROX(w2.noalias() = square2.block(0,0,cols,1).transpose() * square2, vc2.transpose() * square2);
|
|
202
|
-
VERIFY_IS_APPROX(w2.block(0,0,1,cols).noalias() = square2.block(0,0,cols,1).transpose() * square2, vc2.transpose() * square2);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// inner product
|
|
206
|
-
{
|
|
207
|
-
Scalar x = square2.row(c) * square2.col(c2);
|
|
208
|
-
VERIFY_IS_APPROX(x, square2.row(c).transpose().cwiseProduct(square2.col(c2)).sum());
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// outer product
|
|
212
|
-
{
|
|
213
|
-
VERIFY_IS_APPROX(m1.col(c) * m1.row(r), m1.block(0,c,rows,1) * m1.block(r,0,1,cols));
|
|
214
|
-
VERIFY_IS_APPROX(m1.row(r).transpose() * m1.col(c).transpose(), m1.block(r,0,1,cols).transpose() * m1.block(0,c,rows,1).transpose());
|
|
215
|
-
VERIFY_IS_APPROX(m1.block(0,c,rows,1) * m1.row(r), m1.block(0,c,rows,1) * m1.block(r,0,1,cols));
|
|
216
|
-
VERIFY_IS_APPROX(m1.col(c) * m1.block(r,0,1,cols), m1.block(0,c,rows,1) * m1.block(r,0,1,cols));
|
|
217
|
-
VERIFY_IS_APPROX(m1.leftCols(1) * m1.row(r), m1.block(0,0,rows,1) * m1.block(r,0,1,cols));
|
|
218
|
-
VERIFY_IS_APPROX(m1.col(c) * m1.topRows(1), m1.block(0,c,rows,1) * m1.block(0,0,1,cols));
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Aliasing
|
|
222
|
-
{
|
|
223
|
-
ColVectorType x(cols); x.setRandom();
|
|
224
|
-
ColVectorType z(x);
|
|
225
|
-
ColVectorType y(cols); y.setZero();
|
|
226
|
-
ColSquareMatrixType A(cols,cols); A.setRandom();
|
|
227
|
-
// CwiseBinaryOp
|
|
228
|
-
VERIFY_IS_APPROX(x = y + A*x, A*z);
|
|
229
|
-
x = z;
|
|
230
|
-
VERIFY_IS_APPROX(x = y - A*x, A*(-z));
|
|
231
|
-
x = z;
|
|
232
|
-
// CwiseUnaryOp
|
|
233
|
-
VERIFY_IS_APPROX(x = Scalar(1.)*(A*x), A*z);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// regression for blas_trais
|
|
237
|
-
{
|
|
238
|
-
VERIFY_IS_APPROX(square * (square*square).transpose(), square * square.transpose() * square.transpose());
|
|
239
|
-
VERIFY_IS_APPROX(square * (-(square*square)), -square * square * square);
|
|
240
|
-
VERIFY_IS_APPROX(square * (s1*(square*square)), s1 * square * square * square);
|
|
241
|
-
VERIFY_IS_APPROX(square * (square*square).conjugate(), square * square.conjugate() * square.conjugate());
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// destination with a non-default inner-stride
|
|
245
|
-
// see bug 1741
|
|
246
|
-
if(!MatrixType::IsRowMajor)
|
|
247
|
-
{
|
|
248
|
-
typedef Matrix<Scalar,Dynamic,Dynamic> MatrixX;
|
|
249
|
-
MatrixX buffer(2*rows,2*rows);
|
|
250
|
-
Map<RowSquareMatrixType,0,Stride<Dynamic,2> > map1(buffer.data(),rows,rows,Stride<Dynamic,2>(2*rows,2));
|
|
251
|
-
buffer.setZero();
|
|
252
|
-
VERIFY_IS_APPROX(map1 = m1 * m2.transpose(), (m1 * m2.transpose()).eval());
|
|
253
|
-
buffer.setZero();
|
|
254
|
-
VERIFY_IS_APPROX(map1.noalias() = m1 * m2.transpose(), (m1 * m2.transpose()).eval());
|
|
255
|
-
buffer.setZero();
|
|
256
|
-
VERIFY_IS_APPROX(map1.noalias() += m1 * m2.transpose(), (m1 * m2.transpose()).eval());
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
-
// for linear algebra.
|
|
3
|
-
//
|
|
4
|
-
// Copyright (C) 2020 C. Antonio Sanchez <cantonios@google.com>
|
|
5
|
-
//
|
|
6
|
-
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
-
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
-
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
-
|
|
10
|
-
// Utilities for generating random numbers without overflows, which might
|
|
11
|
-
// otherwise result in undefined behavior.
|
|
12
|
-
|
|
13
|
-
namespace Eigen {
|
|
14
|
-
namespace internal {
|
|
15
|
-
|
|
16
|
-
// Default implementation assuming SrcScalar fits into TgtScalar.
|
|
17
|
-
template <typename SrcScalar, typename TgtScalar, typename EnableIf = void>
|
|
18
|
-
struct random_without_cast_overflow {
|
|
19
|
-
static SrcScalar value() { return internal::random<SrcScalar>(); }
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// Signed to unsigned integer widening cast.
|
|
23
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
24
|
-
struct random_without_cast_overflow<
|
|
25
|
-
SrcScalar, TgtScalar,
|
|
26
|
-
typename internal::enable_if<NumTraits<SrcScalar>::IsInteger && NumTraits<TgtScalar>::IsInteger &&
|
|
27
|
-
!NumTraits<TgtScalar>::IsSigned &&
|
|
28
|
-
(std::numeric_limits<SrcScalar>::digits < std::numeric_limits<TgtScalar>::digits ||
|
|
29
|
-
(std::numeric_limits<SrcScalar>::digits == std::numeric_limits<TgtScalar>::digits &&
|
|
30
|
-
NumTraits<SrcScalar>::IsSigned))>::type> {
|
|
31
|
-
static SrcScalar value() {
|
|
32
|
-
SrcScalar a = internal::random<SrcScalar>();
|
|
33
|
-
return a < SrcScalar(0) ? -(a + 1) : a;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// Integer to unsigned narrowing cast.
|
|
38
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
39
|
-
struct random_without_cast_overflow<
|
|
40
|
-
SrcScalar, TgtScalar,
|
|
41
|
-
typename internal::enable_if<
|
|
42
|
-
NumTraits<SrcScalar>::IsInteger && NumTraits<TgtScalar>::IsInteger && !NumTraits<SrcScalar>::IsSigned &&
|
|
43
|
-
(std::numeric_limits<SrcScalar>::digits > std::numeric_limits<TgtScalar>::digits)>::type> {
|
|
44
|
-
static SrcScalar value() {
|
|
45
|
-
TgtScalar b = internal::random<TgtScalar>();
|
|
46
|
-
return static_cast<SrcScalar>(b < TgtScalar(0) ? -(b + 1) : b);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// Integer to signed narrowing cast.
|
|
51
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
52
|
-
struct random_without_cast_overflow<
|
|
53
|
-
SrcScalar, TgtScalar,
|
|
54
|
-
typename internal::enable_if<
|
|
55
|
-
NumTraits<SrcScalar>::IsInteger && NumTraits<TgtScalar>::IsInteger && NumTraits<SrcScalar>::IsSigned &&
|
|
56
|
-
(std::numeric_limits<SrcScalar>::digits > std::numeric_limits<TgtScalar>::digits)>::type> {
|
|
57
|
-
static SrcScalar value() { return static_cast<SrcScalar>(internal::random<TgtScalar>()); }
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
// Unsigned to signed integer narrowing cast.
|
|
61
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
62
|
-
struct random_without_cast_overflow<
|
|
63
|
-
SrcScalar, TgtScalar,
|
|
64
|
-
typename internal::enable_if<NumTraits<SrcScalar>::IsInteger && NumTraits<TgtScalar>::IsInteger &&
|
|
65
|
-
!NumTraits<SrcScalar>::IsSigned && NumTraits<TgtScalar>::IsSigned &&
|
|
66
|
-
(std::numeric_limits<SrcScalar>::digits ==
|
|
67
|
-
std::numeric_limits<TgtScalar>::digits)>::type> {
|
|
68
|
-
static SrcScalar value() { return internal::random<SrcScalar>() / 2; }
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
// Floating-point to integer, full precision.
|
|
72
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
73
|
-
struct random_without_cast_overflow<
|
|
74
|
-
SrcScalar, TgtScalar,
|
|
75
|
-
typename internal::enable_if<
|
|
76
|
-
!NumTraits<SrcScalar>::IsInteger && !NumTraits<SrcScalar>::IsComplex && NumTraits<TgtScalar>::IsInteger &&
|
|
77
|
-
(std::numeric_limits<TgtScalar>::digits <= std::numeric_limits<SrcScalar>::digits)>::type> {
|
|
78
|
-
static SrcScalar value() { return static_cast<SrcScalar>(internal::random<TgtScalar>()); }
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
// Floating-point to integer, narrowing precision.
|
|
82
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
83
|
-
struct random_without_cast_overflow<
|
|
84
|
-
SrcScalar, TgtScalar,
|
|
85
|
-
typename internal::enable_if<
|
|
86
|
-
!NumTraits<SrcScalar>::IsInteger && !NumTraits<SrcScalar>::IsComplex && NumTraits<TgtScalar>::IsInteger &&
|
|
87
|
-
(std::numeric_limits<TgtScalar>::digits > std::numeric_limits<SrcScalar>::digits)>::type> {
|
|
88
|
-
static SrcScalar value() {
|
|
89
|
-
// NOTE: internal::random<T>() is limited by RAND_MAX, so random<int64_t> is always within that range.
|
|
90
|
-
// This prevents us from simply shifting bits, which would result in only 0 or -1.
|
|
91
|
-
// Instead, keep least-significant K bits and sign.
|
|
92
|
-
static const TgtScalar KeepMask = (static_cast<TgtScalar>(1) << std::numeric_limits<SrcScalar>::digits) - 1;
|
|
93
|
-
const TgtScalar a = internal::random<TgtScalar>();
|
|
94
|
-
return static_cast<SrcScalar>(a > TgtScalar(0) ? (a & KeepMask) : -(a & KeepMask));
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
// Integer to floating-point, re-use above logic.
|
|
99
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
100
|
-
struct random_without_cast_overflow<
|
|
101
|
-
SrcScalar, TgtScalar,
|
|
102
|
-
typename internal::enable_if<NumTraits<SrcScalar>::IsInteger && !NumTraits<TgtScalar>::IsInteger &&
|
|
103
|
-
!NumTraits<TgtScalar>::IsComplex>::type> {
|
|
104
|
-
static SrcScalar value() {
|
|
105
|
-
return static_cast<SrcScalar>(random_without_cast_overflow<TgtScalar, SrcScalar>::value());
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// Floating-point narrowing conversion.
|
|
110
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
111
|
-
struct random_without_cast_overflow<
|
|
112
|
-
SrcScalar, TgtScalar,
|
|
113
|
-
typename internal::enable_if<!NumTraits<SrcScalar>::IsInteger && !NumTraits<SrcScalar>::IsComplex &&
|
|
114
|
-
!NumTraits<TgtScalar>::IsInteger && !NumTraits<TgtScalar>::IsComplex &&
|
|
115
|
-
(std::numeric_limits<SrcScalar>::digits >
|
|
116
|
-
std::numeric_limits<TgtScalar>::digits)>::type> {
|
|
117
|
-
static SrcScalar value() { return static_cast<SrcScalar>(internal::random<TgtScalar>()); }
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// Complex to non-complex.
|
|
121
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
122
|
-
struct random_without_cast_overflow<
|
|
123
|
-
SrcScalar, TgtScalar,
|
|
124
|
-
typename internal::enable_if<NumTraits<SrcScalar>::IsComplex && !NumTraits<TgtScalar>::IsComplex>::type> {
|
|
125
|
-
typedef typename NumTraits<SrcScalar>::Real SrcReal;
|
|
126
|
-
static SrcScalar value() { return SrcScalar(random_without_cast_overflow<SrcReal, TgtScalar>::value(), 0); }
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
// Non-complex to complex.
|
|
130
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
131
|
-
struct random_without_cast_overflow<
|
|
132
|
-
SrcScalar, TgtScalar,
|
|
133
|
-
typename internal::enable_if<!NumTraits<SrcScalar>::IsComplex && NumTraits<TgtScalar>::IsComplex>::type> {
|
|
134
|
-
typedef typename NumTraits<TgtScalar>::Real TgtReal;
|
|
135
|
-
static SrcScalar value() { return random_without_cast_overflow<SrcScalar, TgtReal>::value(); }
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
// Complex to complex.
|
|
139
|
-
template <typename SrcScalar, typename TgtScalar>
|
|
140
|
-
struct random_without_cast_overflow<
|
|
141
|
-
SrcScalar, TgtScalar,
|
|
142
|
-
typename internal::enable_if<NumTraits<SrcScalar>::IsComplex && NumTraits<TgtScalar>::IsComplex>::type> {
|
|
143
|
-
typedef typename NumTraits<SrcScalar>::Real SrcReal;
|
|
144
|
-
typedef typename NumTraits<TgtScalar>::Real TgtReal;
|
|
145
|
-
static SrcScalar value() {
|
|
146
|
-
return SrcScalar(random_without_cast_overflow<SrcReal, TgtReal>::value(),
|
|
147
|
-
random_without_cast_overflow<SrcReal, TgtReal>::value());
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
} // namespace internal
|
|
152
|
-
} // namespace Eigen
|