aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/SVD/BDCSVD.h
Commit message (Collapse)AuthorAge
* Add an info() method to the SVDBase class to make it possible to tell the ↵Gravatar Rasmus Munk Larsen2021-03-31
| | | | | | user that the computation failed, possibly due to invalid input. Make Jacobi and divide-and-conquer fail fast and return info() == InvalidInput if the matrix contains NaN or +/-Inf.
* Enable bdcsvd on host.Gravatar Antonio Sanchez2021-02-08
| | | | | | | | | | | | | Currently if compiled by NVCC, the `MatrixBase::bdcSvd()` implementation is skipped, leading to a linker error. This prevents it from running on the host as well. Seems it was disabled 6 years ago (5384e891) to match `jacobiSvd`, but `jacobiSvd` is now enabled on host. Tested and runs fine on host, but will not compile/run for device (though it's not labelled as a device function, so this should be fine). Fixes #2139
* bug #1695: fix a numerical robustness issue. Computing the secular equation ↵Gravatar Gael Guennebaud2019-03-27
| | | | at the middle range without a shift might give a wrong sign.
* PR 567: makes all dense solvers inherit SoverBase (LU,Cholesky,QR,SVD).Gravatar Patrick Peltzer2019-01-17
| | | | | | | | | | | | | This changeset also includes: * add HouseholderSequence::conjugateIf * define int as the StorageIndex type for all dense solvers * dedicated unit tests, including assertion checking * _check_solve_assertion(): this method can be implemented in derived solver classes to implement custom checks * CompleteOrthogonalDecompositions: add applyZOnTheLeftInPlace, fix scalar type in applyZAdjointOnTheLeftInPlace(), add missing assertions * Cholesky: add missing assertions * FullPivHouseholderQR: Corrected Scalar type in _solve_impl() * BDCSVD: Unambiguous return type for ternary operator * SVDBase: Corrected Scalar type in _solve_impl()
* Fix several uninitialized member from ctorGravatar Gael Guennebaud2018-11-23
|
* Fix shadowingGravatar Gael Guennebaud2018-09-20
|
* updates based on PR feedbackGravatar Deven Desai2018-06-14
| | | | | | | | | | | | | | | | | There are two major changes (and a few minor ones which are not listed here...see PR discussion for details) 1. Eigen::half implementations for HIP and CUDA have been merged. This means that - `CUDA/Half.h` and `HIP/hcc/Half.h` got merged to a new file `GPU/Half.h` - `CUDA/PacketMathHalf.h` and `HIP/hcc/PacketMathHalf.h` got merged to a new file `GPU/PacketMathHalf.h` - `CUDA/TypeCasting.h` and `HIP/hcc/TypeCasting.h` got merged to a new file `GPU/TypeCasting.h` After this change the `HIP/hcc` directory only contains one file `math_constants.h`. That will go away too once that file becomes a part of the HIP install. 2. new macros EIGEN_GPUCC, EIGEN_GPU_COMPILE_PHASE and EIGEN_HAS_GPU_FP16 have been added and the code has been updated to use them where appropriate. - `EIGEN_GPUCC` is the same as `(EIGEN_CUDACC || EIGEN_HIPCC)` - `EIGEN_GPU_DEVICE_COMPILE` is the same as `(EIGEN_CUDA_ARCH || EIGEN_HIP_DEVICE_COMPILE)` - `EIGEN_HAS_GPU_FP16` is the same as `(EIGEN_HAS_CUDA_FP16 or EIGEN_HAS_HIP_FP16)`
* Adding support for using Eigen in HIP kernels.Gravatar Deven Desai2018-06-06
| | | | | | | | | This commit enables the use of Eigen on HIP kernels / AMD GPUs. Support has been added along the same lines as what already exists for using Eigen in CUDA kernels / NVidia GPUs. Application code needs to explicitly define EIGEN_USE_HIP when using Eigen in HIP kernels. This is because some of the CUDA headers get picked up by default during Eigen compile (irrespective of whether or not the underlying compiler is CUDACC/NVCC, for e.g. Eigen/src/Core/arch/CUDA/Half.h). In order to maintain this behavior, the EIGEN_USE_HIP macro is used to switch to using the HIP version of those header files (see Eigen/Core and unsupported/Eigen/CXX11/Tensor) Use the "-DEIGEN_TEST_HIP" cmake option to enable the HIP specific unit tests.
* MIsc. source and comment typosGravatar luz.paz2018-03-11
| | | | Found using `codespell` and `grep` from downstream FreeCAD
* bug #1412: fix compilation with nvcc+MSVCGravatar Gael Guennebaud2018-01-17
|
* Fix issue with boost::multiprec in previous commitGravatar Gael Guennebaud2017-11-08
|
* Improve debugging tests and output in BDCSVDGravatar Gael Guennebaud2017-11-08
|
* Fix overflow issues in BDCSVDGravatar Gael Guennebaud2017-11-08
|
* Add a EIGEN_NO_CUDA option, and introduce EIGEN_CUDACC and EIGEN_CUDA_ARCH ↵Gravatar Gael Guennebaud2017-07-17
| | | | aliases
* bug #1403: more scalar conversions fixes in BDCSVDGravatar Gael Guennebaud2017-06-09
|
* Enforce scalar types in calls to max/min (helps with expression template ↵Gravatar Gael Guennebaud2016-07-25
| | | | scalar types)
* Enable and fix -Wdouble-conversion warningsGravatar Christoph Hertzberg2016-05-05
|
* Improve documentation of BDCSVDGravatar Gael Guennebaud2016-05-04
|
* bug #1214: consider denormals as zero in D&C SVD. This also workaround ↵Gravatar Gael Guennebaud2016-05-03
| | | | infinite binary search when compiling with ICC's unsafe optimizations.
* Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation ↵Gravatar Gael Guennebaud2016-01-01
| | | | warnings
* Fix compilation of BDCSVD with DEFAULT_TO_ROWMAJORGravatar Gael Guennebaud2015-06-19
|
* Clean argument names of some functionsGravatar Gael Guennebaud2015-06-09
|
* Fix shadow warnings triggered by clangGravatar Gael Guennebaud2015-06-09
|
* Remove most of the dynamic memory allocations that occured in D&C SVD. Still ↵Gravatar Gael Guennebaud2015-03-31
| | | | remains the calls to JacobiSVD and UpperBidiagonalization.
* Fix regression introduced in 3b169d792df8bcdd9ddbc645ffcfdb0636e585afGravatar Gael Guennebaud2015-03-31
|
* Suppress unused variable warningGravatar Christoph Hertzberg2015-03-31
|
* bug #982: Make sure numext::maxi and numext::mini are called correctly, in ↵Gravatar Christoph Hertzberg2015-03-30
| | | | case Scalar expressions return expression templates.
* D&C SVD: directly falls back to JacobiSVD for very small problems (by-pass ↵Gravatar Gael Guennebaud2015-03-24
| | | | upper-bidiagonalization)
* The usage of DenseIndex is deprecated, so let's replace DenseIndex by IndexGravatar Gael Guennebaud2015-02-16
|
* Remove deprecated usage of expr::Index.Gravatar Gael Guennebaud2015-02-16
|
* Disable MatrixBase::bdcSvd with CUDA (just like MatrixBase::jacobiSvdGravatar Gael Guennebaud2014-11-26
|
* Move D&C SVD to official SVD module.Gravatar Gael Guennebaud2014-10-29