Gael Guennebaud
8e599bc098
Fix warning in unit test
2016-02-06 20:26:59 +01:00
Gael Guennebaud
5b2d287878
bug #779 : allow non aligned buffers for buffers smaller than the requested alignment.
2016-02-05 21:46:39 +01:00
Rasmus Munk Larsen
093f2b3c01
Merge.
2016-02-04 14:32:19 -08:00
Rasmus Munk Larsen
2e39cc40a4
Fix condition that made the unit test spam stdout with bogus error messages.
2016-02-04 12:56:14 -08:00
Gael Guennebaud
b70db60e4d
Merged in rmlarsen/eigen (pull request PR-161)
...
Change Eigen's ColPivHouseholderQR to use numerically stable norm downdate formula
2016-02-03 21:37:06 +01:00
Rasmus Munk Larsen
5fb04ab2da
Fix bad line break. Don't repeat Kahan matrix test since it is deterministic.
2016-02-03 10:12:10 -08:00
Damien R
c301f99208
bug #1164 : fix list and deque specializations such that our aligned allocator is automatically activatived only when the user did not specified an allocator (or specified the default std::allocator).
2016-02-03 18:07:25 +01:00
Rasmus Munk Larsen
00f9ef6c76
merging.
2016-02-01 11:10:30 -08:00
Gael Guennebaud
ec469700dc
bug #557 : make InnerIterator of sparse storage types more versatile by adding default-ctor, copy-ctor/assignment
2016-02-01 15:04:33 +01:00
Gael Guennebaud
6e0a86194c
Fix integer path for num_steps==1
2016-02-01 15:00:04 +01:00
Gael Guennebaud
e1d219e5c9
bug #698 : fix linspaced for integer types.
2016-02-01 14:25:34 +01:00
Gael Guennebaud
a4e4542b89
Avoid overflow in unit test.
2016-01-30 22:26:17 +01:00
Gael Guennebaud
3ba8a3ab1a
Disable underflow unit test on the i387 FPU.
2016-01-30 22:14:04 +01:00
Gael Guennebaud
15084cf1ac
bug #632 : add support for "dense +/- sparse" operations. The current implementation is based on SparseView to make the dense subexpression compatible with the sparse one.
2016-01-29 22:09:45 +01:00
Gael Guennebaud
d8d37349c3
bug #696 : enable zero-sized block at compile-time by relaxing the respective assertion
2016-01-29 12:44:49 +01:00
Rasmus Munk Larsen
acce4dd050
Change Eigen's ColPivHouseholderQR to use the numerically stable norm downdate formula from http://www.netlib.org/lapack/lawnspdf/lawn176.pdf , which has been used in LAPACK's xGEQPF and xGEQP3 since 2006. With the old formula, the code chooses the wrong pivots and fails to correctly determine rank on graded matrices.
...
This change also adds additional checks for non-increasing diagonal in R11 to existing unit tests, and adds a new unit test with the Kahan matrix, which consistently fails for the original code.
Benchmark timings on Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz. Code compiled with AVX & FMA. I just ran on square matrices of 3 difference sizes.
Benchmark Time(ns) CPU(ns) Iterations
-------------------------------------------------------
Before:
BM_EigencolPivQR/64 53677 53627 12890
BM_EigencolPivQR/512 15265408 15250784 46
BM_EigencolPivQR/4k 15403556228 15388788368 2
After (non-vectorized version):
Benchmark Time(ns) CPU(ns) Iterations Degradation
--------------------------------------------------------------------
BM_EigencolPivQR/64 63736 63669 10844 18.5%
BM_EigencolPivQR/512 16052546 16037381 43 5.1%
BM_EigencolPivQR/4k 15149263620 15132025316 2 -2.0%
Performance-wise there seems to be a ~18.5% degradation for small (64x64) matrices, probably due to the cost of more O(min(m,n)^2) sqrt operations that are not needed for the unstable formula.
2016-01-28 15:07:26 -08:00
Gael Guennebaud
c1d900af61
bug #178 : remove additional const on nested expression, and remove several const_cast.
2016-01-28 21:43:20 +01:00
Gael Guennebaud
ddf64babde
merge
2016-01-28 13:21:48 +01:00
Gael Guennebaud
df15fbc452
bug #1158 : PartialReduxExpr is a vector expression, and it thus must expose the LinearAccessBit flag
2016-01-28 13:16:30 +01:00
Gael Guennebaud
9ac8e8c6a1
Extend mixing type unit test with trmv, and the following not yet supported products: trmm, symv, symm
2016-01-27 17:29:53 +01:00
Gael Guennebaud
6da5d87f92
add nomalloc unit test for rank2 updates
2016-01-27 17:26:48 +01:00
Gael Guennebaud
9801c959e6
Fix tri = complex * real product, and add respective unit test.
2016-01-27 17:12:25 +01:00
Gael Guennebaud
412bb5a631
Remove redundant test.
2016-01-26 23:35:30 +01:00
Gael Guennebaud
8328caa618
bug #51 : add block preallocation mechanism to selfadjoit*matrix product.
2016-01-25 22:06:42 +01:00
Gael Guennebaud
e58827d2ed
bug #51 : make general_matrix_matrix_triangular_product use L3-blocking helper so that general symmetric rank-updates and general-matrix-to-triangular products do not trigger dynamic memory allocation for fixed size matrices.
2016-01-25 17:16:33 +01:00
Gael Guennebaud
869b4443ac
Add SparseVector::conservativeResize() method.
2016-01-25 11:55:39 +01:00
Gael Guennebaud
1cf85bd875
bug #977 : add stableNormalize[d] methods: they are analogues to normalize[d] but with carefull handling of under/over-flow
2016-01-23 22:40:11 +01:00
Gael Guennebaud
0caa4b1531
bug #1150 : make IncompleteCholesky more robust by iteratively increase the shift until the factorization succeed (with at most 10 attempts).
2016-01-23 22:13:54 +01:00
Gael Guennebaud
5358c38589
bug #1095 : add Cholmod*::logDeterminant/determinant (from patch of Joshua Pritikin)
2016-01-22 16:05:29 +01:00
Gael Guennebaud
ee37eb4eed
bug #977 : avoid division by 0 in normalize() and normalized().
2016-01-21 20:43:42 +01:00
Gael Guennebaud
62f7e77711
add upper|lower case in incomplete_cholesky unit test
2016-01-21 00:02:59 +01:00
Gael Guennebaud
ed8ade9c65
bug #1149 : fix Pastix*::*parm()
2016-01-20 19:01:24 +01:00
Gael Guennebaud
8b9dc9f0df
bug #1144 : fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing.
2016-01-09 08:30:38 +01:00
Eugene Brevdo
14897600b7
Protect digamma tests behind a EIGEN_HAS_C99_MATH check.
2015-12-24 21:28:18 -08:00
Eugene Brevdo
f7362772e3
Add digamma for CPU + CUDA. Includes tests.
2015-12-24 21:15:38 -08:00
Gael Guennebaud
ca39b1546e
Merged in ebrevdo/eigen (pull request PR-148)
...
Add special functions to eigen: lgamma, erf, erfc.
2015-12-11 11:52:09 +01:00
Gael Guennebaud
836da91b3f
Fix unit tests wrt EIGEN_DEFAULT_TO_ROW_MAJOR
2015-12-11 10:06:28 +01:00
Benoit Steiner
6acf2bd472
Fixed compilation error triggered by MSVC 2008
2015-12-10 17:17:42 -08:00
Benoit Steiner
8314962ce2
Only test the lgamma, erf and erfc function when using a C99 compliant compiler
2015-12-10 13:13:45 -08:00
Benoit Steiner
48877a6933
Only implement the lgamma, erf, and erfc functions when using a compiler compliant with the C99 specification.
2015-12-10 13:09:49 -08:00
Gael Guennebaud
46d2f6cd78
Workaround gcc issue with -O3 and the i387 FPU.
2015-12-10 21:33:43 +01:00
Benoit Steiner
b630d10b62
Only disable the erf, erfc, and lgamma tests for older versions of c++.
2015-12-07 17:08:08 -08:00
Benoit Steiner
73b68d4370
Fixed a couple of typos
...
Cleaned up the code a bit.
2015-12-07 16:38:48 -08:00
Eugene Brevdo
fa4f933c0f
Add special functions to Eigen: lgamma, erf, erfc.
...
Includes CUDA support and unit tests.
2015-12-07 15:24:49 -08:00
Benoit Steiner
e25e3a041b
Added rsqrt() method to the Array class: this method computes the coefficient-wise inverse square root much more efficiently than calling sqrt().inverse().
2015-12-03 18:16:35 -08:00
Gael Guennebaud
1562e13aba
Add missing Rotation2D::operator=(Matrix2x2)
2015-12-03 22:25:26 +01:00
Gael Guennebaud
0bb12fa614
Add LU::transpose().solve() and LU::adjoint().solve() API.
2015-12-01 14:38:47 +01:00
Rasmus Munk Larsen
1663d15da7
Add internal method _solve_impl_transposed() to LU decomposition classes that solves A^T x = b or A^* x = b.
2015-11-30 13:39:24 -08:00
Gael Guennebaud
6c02cbbb0f
Fix matrix to quaternion (and angleaxis) conversion for matrix expression.
2015-12-01 09:45:56 +01:00
Gael Guennebaud
844561939f
Do not check NeedsToAlign if no static alignment
2015-11-30 22:36:14 +01:00