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
|
@@ -116,6 +116,11 @@ namespace xsimd
|
|
|
116
116
|
{
|
|
117
117
|
return fast_cast(self, out, A {});
|
|
118
118
|
}
|
|
119
|
+
#if defined(__clang__) || __GNUC__
|
|
120
|
+
template <class A, class T_out, class T_in>
|
|
121
|
+
XSIMD_INLINE batch<T_out, A> batch_cast(batch<T_in, A> const& self, batch<T_out, A> const&, requires_arch<common>, with_slow_conversion) noexcept
|
|
122
|
+
__attribute__((no_sanitize("undefined")));
|
|
123
|
+
#endif
|
|
119
124
|
template <class A, class T_out, class T_in>
|
|
120
125
|
XSIMD_INLINE batch<T_out, A> batch_cast(batch<T_in, A> const& self, batch<T_out, A> const&, requires_arch<common>, with_slow_conversion) noexcept
|
|
121
126
|
{
|
|
@@ -126,7 +131,8 @@ namespace xsimd
|
|
|
126
131
|
alignas(A::alignment()) T_in buffer_in[batch_type_in::size];
|
|
127
132
|
alignas(A::alignment()) T_out buffer_out[batch_type_out::size];
|
|
128
133
|
self.store_aligned(&buffer_in[0]);
|
|
129
|
-
|
|
134
|
+
for (size_t i = 0; i < batch_type_in::size; ++i)
|
|
135
|
+
buffer_out[i] = static_cast<T_out>(buffer_in[i]);
|
|
130
136
|
return batch_type_out::load_aligned(buffer_out);
|
|
131
137
|
}
|
|
132
138
|
|
|
@@ -890,7 +896,9 @@ namespace xsimd
|
|
|
890
896
|
batch_type k = reducer_t::reduce(self, x);
|
|
891
897
|
x = reducer_t::approx(x);
|
|
892
898
|
x = select(self <= reducer_t::minlog(), batch_type(0.), ldexp(x, to_int(k)));
|
|
899
|
+
#ifndef __FAST_MATH__
|
|
893
900
|
x = select(self >= reducer_t::maxlog(), constants::infinity<batch_type>(), x);
|
|
901
|
+
#endif
|
|
894
902
|
return x;
|
|
895
903
|
}
|
|
896
904
|
|
|
@@ -904,7 +912,9 @@ namespace xsimd
|
|
|
904
912
|
batch_type c = reducer_t::approx(x);
|
|
905
913
|
c = reducer_t::finalize(x, c, hi, lo);
|
|
906
914
|
c = select(self <= reducer_t::minlog(), batch_type(0.), ldexp(c, to_int(k)));
|
|
915
|
+
#ifndef __FAST_MATH__
|
|
907
916
|
c = select(self >= reducer_t::maxlog(), constants::infinity<batch_type>(), c);
|
|
917
|
+
#endif
|
|
908
918
|
return c;
|
|
909
919
|
}
|
|
910
920
|
}
|
|
@@ -1008,11 +1018,11 @@ namespace xsimd
|
|
|
1008
1018
|
XSIMD_INLINE batch<T, A> expm1(batch<T, A> const& self, requires_arch<common>) noexcept
|
|
1009
1019
|
{
|
|
1010
1020
|
using batch_type = batch<T, A>;
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1021
|
+
auto x = detail::expm1(self);
|
|
1022
|
+
#ifndef __FAST_MATH__
|
|
1023
|
+
x = select(self > constants::maxlog<batch_type>(), constants::infinity<batch_type>(), x);
|
|
1024
|
+
#endif
|
|
1025
|
+
return select(self < constants::logeps<batch_type>(), batch_type(-1.), x);
|
|
1016
1026
|
}
|
|
1017
1027
|
|
|
1018
1028
|
template <class A, class T>
|
|
@@ -1077,7 +1087,7 @@ namespace xsimd
|
|
|
1077
1087
|
template <class A, class T>
|
|
1078
1088
|
XSIMD_INLINE batch<T, A> from_bool(batch_bool<T, A> const& self, requires_arch<common>) noexcept
|
|
1079
1089
|
{
|
|
1080
|
-
return batch<T, A>(self.data) & batch<T, A>(1);
|
|
1090
|
+
return batch<T, A>((typename batch<T, A>::register_type)self.data) & batch<T, A>(1);
|
|
1081
1091
|
}
|
|
1082
1092
|
|
|
1083
1093
|
// horner
|
|
@@ -1239,12 +1249,20 @@ namespace xsimd
|
|
|
1239
1249
|
batch_type r1 = other(q);
|
|
1240
1250
|
if (any(ltza))
|
|
1241
1251
|
{
|
|
1252
|
+
#ifdef __FAST_MATH__
|
|
1253
|
+
r = negative(q, r1);
|
|
1254
|
+
#else
|
|
1242
1255
|
r = select(inf_result, constants::infinity<batch_type>(), negative(q, r1));
|
|
1256
|
+
#endif
|
|
1243
1257
|
if (all(ltza))
|
|
1244
1258
|
return r;
|
|
1245
1259
|
}
|
|
1246
1260
|
batch_type r2 = select(ltza, r, r1);
|
|
1261
|
+
#ifdef __FAST_MATH__
|
|
1262
|
+
return r2;
|
|
1263
|
+
#else
|
|
1247
1264
|
return select(a == constants::minusinfinity<batch_type>(), constants::nan<batch_type>(), select(inf_result, constants::infinity<batch_type>(), r2));
|
|
1265
|
+
#endif
|
|
1248
1266
|
}
|
|
1249
1267
|
|
|
1250
1268
|
private:
|
|
@@ -1365,7 +1383,11 @@ namespace xsimd
|
|
|
1365
1383
|
}
|
|
1366
1384
|
batch_type r1 = other(a);
|
|
1367
1385
|
batch_type r2 = select(test, r, r1);
|
|
1386
|
+
#ifdef __FAST_MATH__
|
|
1387
|
+
return r2;
|
|
1388
|
+
#else
|
|
1368
1389
|
return select(a == constants::minusinfinity<batch_type>(), constants::nan<batch_type>(), select(inf_result, constants::infinity<batch_type>(), r2));
|
|
1390
|
+
#endif
|
|
1369
1391
|
}
|
|
1370
1392
|
|
|
1371
1393
|
private:
|
|
@@ -1473,12 +1495,12 @@ namespace xsimd
|
|
|
1473
1495
|
batch_type hfsq = batch_type(0.5) * f * f;
|
|
1474
1496
|
batch_type dk = to_float(k);
|
|
1475
1497
|
batch_type r = fma(dk, constants::log_2hi<batch_type>(), fma(s, (hfsq + R), dk * constants::log_2lo<batch_type>()) - hfsq + f);
|
|
1476
|
-
#
|
|
1477
|
-
|
|
1498
|
+
#ifdef __FAST_MATH__
|
|
1499
|
+
return r;
|
|
1478
1500
|
#else
|
|
1479
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1480
|
-
#endif
|
|
1501
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1481
1502
|
return select(!(self >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1503
|
+
#endif
|
|
1482
1504
|
}
|
|
1483
1505
|
|
|
1484
1506
|
template <class A>
|
|
@@ -1516,12 +1538,12 @@ namespace xsimd
|
|
|
1516
1538
|
batch_type t2 = z * detail::horner<batch_type, 0x3fe5555555555593ll, 0x3fd2492494229359ll, 0x3fc7466496cb03dell, 0x3fc2f112df3e5244ll>(w);
|
|
1517
1539
|
batch_type R = t2 + t1;
|
|
1518
1540
|
batch_type r = fma(dk, constants::log_2hi<batch_type>(), fma(s, (hfsq + R), dk * constants::log_2lo<batch_type>()) - hfsq + f);
|
|
1519
|
-
#
|
|
1520
|
-
|
|
1541
|
+
#ifdef __FAST_MATH__
|
|
1542
|
+
return r;
|
|
1521
1543
|
#else
|
|
1522
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1523
|
-
#endif
|
|
1544
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1524
1545
|
return select(!(self >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1546
|
+
#endif
|
|
1525
1547
|
}
|
|
1526
1548
|
|
|
1527
1549
|
template <class A, class T>
|
|
@@ -1563,12 +1585,12 @@ namespace xsimd
|
|
|
1563
1585
|
batch_type hfsq = batch_type(0.5) * f * f;
|
|
1564
1586
|
batch_type dk = to_float(k);
|
|
1565
1587
|
batch_type r = fma(fms(s, hfsq + R, hfsq) + f, constants::invlog_2<batch_type>(), dk);
|
|
1566
|
-
#
|
|
1567
|
-
|
|
1588
|
+
#ifdef __FAST_MATH__
|
|
1589
|
+
return r;
|
|
1568
1590
|
#else
|
|
1569
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1570
|
-
#endif
|
|
1591
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1571
1592
|
return select(!(self >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1593
|
+
#endif
|
|
1572
1594
|
}
|
|
1573
1595
|
|
|
1574
1596
|
template <class A>
|
|
@@ -1611,12 +1633,12 @@ namespace xsimd
|
|
|
1611
1633
|
val_lo += (dk - w1) + val_hi;
|
|
1612
1634
|
val_hi = w1;
|
|
1613
1635
|
batch_type r = val_lo + val_hi;
|
|
1614
|
-
#
|
|
1615
|
-
|
|
1636
|
+
#ifdef __FAST_MATH__
|
|
1637
|
+
return r;
|
|
1616
1638
|
#else
|
|
1617
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1618
|
-
#endif
|
|
1639
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1619
1640
|
return select(!(self >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1641
|
+
#endif
|
|
1620
1642
|
}
|
|
1621
1643
|
|
|
1622
1644
|
namespace detail
|
|
@@ -1694,9 +1716,15 @@ namespace xsimd
|
|
|
1694
1716
|
#ifndef XSIMD_NO_INFINITIES
|
|
1695
1717
|
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1696
1718
|
#else
|
|
1697
|
-
|
|
1719
|
+
assert(all(isnez) && "Calling log10 on a batch with zero value while XSIMD_NO_INFINITIES is active");
|
|
1720
|
+
batch_type zz = r;
|
|
1698
1721
|
#endif
|
|
1722
|
+
#ifndef XSIMD_NO_NANS
|
|
1699
1723
|
return select(!(self >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1724
|
+
#else
|
|
1725
|
+
assert(all(self >= batch_type(0.)) && "Calling log10 on a batch with negative value while XSIMD_NO_NANS is active");
|
|
1726
|
+
return zz;
|
|
1727
|
+
#endif
|
|
1700
1728
|
}
|
|
1701
1729
|
|
|
1702
1730
|
template <class A>
|
|
@@ -1745,12 +1773,12 @@ namespace xsimd
|
|
|
1745
1773
|
val_lo += (y - w1) + val_hi;
|
|
1746
1774
|
val_hi = w1;
|
|
1747
1775
|
batch_type r = val_lo + val_hi;
|
|
1748
|
-
#
|
|
1749
|
-
|
|
1776
|
+
#ifdef __FAST_MATH__
|
|
1777
|
+
return r;
|
|
1750
1778
|
#else
|
|
1751
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1752
|
-
#endif
|
|
1779
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1753
1780
|
return select(!(self >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1781
|
+
#endif
|
|
1754
1782
|
}
|
|
1755
1783
|
|
|
1756
1784
|
template <class A, class T>
|
|
@@ -1793,12 +1821,12 @@ namespace xsimd
|
|
|
1793
1821
|
/* correction term ~ log(1+x)-log(u), avoid underflow in c/u */
|
|
1794
1822
|
batch_type c = select(batch_bool_cast<float>(k >= i_type(2)), batch_type(1.) - (uf - self), self - (uf - batch_type(1.))) / uf;
|
|
1795
1823
|
batch_type r = fma(dk, constants::log_2hi<batch_type>(), fma(s, (hfsq + R), dk * constants::log_2lo<batch_type>() + c) - hfsq + f);
|
|
1796
|
-
#
|
|
1797
|
-
|
|
1824
|
+
#ifdef __FAST_MATH__
|
|
1825
|
+
return r;
|
|
1798
1826
|
#else
|
|
1799
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1800
|
-
#endif
|
|
1827
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1801
1828
|
return select(!(uf >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1829
|
+
#endif
|
|
1802
1830
|
}
|
|
1803
1831
|
|
|
1804
1832
|
template <class A>
|
|
@@ -1826,12 +1854,12 @@ namespace xsimd
|
|
|
1826
1854
|
batch_type R = t2 + t1;
|
|
1827
1855
|
batch_type dk = to_float(k);
|
|
1828
1856
|
batch_type r = fma(dk, constants::log_2hi<batch_type>(), fma(s, hfsq + R, dk * constants::log_2lo<batch_type>() + c) - hfsq + f);
|
|
1829
|
-
#
|
|
1830
|
-
|
|
1857
|
+
#ifdef __FAST_MATH__
|
|
1858
|
+
return r;
|
|
1831
1859
|
#else
|
|
1832
|
-
batch_type zz = select(isnez, r, constants::minusinfinity<batch_type>());
|
|
1833
|
-
#endif
|
|
1860
|
+
batch_type zz = select(isnez, select(self == constants::infinity<batch_type>(), constants::infinity<batch_type>(), r), constants::minusinfinity<batch_type>());
|
|
1834
1861
|
return select(!(uf >= batch_type(0.)), constants::nan<batch_type>(), zz);
|
|
1862
|
+
#endif
|
|
1835
1863
|
}
|
|
1836
1864
|
|
|
1837
1865
|
template <class A, class T>
|
|
@@ -1876,8 +1904,9 @@ namespace xsimd
|
|
|
1876
1904
|
// to v. That's not what we want, so prevent compiler optimization here.
|
|
1877
1905
|
// FIXME: it may be better to emit a memory barrier here (?).
|
|
1878
1906
|
#ifdef __FAST_MATH__
|
|
1879
|
-
|
|
1880
|
-
|
|
1907
|
+
batch_type d0 = v + t2n;
|
|
1908
|
+
asm volatile("" ::"r"(&d0) : "memory");
|
|
1909
|
+
batch_type d = d0 - t2n;
|
|
1881
1910
|
#else
|
|
1882
1911
|
batch_type d0 = v + t2n;
|
|
1883
1912
|
batch_type d = d0 - t2n;
|
|
@@ -1968,13 +1997,21 @@ namespace xsimd
|
|
|
1968
1997
|
static XSIMD_INLINE batch_type next(const batch_type& b) noexcept
|
|
1969
1998
|
{
|
|
1970
1999
|
batch_type n = ::xsimd::bitwise_cast<T>(::xsimd::bitwise_cast<int_type>(b) + int_type(1));
|
|
2000
|
+
#ifdef __FAST_MATH__
|
|
2001
|
+
return n;
|
|
2002
|
+
#else
|
|
1971
2003
|
return select(b == constants::infinity<batch_type>(), b, n);
|
|
2004
|
+
#endif
|
|
1972
2005
|
}
|
|
1973
2006
|
|
|
1974
2007
|
static XSIMD_INLINE batch_type prev(const batch_type& b) noexcept
|
|
1975
2008
|
{
|
|
1976
2009
|
batch_type p = ::xsimd::bitwise_cast<T>(::xsimd::bitwise_cast<int_type>(b) - int_type(1));
|
|
2010
|
+
#ifdef __FAST_MATH__
|
|
2011
|
+
return p;
|
|
2012
|
+
#else
|
|
1977
2013
|
return select(b == constants::minusinfinity<batch_type>(), b, p);
|
|
2014
|
+
#endif
|
|
1978
2015
|
}
|
|
1979
2016
|
};
|
|
1980
2017
|
}
|
|
@@ -2066,6 +2103,19 @@ namespace xsimd
|
|
|
2066
2103
|
return { reduce_add(self.real()), reduce_add(self.imag()) };
|
|
2067
2104
|
}
|
|
2068
2105
|
|
|
2106
|
+
template <class A, class T, class /*=typename std::enable_if<std::is_scalar<T>::value, void>::type*/>
|
|
2107
|
+
XSIMD_INLINE T reduce_add(batch<T, A> const& self, requires_arch<common>) noexcept
|
|
2108
|
+
{
|
|
2109
|
+
alignas(A::alignment()) T buffer[batch<T, A>::size];
|
|
2110
|
+
self.store_aligned(buffer);
|
|
2111
|
+
T res = 0;
|
|
2112
|
+
for (T val : buffer)
|
|
2113
|
+
{
|
|
2114
|
+
res += val;
|
|
2115
|
+
}
|
|
2116
|
+
return res;
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2069
2119
|
namespace detail
|
|
2070
2120
|
{
|
|
2071
2121
|
template <class T, T N>
|
|
@@ -2073,14 +2123,14 @@ namespace xsimd
|
|
|
2073
2123
|
{
|
|
2074
2124
|
static constexpr T get(T i, T)
|
|
2075
2125
|
{
|
|
2076
|
-
return i
|
|
2126
|
+
return i < N ? (i + N) : ((i % N) + N);
|
|
2077
2127
|
}
|
|
2078
2128
|
};
|
|
2079
2129
|
|
|
2080
2130
|
template <class Op, class A, class T>
|
|
2081
2131
|
XSIMD_INLINE T reduce(Op, batch<T, A> const& self, std::integral_constant<unsigned, 1>) noexcept
|
|
2082
2132
|
{
|
|
2083
|
-
return self
|
|
2133
|
+
return ::xsimd::kernel::first(self, A {});
|
|
2084
2134
|
}
|
|
2085
2135
|
|
|
2086
2136
|
template <class Op, class A, class T, unsigned Lvl>
|
|
@@ -2110,6 +2160,34 @@ namespace xsimd
|
|
|
2110
2160
|
self, std::integral_constant<unsigned, batch<T, A>::size>());
|
|
2111
2161
|
}
|
|
2112
2162
|
|
|
2163
|
+
// reduce_mul
|
|
2164
|
+
template <class A, class T>
|
|
2165
|
+
XSIMD_INLINE std::complex<T> reduce_mul(batch<std::complex<T>, A> const& self, requires_arch<common>) noexcept
|
|
2166
|
+
{
|
|
2167
|
+
// FIXME: could do better
|
|
2168
|
+
alignas(A::alignment()) std::complex<T> buffer[batch<std::complex<T>, A>::size];
|
|
2169
|
+
self.store_aligned(buffer);
|
|
2170
|
+
std::complex<T> res = 1;
|
|
2171
|
+
for (auto val : buffer)
|
|
2172
|
+
{
|
|
2173
|
+
res *= val;
|
|
2174
|
+
}
|
|
2175
|
+
return res;
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2178
|
+
template <class A, class T, class /*=typename std::enable_if<std::is_scalar<T>::value, void>::type*/>
|
|
2179
|
+
XSIMD_INLINE T reduce_mul(batch<T, A> const& self, requires_arch<common>) noexcept
|
|
2180
|
+
{
|
|
2181
|
+
alignas(A::alignment()) T buffer[batch<T, A>::size];
|
|
2182
|
+
self.store_aligned(buffer);
|
|
2183
|
+
T res = 1;
|
|
2184
|
+
for (T val : buffer)
|
|
2185
|
+
{
|
|
2186
|
+
res *= val;
|
|
2187
|
+
}
|
|
2188
|
+
return res;
|
|
2189
|
+
}
|
|
2190
|
+
|
|
2113
2191
|
// remainder
|
|
2114
2192
|
template <class A>
|
|
2115
2193
|
XSIMD_INLINE batch<float, A> remainder(batch<float, A> const& self, batch<float, A> const& other, requires_arch<common>) noexcept
|
|
@@ -2343,10 +2421,12 @@ namespace xsimd
|
|
|
2343
2421
|
y *= v;
|
|
2344
2422
|
y = select(test, y, y * v);
|
|
2345
2423
|
y *= constants::sqrt_2pi<batch_type>() * w;
|
|
2346
|
-
#
|
|
2424
|
+
#ifdef __FAST_MATH__
|
|
2425
|
+
return y;
|
|
2426
|
+
#else
|
|
2347
2427
|
y = select(isinf(x), x, y);
|
|
2348
|
-
#endif
|
|
2349
2428
|
return select(x > stirlinglargelim, constants::infinity<batch_type>(), y);
|
|
2429
|
+
#endif
|
|
2350
2430
|
}
|
|
2351
2431
|
|
|
2352
2432
|
/* origin: boost/simd/arch/common/detail/common/gamma_kernel.hpp */
|
|
@@ -2475,7 +2555,7 @@ namespace xsimd
|
|
|
2475
2555
|
{
|
|
2476
2556
|
using batch_type = batch<T, A>;
|
|
2477
2557
|
auto nan_result = (self < batch_type(0.) && is_flint(self));
|
|
2478
|
-
#ifndef
|
|
2558
|
+
#ifndef XSIMD_NO_NANS
|
|
2479
2559
|
nan_result = isnan(self) || nan_result;
|
|
2480
2560
|
#endif
|
|
2481
2561
|
batch_type q = abs(self);
|
|
@@ -2489,7 +2569,11 @@ namespace xsimd
|
|
|
2489
2569
|
}
|
|
2490
2570
|
batch_type r1 = detail::tgamma_other(self, test);
|
|
2491
2571
|
batch_type r2 = select(test, r, r1);
|
|
2572
|
+
#ifdef __FAST_MATH__
|
|
2573
|
+
return r2;
|
|
2574
|
+
#else
|
|
2492
2575
|
return select(self == batch_type(0.), copysign(constants::infinity<batch_type>(), self), select(nan_result, constants::nan<batch_type>(), r2));
|
|
2576
|
+
#endif
|
|
2493
2577
|
}
|
|
2494
2578
|
|
|
2495
2579
|
}
|
|
@@ -260,6 +260,25 @@ namespace xsimd
|
|
|
260
260
|
return buffer[i];
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
+
// first
|
|
264
|
+
template <class A, class T>
|
|
265
|
+
XSIMD_INLINE T first(batch<T, A> const& self, requires_arch<common>) noexcept
|
|
266
|
+
{
|
|
267
|
+
return get(self, 0, common {});
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
template <class A, class T>
|
|
271
|
+
XSIMD_INLINE T first(batch_bool<T, A> const& self, requires_arch<common>) noexcept
|
|
272
|
+
{
|
|
273
|
+
return first(batch<T, A>(self), A {});
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
template <class A, class T>
|
|
277
|
+
XSIMD_INLINE auto first(batch<std::complex<T>, A> const& self, requires_arch<common>) noexcept -> typename batch<std::complex<T>, A>::value_type
|
|
278
|
+
{
|
|
279
|
+
return { first(self.real(), A {}), first(self.imag(), A {}) };
|
|
280
|
+
}
|
|
281
|
+
|
|
263
282
|
// load
|
|
264
283
|
template <class A, class T>
|
|
265
284
|
XSIMD_INLINE batch_bool<T, A> load_unaligned(bool const* mem, batch_bool<T, A>, requires_arch<common>) noexcept
|
|
@@ -341,7 +360,7 @@ namespace xsimd
|
|
|
341
360
|
}
|
|
342
361
|
};
|
|
343
362
|
|
|
344
|
-
return swizzle(self, make_batch_constant<as_unsigned_integer_t<T>, rotate_generator, A>()
|
|
363
|
+
return swizzle(self, make_batch_constant<as_unsigned_integer_t<T>, rotate_generator, A>());
|
|
345
364
|
}
|
|
346
365
|
|
|
347
366
|
template <size_t N, class A, class T>
|
|
@@ -362,7 +381,7 @@ namespace xsimd
|
|
|
362
381
|
}
|
|
363
382
|
};
|
|
364
383
|
|
|
365
|
-
return swizzle(self, make_batch_constant<as_unsigned_integer_t<T>, rotate_generator, A>()
|
|
384
|
+
return swizzle(self, make_batch_constant<as_unsigned_integer_t<T>, rotate_generator, A>());
|
|
366
385
|
}
|
|
367
386
|
|
|
368
387
|
template <size_t N, class A, class T>
|
|
@@ -611,6 +630,15 @@ namespace xsimd
|
|
|
611
630
|
return batch<T, A>::load_aligned(out_buffer);
|
|
612
631
|
}
|
|
613
632
|
|
|
633
|
+
template <class A, class T, class ITy, ITy... Is>
|
|
634
|
+
XSIMD_INLINE batch<T, A> swizzle(batch<T, A> const& self, batch_constant<ITy, A, Is...>, requires_arch<common>) noexcept
|
|
635
|
+
{
|
|
636
|
+
constexpr size_t size = batch<T, A>::size;
|
|
637
|
+
alignas(A::alignment()) T self_buffer[size];
|
|
638
|
+
store_aligned(&self_buffer[0], self);
|
|
639
|
+
return { self_buffer[Is]... };
|
|
640
|
+
}
|
|
641
|
+
|
|
614
642
|
template <class A, class T, class ITy>
|
|
615
643
|
XSIMD_INLINE batch<std::complex<T>, A> swizzle(batch<std::complex<T>, A> const& self, batch<ITy, A> mask, requires_arch<common>) noexcept
|
|
616
644
|
{
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/***************************************************************************
|
|
2
|
+
* Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
|
|
3
|
+
* Martin Renou *
|
|
4
|
+
* Copyright (c) QuantStack *
|
|
5
|
+
* Copyright (c) Serge Guelton *
|
|
6
|
+
* Copyright (c) Marco Barbone *
|
|
7
|
+
* *
|
|
8
|
+
* Distributed under the terms of the BSD 3-Clause License. *
|
|
9
|
+
* *
|
|
10
|
+
* The full license is in the file LICENSE, distributed with this software.*
|
|
11
|
+
****************************************************************************/
|
|
12
|
+
#ifndef XSIMD_COMMON_SWIZZLE_HPP
|
|
13
|
+
#define XSIMD_COMMON_SWIZZLE_HPP
|
|
14
|
+
|
|
15
|
+
#include <cstddef>
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
#include <type_traits>
|
|
18
|
+
|
|
19
|
+
namespace xsimd
|
|
20
|
+
{
|
|
21
|
+
template <typename T, class A, T... Values>
|
|
22
|
+
struct batch_constant;
|
|
23
|
+
|
|
24
|
+
namespace kernel
|
|
25
|
+
{
|
|
26
|
+
namespace detail
|
|
27
|
+
{
|
|
28
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
29
|
+
// get_at<I,Values...> → the I-th element of the pack
|
|
30
|
+
template <typename T, std::size_t I, T V0, T... Vs>
|
|
31
|
+
struct get_at
|
|
32
|
+
{
|
|
33
|
+
static constexpr T value = get_at<T, I - 1, Vs...>::value;
|
|
34
|
+
};
|
|
35
|
+
template <typename T, T V0, T... Vs>
|
|
36
|
+
struct get_at<T, 0, V0, Vs...>
|
|
37
|
+
{
|
|
38
|
+
static constexpr T value = V0;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
42
|
+
// 1) identity_impl
|
|
43
|
+
template <std::size_t /*I*/, typename T>
|
|
44
|
+
XSIMD_INLINE constexpr bool identity_impl() noexcept { return true; }
|
|
45
|
+
template <std::size_t I, typename T, T V0, T... Vs>
|
|
46
|
+
XSIMD_INLINE constexpr bool identity_impl() noexcept
|
|
47
|
+
{
|
|
48
|
+
return V0 == static_cast<T>(I)
|
|
49
|
+
&& identity_impl<I + 1, T, Vs...>();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
53
|
+
// 2) bitmask_impl
|
|
54
|
+
template <std::size_t /*I*/, std::size_t /*N*/, typename T>
|
|
55
|
+
XSIMD_INLINE constexpr std::uint32_t bitmask_impl() noexcept { return 0u; }
|
|
56
|
+
template <std::size_t I, std::size_t N, typename T, T V0, T... Vs>
|
|
57
|
+
XSIMD_INLINE constexpr std::uint32_t bitmask_impl() noexcept
|
|
58
|
+
{
|
|
59
|
+
return (1u << (static_cast<std::uint32_t>(V0) & (N - 1)))
|
|
60
|
+
| bitmask_impl<I + 1, N, T, Vs...>();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
64
|
+
// 3) dup_lo_impl
|
|
65
|
+
template <std::size_t I, std::size_t N, typename T,
|
|
66
|
+
T... Vs, typename std::enable_if<I == N / 2, int>::type = 0>
|
|
67
|
+
XSIMD_INLINE constexpr bool dup_lo_impl() noexcept { return true; }
|
|
68
|
+
|
|
69
|
+
template <std::size_t I, std::size_t N, typename T,
|
|
70
|
+
T... Vs, typename std::enable_if<(I < N / 2), int>::type = 0>
|
|
71
|
+
XSIMD_INLINE constexpr bool dup_lo_impl() noexcept
|
|
72
|
+
{
|
|
73
|
+
return get_at<T, I, Vs...>::value < static_cast<T>(N / 2)
|
|
74
|
+
&& get_at<T, I + N / 2, Vs...>::value == get_at<T, I, Vs...>::value
|
|
75
|
+
&& dup_lo_impl<I + 1, N, T, Vs...>();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
79
|
+
// 4) dup_hi_impl
|
|
80
|
+
template <std::size_t I, std::size_t N, typename T,
|
|
81
|
+
T... Vs, typename std::enable_if<I == N / 2, int>::type = 0>
|
|
82
|
+
XSIMD_INLINE constexpr bool dup_hi_impl() noexcept { return true; }
|
|
83
|
+
|
|
84
|
+
template <std::size_t I, std::size_t N, typename T,
|
|
85
|
+
T... Vs, typename std::enable_if<(I < N / 2), int>::type = 0>
|
|
86
|
+
XSIMD_INLINE constexpr bool dup_hi_impl() noexcept
|
|
87
|
+
{
|
|
88
|
+
return get_at<T, I, Vs...>::value >= static_cast<T>(N / 2)
|
|
89
|
+
&& get_at<T, I, Vs...>::value < static_cast<T>(N)
|
|
90
|
+
&& get_at<T, I + N / 2, Vs...>::value == get_at<T, I, Vs...>::value
|
|
91
|
+
&& dup_hi_impl<I + 1, N, T, Vs...>();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
95
|
+
// 1) helper to get the I-th value from the Vs pack
|
|
96
|
+
template <std::size_t I, uint32_t Head, uint32_t... Tail>
|
|
97
|
+
struct get_nth_value
|
|
98
|
+
{
|
|
99
|
+
static constexpr uint32_t value = get_nth_value<I - 1, Tail...>::value;
|
|
100
|
+
};
|
|
101
|
+
template <uint32_t Head, uint32_t... Tail>
|
|
102
|
+
struct get_nth_value<0, Head, Tail...>
|
|
103
|
+
{
|
|
104
|
+
static constexpr uint32_t value = Head;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// ────────────────────────────────────────────────────────────────────────
|
|
108
|
+
// 2) recursive cross‐lane test: true if any output‐lane i pulls from the opposite half
|
|
109
|
+
template <std::size_t I,
|
|
110
|
+
std::size_t N,
|
|
111
|
+
std::size_t H,
|
|
112
|
+
uint32_t... Vs>
|
|
113
|
+
struct cross_impl
|
|
114
|
+
{
|
|
115
|
+
// does element I cross? (i.e. i<H but V>=H) or (i>=H but V<H)
|
|
116
|
+
static constexpr uint32_t Vi = get_nth_value<I, Vs...>::value;
|
|
117
|
+
static constexpr bool curr = (I < H ? (Vi >= H) : (Vi < H));
|
|
118
|
+
static constexpr bool next = cross_impl<I + 1, N, H, Vs...>::value;
|
|
119
|
+
static constexpr bool value = curr || next;
|
|
120
|
+
};
|
|
121
|
+
template <std::size_t N, std::size_t H, uint32_t... Vs>
|
|
122
|
+
struct cross_impl<N, N, H, Vs...>
|
|
123
|
+
{
|
|
124
|
+
static constexpr bool value = false;
|
|
125
|
+
};
|
|
126
|
+
template <std::size_t I, std::size_t N, typename T,
|
|
127
|
+
T... Vs>
|
|
128
|
+
XSIMD_INLINE constexpr bool no_duplicates_impl() noexcept
|
|
129
|
+
{
|
|
130
|
+
// build the bitmask of (Vs & (N-1)) across all lanes
|
|
131
|
+
return detail::bitmask_impl<0, N, T, Vs...>() == ((1u << N) - 1u);
|
|
132
|
+
}
|
|
133
|
+
template <uint32_t... Vs>
|
|
134
|
+
XSIMD_INLINE constexpr bool no_duplicates_v() noexcept
|
|
135
|
+
{
|
|
136
|
+
// forward to your existing no_duplicates_impl
|
|
137
|
+
return no_duplicates_impl<0, sizeof...(Vs), uint32_t, Vs...>();
|
|
138
|
+
}
|
|
139
|
+
template <uint32_t... Vs>
|
|
140
|
+
XSIMD_INLINE constexpr bool is_cross_lane() noexcept
|
|
141
|
+
{
|
|
142
|
+
static_assert(sizeof...(Vs) >= 1, "Need at least one lane");
|
|
143
|
+
return cross_impl<0, sizeof...(Vs), sizeof...(Vs) / 2, Vs...>::value;
|
|
144
|
+
}
|
|
145
|
+
template <typename T, T... Vs>
|
|
146
|
+
XSIMD_INLINE constexpr bool is_identity() noexcept { return detail::identity_impl<0, T, Vs...>(); }
|
|
147
|
+
template <typename T, T... Vs>
|
|
148
|
+
XSIMD_INLINE constexpr bool is_all_different() noexcept
|
|
149
|
+
{
|
|
150
|
+
return detail::bitmask_impl<0, sizeof...(Vs), T, Vs...>() == ((1u << sizeof...(Vs)) - 1);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
template <typename T, T... Vs>
|
|
154
|
+
XSIMD_INLINE constexpr bool is_dup_lo() noexcept { return detail::dup_lo_impl<0, sizeof...(Vs), T, Vs...>(); }
|
|
155
|
+
template <typename T, T... Vs>
|
|
156
|
+
XSIMD_INLINE constexpr bool is_dup_hi() noexcept { return detail::dup_hi_impl<0, sizeof...(Vs), T, Vs...>(); }
|
|
157
|
+
template <typename T, class A, T... Vs>
|
|
158
|
+
XSIMD_INLINE constexpr bool is_identity(batch_constant<T, A, Vs...>) noexcept { return is_identity<T, Vs...>(); }
|
|
159
|
+
template <typename T, class A, T... Vs>
|
|
160
|
+
XSIMD_INLINE constexpr bool is_all_different(batch_constant<T, A, Vs...>) noexcept { return is_all_different<T, Vs...>(); }
|
|
161
|
+
template <typename T, class A, T... Vs>
|
|
162
|
+
XSIMD_INLINE constexpr bool is_dup_lo(batch_constant<T, A, Vs...>) noexcept { return is_dup_lo<T, Vs...>(); }
|
|
163
|
+
template <typename T, class A, T... Vs>
|
|
164
|
+
XSIMD_INLINE constexpr bool is_dup_hi(batch_constant<T, A, Vs...>) noexcept { return is_dup_hi<T, Vs...>(); }
|
|
165
|
+
template <typename T, class A, T... Vs>
|
|
166
|
+
XSIMD_INLINE constexpr bool is_cross_lane(batch_constant<T, A, Vs...>) noexcept { return detail::is_cross_lane<Vs...>(); }
|
|
167
|
+
template <typename T, class A, T... Vs>
|
|
168
|
+
XSIMD_INLINE constexpr bool no_duplicates(batch_constant<T, A, Vs...>) noexcept { return no_duplicates_impl<0, sizeof...(Vs), T, Vs...>(); }
|
|
169
|
+
|
|
170
|
+
} // namespace detail
|
|
171
|
+
} // namespace kernel
|
|
172
|
+
} // namespace xsimd
|
|
173
|
+
|
|
174
|
+
#endif // XSIMD_COMMON_SWIZZLE_HPP
|
|
@@ -310,10 +310,13 @@ namespace xsimd
|
|
|
310
310
|
num = x2 + num * num;
|
|
311
311
|
real_batch den = y - one;
|
|
312
312
|
den = x2 + den * den;
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
return
|
|
313
|
+
#ifdef __FAST_MATH__
|
|
314
|
+
return batch_type(w, 0.25 * log(num / den));
|
|
315
|
+
#else
|
|
316
|
+
return select((x == real_batch(0.)) && (y == real_batch(1.)),
|
|
317
|
+
batch_type(real_batch(0.), constants::infinity<real_batch>()),
|
|
318
|
+
batch_type(w, 0.25 * log(num / den)));
|
|
319
|
+
#endif
|
|
317
320
|
}
|
|
318
321
|
|
|
319
322
|
// atanh
|
|
@@ -583,12 +586,14 @@ namespace xsimd
|
|
|
583
586
|
for (std::size_t i = 0; i < size; ++i)
|
|
584
587
|
{
|
|
585
588
|
double arg = args[i];
|
|
589
|
+
#ifndef __FAST_MATH__
|
|
586
590
|
if (arg == std::numeric_limits<value_type>::infinity())
|
|
587
591
|
{
|
|
588
592
|
tmp[i] = 0.;
|
|
589
593
|
txr[i] = std::numeric_limits<value_type>::quiet_NaN();
|
|
590
594
|
}
|
|
591
595
|
else
|
|
596
|
+
#endif
|
|
592
597
|
{
|
|
593
598
|
double y[2];
|
|
594
599
|
std::int32_t n = ::xsimd::detail::__ieee754_rem_pio2(arg, y);
|
|
@@ -841,11 +846,15 @@ namespace xsimd
|
|
|
841
846
|
using batch_type = batch<std::complex<T>, A>;
|
|
842
847
|
using real_batch = typename batch_type::real_batch;
|
|
843
848
|
real_batch d = cos(2 * z.real()) + cosh(2 * z.imag());
|
|
844
|
-
batch_type winf(constants::infinity<real_batch>(), constants::infinity<real_batch>());
|
|
845
849
|
real_batch wreal = sin(2 * z.real()) / d;
|
|
846
850
|
real_batch wimag = sinh(2 * z.imag());
|
|
851
|
+
#ifdef __FAST_MATH__
|
|
852
|
+
return batch_type(wreal, real_batch(1.)), batch_type(wreal, wimag / d);
|
|
853
|
+
#else
|
|
854
|
+
batch_type winf(constants::infinity<real_batch>(), constants::infinity<real_batch>());
|
|
847
855
|
batch_type wres = select(isinf(wimag), batch_type(wreal, real_batch(1.)), batch_type(wreal, wimag / d));
|
|
848
856
|
return select(d == real_batch(0.), winf, wres);
|
|
857
|
+
#endif
|
|
849
858
|
}
|
|
850
859
|
|
|
851
860
|
// tanh
|