Carlos Becker
bdef7eb656
Added doxygen info for .matrix() and .array()
2010-06-28 18:38:28 +01:00
Gael Guennebaud
189d4b51c2
fix unused warning when EIGEN_HAS_FUSE_CJMADD
2010-06-27 17:42:03 +02:00
Benoit Jacob
25f44266a2
fix #146
2010-06-27 08:44:21 -04:00
Gael Guennebaud
f096452dfd
Fix cache computation on old Intel CPUs which do not
...
support the cpuid function 0x4
2010-06-27 00:17:38 +02:00
Manoj Rajagopalan
464fc297cf
Included definitions for rowRange() and colRange() member functions of DenseBase
2010-06-26 17:37:17 -04:00
Martin Senst
4b474fdb34
Relax assertion to allow for matrices with cols() == 0 and/or rows() == 0.
2010-07-20 21:25:43 +02:00
Gael Guennebaud
95f2e7f3f5
introduce a new LvalueBit flag and split DenseCoeffBase into three level of accessors
2010-07-21 10:57:01 +02:00
Gael Guennebaud
cac147ba10
add support for determinant on empty matrix
2010-07-19 10:45:06 +02:00
Gael Guennebaud
ea27678153
fix compilation of ei_tridiagonalization_inplace_selector for 1x1 matrix
2010-07-18 17:10:11 +02:00
Gael Guennebaud
2d78023815
fix hemm to not use the imaginary part of the diagonal entries
2010-07-17 11:57:54 +02:00
Gael Guennebaud
4c19024fbf
re-enable writing to reversed objects
2010-07-16 22:26:07 +02:00
Gael Guennebaud
fb041c260c
fix for empty matrices
2010-07-16 22:25:35 +02:00
Gael Guennebaud
883a8cbb2c
disable the optimized 3x3 path for complexes which was not working at all
2010-07-16 18:22:00 +02:00
Gael Guennebaud
6ab9e8632f
fix bad fuzzy comparison in 3x3 tridiagonalization
2010-07-16 16:38:58 +02:00
Gael Guennebaud
044424b0e2
fix sum()/prod() on empty matrix making sure this does not affect fixed sized object, extend related unit tests including partial reduction
2010-07-16 14:02:20 +02:00
Gael Guennebaud
b08c26aefa
merge
2010-07-15 20:41:33 +02:00
Gael Guennebaud
84fdbded4d
add support for strictly triangular matrix in trmm though it is not really useful
2010-07-15 20:39:20 +02:00
Gael Guennebaud
bfbe61454e
merge
2010-07-15 09:54:31 +02:00
Gael Guennebaud
cf9edd9958
fix compilation for non trivial types
2010-07-14 23:31:38 +02:00
Gael Guennebaud
90d6fc0e28
fix ei_aligned_delete for null pointers and non trivial dtors
2010-07-14 22:49:34 +02:00
Christoph Hertzberg
6ba5d2c90c
Implemented SSE optimized double-precision Quaternion multiplication
2010-07-12 23:30:47 +02:00
Gael Guennebaud
850c6d8a2b
fix unused warning
2010-07-11 10:58:58 +02:00
Gael Guennebaud
931027f31b
add a utilility to debug cpuid, and makes sure we get 0 if we query an unsupported cpuid function
2010-06-26 23:15:06 +02:00
Gael Guennebaud
ec07c4109d
add default parameters for InnerStride/OuterStride to be
...
able to simply write OuterStride<> instead of OuterStride<Dynamic>
2010-06-25 14:48:16 +02:00
Gael Guennebaud
4056db01e7
use const Scalar& instead of Scalar for function arguments
2010-06-25 13:52:23 +02:00
Gael Guennebaud
686689e9cf
comment all disabled MSVC warnings
2010-06-25 13:31:07 +02:00
Gael Guennebaud
75b6d2b2f8
fix very annoying warning (gcc 4.3): type qualifiers ignored on function return type
2010-06-25 13:20:34 +02:00
Gael Guennebaud
01553c419e
fox blcok size computation for fixed size objects
2010-06-25 11:44:55 +02:00
Gael Guennebaud
e313826890
add mixed sparse-dense outer product
2010-06-25 11:36:38 +02:00
Gael Guennebaud
1927b4dff5
Fix use of nesting types in SparseTranspose and split the big SparseProduct.h file
2010-06-25 10:26:24 +02:00
Gael Guennebaud
28e64b0da3
email change
2010-06-24 23:21:58 +02:00
Gael Guennebaud
99e4afd43e
makes SparseView a true sparse expression and fix use of nesting types
2010-06-24 22:48:48 +02:00
Gael Guennebaud
f3b875e434
fix infinite loop
2010-06-24 22:18:09 +02:00
Gael Guennebaud
566867428c
- add a low level mechanism to provide preallocated memory to gemm
...
- ensure static allocation for the product of "large" fixed size matrix
2010-06-24 21:44:24 +02:00
Gael Guennebaud
e039edcb42
fix temporary creation rule
2010-06-24 19:21:25 +02:00
Gael Guennebaud
b22fc6cdc3
bug fix in gemv:
...
solution always use a temporary in dst.innerStride != 1
even though this is not needed when packet_size == 1....
2010-06-24 17:51:25 +02:00
Gael Guennebaud
6be06745df
block householder : minor optimization
2010-06-24 17:48:38 +02:00
Gael Guennebaud
905beb0953
fix symm
2010-06-24 16:42:43 +02:00
Gael Guennebaud
af38bccd3d
fix syrk
2010-06-24 16:26:27 +02:00
Gael Guennebaud
19f2f53e2c
fix compilation when default to row major
2010-06-24 15:13:41 +02:00
Gael Guennebaud
d44fce501b
fix computation of blocking sizes for small triangular matrices
2010-06-24 11:50:28 +02:00
Hauke Heibel
0068d3ccf6
Added version testing for MSVC.
2010-06-24 10:05:24 +02:00
Hauke Heibel
22a6cb2dc0
Fix compilation when the memory layout is RowMajor.
2010-06-24 09:56:59 +02:00
Hauke Heibel
83f1b747e7
Fixed MSVC cpuid.
2010-06-24 09:55:53 +02:00
Gael Guennebaud
0a42f8c876
fix compilation when EIGEN_CPUD is not defined
2010-06-24 09:45:17 +02:00
Gael Guennebaud
8beb60bf63
fix EIGEN_CPUID for i386 & PIC, still remains to fix the MSVC version
2010-06-24 09:29:43 +02:00
Gael Guennebaud
546587c7d3
default to Intel's API by default
2010-06-23 17:14:06 +02:00
Gael Guennebaud
e1a6bad087
fix cache queries for non core2 CPU ;)
2010-06-23 16:34:51 +02:00
Gael Guennebaud
b4fe53f561
* makes all product use the new API to set the blocking sizes
...
* fix an issue preventing multithreading (now Dynamic = -1 ...)
2010-06-22 16:08:35 +02:00
Gael Guennebaud
fd9a9fa0ae
slightly optimize computeProductBlockingSizes by explicitely precomputing what is known at compile time
2010-06-22 11:10:38 +02:00
Hauke Heibel
d132b5b061
Correct the options computation for RowMajor matrices.
2010-06-22 09:30:08 +02:00
Gael Guennebaud
98686ab86c
fix in case we don't know how to query the L1/L2 cache sizes
2010-06-21 23:44:20 +02:00
Gael Guennebaud
0212eec23f
simplify and optimize block sizes computation for matrix products. They
...
are now automatically computed from the L1 and L2 cache sizes which are
themselves automatically determined at runtime.
2010-06-21 23:28:50 +02:00
Gael Guennebaud
4cd38b333c
make bench_gemm print out the queried cache sizes
2010-06-21 12:07:05 +02:00
Gael Guennebaud
e54635da11
add functions to query the L1 and L2/L3 cache sizes
2010-06-21 11:59:37 +02:00
Hauke Heibel
dc6ad5e25b
More Index related stuff.
2010-06-21 11:36:00 +02:00
Gael Guennebaud
52165ba55a
compilation fix
2010-06-20 22:27:35 +02:00
Hauke Heibel
f34eaa2628
Next try - more Index fixes.
2010-06-20 21:44:25 +02:00
Hauke Heibel
e402d34407
More Index realted warnings.
2010-06-20 15:52:34 +02:00
Gael Guennebaud
e3853353fb
fix array_comp *= array_real
2010-06-20 00:35:33 +02:00
Gael Guennebaud
7fd8418b19
finish to merge Array into Core:
...
- mv Array/* into Core/
- merge Functors.h files, and move Norms.h into Dot.h
2010-06-19 23:36:38 +02:00
Gael Guennebaud
575ac5409c
add missing support for std::pow(array,scalar)
2010-06-19 23:17:07 +02:00
Gael Guennebaud
eba418a458
remove reference to the dead Array module
2010-06-19 23:00:22 +02:00
Gael Guennebaud
f85a1cf5df
optimize SparseMatrix iterator
2010-06-18 16:47:41 +02:00
Benoit Jacob
f0a6d56f07
fix linking errors with multiply defined functions
2010-06-18 09:01:34 -04:00
Gael Guennebaud
ece48a6450
split the Sparse module into multiple ones, and move non stable parts to unsupported/
...
(see the ML for details)
2010-06-18 11:28:30 +02:00
Gael Guennebaud
22d07ec2e3
Add blocking inside HouseholderQR based on code from Vincent Lejeune.
...
This is all internal stuff for now.
2010-06-17 18:30:47 +02:00
Gael Guennebaud
bc99c82d17
add an inplace householder QR dec function in preparation for a block version
2010-06-17 17:27:52 +02:00
Gael Guennebaud
3acd007f9d
more compilation fixes for ICC
2010-06-17 17:25:18 +02:00
Gael Guennebaud
9637574e2b
compilation fix for ICC
2010-06-17 16:56:42 +02:00
Gael Guennebaud
ab6a044d0d
eigenvalues: documentation fixes
2010-06-17 14:34:10 +02:00
Gael Guennebaud
7fdf218951
makes trmv works with the triangular matrix on the right
2010-06-17 10:17:22 +02:00
Gael Guennebaud
43086d12d2
implement other variants
2010-06-17 10:11:38 +02:00
Gael Guennebaud
db160f2e0b
warn users other variants are not implemented yet... (will do it very soon)
2010-06-16 23:55:08 +02:00
Gael Guennebaud
74006a9fe9
* decouple the generalized selfadjoint eigenvalue problem to the standard one
...
* uses named values instead of bools
2010-06-16 23:48:16 +02:00
Gael Guennebaud
197ce96c00
typo
2010-06-16 17:23:39 +02:00
Benoit Jacob
42c62c8876
fix #126 , part 2/2: the checkTransposeAliasing() assertion was always compiled, for all expressions,
...
even for expressions that are known at compile time to not need it because they don't involve any transposing.
This gave 'controlling condition is constant' warnings on ICC, and potentially worse, this could generate a lot
of useless code per-expression if the compiler failed to realize that the condition was constant.
2010-06-16 09:23:32 -04:00
Benoit Jacob
2d1ae6fa08
fix #126 , part 1/2: fix the return type of coeff() on direcaccess xprs: was amounting to
...
const (const Scalar&)
which really doesn't make sense.
2010-06-16 09:21:14 -04:00
Benoit Jacob
d0d62e4437
fix #139 , exactly the same issue as #138 , this time in Assign.h: const Index is not a compile-time constant, must use enum.
2010-06-16 07:37:52 -04:00
Benoit Jacob
404aa963d9
fix #138 : const bool is (rightly) not considered a compile-time constant by ICC, use enum.
2010-06-16 07:32:44 -04:00
Gael Guennebaud
9726824f7c
improve trmm unit test and fix several bugs in trmm
2010-06-15 23:38:21 +02:00
Gael Guennebaud
2e792d1f42
* make the triangular matrix * matrix product works with trapezoidal matrices
...
* extend the trmm unit test for unit diagonal
2010-06-15 22:00:34 +02:00
Benoit Jacob
134ca4acb3
packet math functions:
...
- take const Packet& args like the other packet funcs
- SSE specializations: make them be actual template specializations
2010-06-15 08:29:21 -04:00
Hauke Heibel
99d952466f
This scalar needs to be passed by ref to preserve its alignment.
2010-06-15 10:26:12 +02:00
Hauke Heibel
0afb1e80c7
Really fix #123 .
2010-06-14 23:02:49 +02:00
Gael Guennebaud
3cabd0c417
fix issue 135 (SparseBlock::operator= for SparseMatrix)
2010-06-14 16:26:33 +02:00
Benoit Jacob
2d65f5d3cd
remove extra semicolon;
2010-06-14 09:06:27 -04:00
Benoit Jacob
d788627b54
rename:
...
EIGEN_SIZE_MIN ---> EIGEN_SIZE_MIN_PREFER_DYNAMIC
EIGEN_MAXSIZE_MIN ---> EIGEN_SIZE_MIN_PREFER_FIXED
and make sure to use the latter in products xprs to determine the inner size.
2010-06-14 09:05:08 -04:00
Hauke Heibel
a54772250f
Fixes bug #123 .
2010-06-14 14:33:10 +02:00
Daniel Lowengrub
8673f68fd8
merged
2010-06-14 14:17:19 +03:00
Jitse Niesen
c2f6cbab8d
Fix compilation of docs after changes in Eigenvalues module.
...
Clean-up after revision 469382407c
.
2010-06-14 10:16:01 +01:00
Daniel Lowengrub
af5117dbd5
fixed a bug in the DenseBase InnerIterator ctor.
2010-06-14 02:18:36 +03:00
Daniel Lowengrub
dcd39a96e1
added the SparseView class.
2010-06-14 02:16:46 +03:00
Gael Guennebaud
f159613210
compilation fix
2010-06-13 22:53:53 +02:00
Hauke Heibel
058f7d3486
Fixed another enum related warning.
2010-06-12 15:21:11 +02:00
Hauke Heibel
340ac9ea9d
Fixed warnings regarding enums.
2010-06-12 13:24:02 +02:00
Gael Guennebaud
03331552a9
add a info() function in LLT to report on succes/faillure
2010-06-12 10:12:22 +02:00
Gael Guennebaud
a25749ade9
add missing overload of operator= in SparseVector
2010-06-12 01:01:12 +02:00
Benoit Jacob
f5b1b6b351
undo 314bfa1375
...
, the right fix was made as part of the Dynamic -> -1 change, the bug was that in Map, the InnerStrideAtCompileTime could be 0, which doesn't make sense. The 0 value in Stride should not have been forwarded as-is.
2010-06-11 08:38:30 -04:00
Benoit Jacob
d72d538747
merge my Dynamic -> -1 change
2010-06-11 08:04:06 -04:00
Benoit Jacob
bdd7c6c88a
change the value of Dynamic to -1, since the index type is now configurable.
...
remove EIGEN_ENUM_MIN/MAX, implement new macros instead
2010-06-11 07:56:50 -04:00
Gael Guennebaud
5b192930b6
add runtime API to control multithreading
2010-06-10 23:30:15 +02:00
Gael Guennebaud
842b54fe80
make the cache size mechanism future proof by adding level 2 parameters
2010-06-10 22:11:31 +02:00
Gael Guennebaud
986f65c402
merge
2010-06-10 16:44:24 +02:00
Gael Guennebaud
469382407c
* Make HouseholderSequence::evalTo works in place
...
* Clean a bit the Triadiagonalization making sure it the inplace
function really works inplace ;), and that only the lower
triangular part of the matrix is referenced.
* Remove the Tridiagonalization member object of SelfAdjointEigenSolver
exploiting the in place capability of HouseholdeSequence.
* Update unit test to check SelfAdjointEigenSolver only consider
the lower triangular part.
2010-06-10 16:39:46 +02:00
Gael Guennebaud
dad19c4173
compilation fix for gcc 4.2
2010-06-10 10:55:49 +02:00
Gael Guennebaud
f8683c409f
generalized eigendecomposition doc
2010-06-10 09:44:52 +02:00
Gael Guennebaud
41e5625f96
clean general symm eigensolver
2010-06-10 09:34:49 +02:00
Hauke Heibel
3f388282ae
Fixes geo_transformations_3 unit test.
2010-06-10 00:23:11 +02:00
Gael Guennebaud
8692ccc5fb
Fix generalized symm eigensolver (I don't know why the eigenvectors were normalized)
2010-06-10 00:04:33 +02:00
Hauke Heibel
bcf738811e
Added missing return statement.
2010-06-10 00:02:10 +02:00
Hauke Heibel
56e585efcc
Fixed language issue.
2010-06-09 17:20:31 +02:00
Hauke Heibel
2b7b549e9e
Fix #131 .
2010-06-09 17:16:05 +02:00
Gael Guennebaud
e242ac9345
fix LDLT, now it really only uses a given triangular part!
2010-06-09 14:01:06 +02:00
Gael Guennebaud
50e43bc75a
* add Transpositions to PermutationMatrix conversion
...
* make PartialPivLu uses the Transpositions class
2010-06-08 22:23:11 +02:00
Trevor Irons
684656d41c
added inline to setL1Cache functions to avoid shared object compile error
2010-06-08 10:56:50 -06:00
Hauke Heibel
fb3fcd0919
Disabled warning caused by declspec(align()).
2010-06-08 20:21:55 +02:00
Hauke Heibel
4c5778d29d
Made the supression of unused variables portable.
...
EIGEN_UNUSED is not supported on non GCC systems.
2010-06-08 15:52:00 +02:00
Gael Guennebaud
f3a568c81d
remove ei_ prefix of public global functions, and s/cpu/l1
2010-06-07 19:05:30 +02:00
Gael Guennebaud
727376b5f4
compilation fix (std::sqrt(int) does not exist)
2010-06-07 18:55:39 +02:00
Gael Guennebaud
88cd6885be
Add a proof concept API to configure the blocking parameters at runtime.
...
After validation of the final API I'll update the other products to use it.
2010-06-07 16:35:25 +02:00
Gael Guennebaud
7726cc8a29
clean old stuff used to support precompilation inside a binary lib
2010-06-07 14:47:20 +02:00
Gael Guennebaud
bfeba41174
Add a Transpositions class to ease the representation and
...
manipulation of permutations as a sequence of transpositions.
Make LDLT use it.
2010-06-04 23:17:57 +02:00
Jitse Niesen
9178e2bd54
Add info() method which can be queried to check whether iteration converged.
2010-06-03 22:59:57 +01:00
Jitse Niesen
ed73a195e0
Refactor compute() by splitting off two smaller private methods.
2010-06-03 22:29:11 +01:00
Gael Guennebaud
e64460d5d0
LDLT: make it honors the Lower/Upper directive and make it works inplace
2010-06-03 22:22:14 +02:00
Gael Guennebaud
4159db979d
make LDLT uses only the lower triangular part
2010-06-03 21:33:47 +02:00
Gael Guennebaud
d92de9574a
fix sparse LDLT with complexes
2010-06-03 11:56:08 +02:00
Gael Guennebaud
8350ab9fb8
* remove ei_index, and let ei_traits propagate the index types
...
* add an Index type template parapeter to sparse objects
2010-06-03 08:41:11 +02:00
Hauke Heibel
e40852d282
Fixes #104 .
2010-06-02 19:17:41 +02:00
Jitse Niesen
38d8352b7b
Add field m_maxIterations; break loop when this limit is exceeded.
2010-06-02 17:31:02 +01:00
Gael Guennebaud
9ff0d67156
fix typos (oops)
2010-06-02 17:56:35 +02:00
Gael Guennebaud
8710bd23e7
clean the ambiguity with insertBack and add a insertBackByOuterInner function
2010-06-02 13:32:13 +02:00
Gael Guennebaud
143e6ab9d0
improve aliasing detection for inverse and add unit test
2010-06-02 10:12:13 +02:00
Gael Guennebaud
4ebb80490a
implicit conversion to scalar for inner product
2010-06-02 09:45:57 +02:00
Gael Guennebaud
314bfa1375
fix issue #128 : inner stride can also be 0 in which case it means 1...
2010-06-01 22:51:47 +02:00
Jitse Niesen
ab2b33e802
Add cast to aliasing check.
...
Otherwise, one of the geo tests fails to compile. Now there are some compiler
warnings about aliasing and type-punned pointers that I don't understand.
2010-06-01 17:45:58 +01:00
Jitse Niesen
e3e2380548
Make all compute() methods return a reference to *this.
2010-06-01 17:40:51 +01:00
Trevor Irons
4c6d182c42
Addressess small compile error with OpenMP
2010-06-01 07:09:40 -06:00
Benoit Jacob
e54faba198
merge the backing-out of the stupid RetByVal change, and implement a simple
...
aliasing check in inverse, that catches simple cases like x = x.inverse()
2010-06-01 09:17:50 -04:00
Benoit Jacob
3e95609cd4
Backed out changeset 641d968a9a
2010-06-01 09:01:39 -04:00
Benoit Jacob
6ce22a61b3
oops, remove extra 'typename'
2010-05-30 16:41:16 -04:00
Benoit Jacob
aaaade4b3d
the Index types change.
...
As discussed on the list (too long to explain here).
2010-05-30 16:00:58 -04:00
Benoit Jacob
641d968a9a
* Make ReturnByValue have the EvalBeforeAssigningBit and explicitly
...
enforce this mechanism (otherwise ReturnByValue bypasses it).
(use .noalias() to get the old behavior.)
* Remove a hack in Inverse, futile optimization for 2x2 expressions.
2010-05-30 13:43:08 -04:00
Anton Gladky
09a1b7f7e1
Fixes the problem, described here:
...
http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2010/05/msg00154.html
2010-05-28 10:18:37 +02:00
Gael Guennebaud
39c568445c
simplify a using statement
2010-06-01 13:59:21 +02:00
Gael Guennebaud
e2097c55f8
fix issue #125 - *norm() return RealScalar and not Scalar
2010-05-31 22:46:18 +02:00
Jitse Niesen
8dc947821b
Allow user to compute only the eigenvalues and not the eigenvectors.
2010-05-31 18:17:47 +01:00
Jitse Niesen
609941380a
Change skipU argument to computeU - this reverses the meaning.
...
See "skipXxx / computeXxx parameters in Eigenvalues module" on mailing list.
2010-05-31 16:48:41 +01:00
Jitse Niesen
c21390a611
Define non-const operator() in Reverse; enable test for this.
...
Introduction of DenseCoeffBase (revision bfdc1c4973
) meant that non-const
operator() is only defined if DirectAccess is set. This caused the line
"m.reverse()(1,0) = 4;" in MatrixBase_reverse.cpp to fail at compile-time.
Not sure this is correct solution; perhaps we should disallow this? Or make
Reverse DirectAccess with a negative stride - would that break something?
2010-05-31 14:42:04 +01:00
Jitse Niesen
db8631b66a
Guard with assert against using decomposition objects uninitialized.
2010-05-30 21:49:35 +01:00
Jens Mueller
48b8ace517
Fix SparseMatrix/SparseVector::sum()
...
SparseMatrix/SparseVector::sum() uses Map to compute the sum. But Map expects a
pointer.
2010-05-27 17:02:24 +02:00
Manoj Rajagopalan
a240f83216
Fix to ProductBase::evalTo() in order to get matrix multiplication working for numeric
...
types that don't have implicit conversion from int
2010-05-26 13:00:55 -04:00
Thomas Capricelli
4a2d6ece2e
fix readcost for complex types
2010-05-26 02:33:28 +02:00
Jitse Niesen
e7dc772554
Respect MaxRowsAtCompileTime in HouseholderSequence::evalTo().
...
This fixes the failing test nomalloc_4.
Also remove a print inserted for debugging in schur_real test.
2010-05-25 12:40:42 +01:00
Jitse Niesen
e7d809d434
Update eigenvalues() and operatorNorm() methods in MatrixBase.
...
* use SelfAdjointView instead of Eigen2's SelfAdjoint flag.
* add tests and documentation.
* allow eigenvalues() for non-selfadjoint matrices.
* they no longer depend only on SelfAdjointEigenSolver, so move them to
a separate file
2010-05-24 17:43:50 +01:00
Jitse Niesen
8a3f552e39
Return matrices by constant reference where possible.
...
This changes the return type of:
* eigenvectors() and eigenvalues() in ComplexEigenSolver
* eigenvalues() in EigenSolver
* eigenvectors() and eigenvalues() in SelfAdjointEigenSolver
2010-05-24 17:43:27 +01:00
Jitse Niesen
7a43a4408b
Replace local variables by member variables in compute() methods.
...
This is to avoid dynamic memory allocations in the compute() methods of
ComplexEigenSolver, EigenSolver, and SelfAdjointEigenSolver where possible.
As a result, Tridiagonalization::decomposeInPlace() is no longer used.
Biggest remaining issue is the allocation in HouseholderSequence::evalTo().
2010-05-24 17:43:06 +01:00
Jitse Niesen
68820fd4e8
Use ReturnByValue mechanism for HessenbergDecomposition::matrixH().
2010-05-24 17:36:13 +01:00
Jitse Niesen
eb3ca68684
Change return type of matrixH() method to HouseholderSequence.
...
This method is a member of Tridiagonalization and HessenbergDecomposition.
2010-05-24 17:35:54 +01:00
Thomas Capricelli
76dd0e5314
fix some warnings
2010-05-22 19:17:04 +02:00
Thomas Capricelli
79e9e3f24c
erm.. use EIGEN_ONLY_USED_FOR_DEBUG() as it already exists.
2010-05-21 18:13:59 +02:00
Thomas Capricelli
aadea5ae56
fix a warning
2010-05-21 02:13:16 +02:00
Thomas Capricelli
c1d005e976
introduce a new macro EIGEN_ARG_UNUSED(arg) and use it in some places to
...
silent some warnings (from clang)
2010-05-21 02:05:25 +02:00
Thomas Capricelli
4daba0750e
fix some warnings with clang
2010-05-21 01:46:17 +02:00
Thomas Capricelli
2ab446695b
fix some compilation issues with clang (and hopefully bring eigen more
...
close to std ?)
2010-05-21 01:39:33 +02:00
Thomas Capricelli
17d080edf2
clang shocks on this.
...
According to people on #llvm, this is indeed not allowed by c++ standard:
[01:33] <coppro> what good would mutable do on a reference?
[01:33] <dgregor> orzel: gcc is wrong to allow "mutable" on references
[01:33] <coppro> just remove mutable; it won't damage the code at all
[01:34] <dgregor> "The mutable specifier can be applied only to names of
class data members (9.2) and cannot be applied to
[01:34] <dgregor> names declared const or static, and cannot be applied to
reference members."
[01:34] <coppro> constness is not passed from an object to the referents of
its members anyways
2010-05-21 01:37:48 +02:00
Thomas Capricelli
b9bcd93ddc
fix a compilation pb with clang (it's actually surprising gcc did not complain)
2010-05-20 03:53:09 +02:00
Hauke Heibel
39edf8e2bf
I was not really aware of the implications on fixed size types when the strong inlining is not present. We really need it on MSVC!
2010-05-19 18:57:38 +02:00
Gael Guennebaud
05910b7996
merge
2010-05-19 16:51:07 +02:00
Gael Guennebaud
188171b991
merge
2010-05-19 16:49:56 +02:00
Gael Guennebaud
64cbd45266
minor chnages in Taucs and Cholmod backends
2010-05-19 16:49:05 +02:00
Hauke Heibel
6c18246a80
DenseBase is implemented as a class, not a struct.
2010-05-19 16:44:28 +02:00
Gael Guennebaud
2b6153d3ed
simplify inner product
2010-05-19 16:37:17 +02:00
Gael Guennebaud
bf09fe55ed
fix selfadjoint to dense
2010-05-19 16:35:34 +02:00
Hauke Heibel
f0283c13e8
Applied tiny Qt related fixes.
2010-05-19 16:32:47 +02:00
Benoit Jacob
1c04484a01
bug fix, since the last storage order changes, this InnerSize calculation was wrong
2010-05-18 08:24:06 -04:00
Benoit Jacob
5250c4395c
compilation fix: const T ---> typename ei_makeconst<T>::type
...
(error was appearing when building tests with alignmnet disabled)
What is this stuff still doing in MatrixBase.h? Shouldn't it move to DenseBase.h? How are Array blocks compiling?
2010-05-18 08:19:23 -04:00
Gael Guennebaud
cf6d3162cc
cache outer size in Block => x1.5 speed up for a.block() = b.block()
2010-05-17 16:54:17 +02:00
Gael Guennebaud
0f3bcf853f
fix mixing types in inner product
2010-05-14 08:55:56 +02:00
Gael Guennebaud
42a1c983c1
fix bug in sliced redux
2010-05-13 23:22:18 +02:00
Gael Guennebaud
c55761e015
make inner product return a 1x1 matrix
2010-05-12 18:11:05 +02:00
Benoit Jacob
82d898083f
fix compilation error thanks to test case by Trevor Irons, and expand unit test
2010-05-09 13:20:46 -04:00
Benoit Jacob
6624b93d67
add important comment and move stride helpers to DenseCoeffsBase.h
2010-05-09 09:41:54 -04:00
Benoit Jacob
0928c40f68
rename Coeffs.h -> DenseCoeffsBase.h
2010-05-08 16:02:13 -04:00
Benoit Jacob
7cbb84b046
move the strides API to DenseCoeffsBase,
...
and various fixes to make stuff compile after my big changes
2010-05-08 16:00:05 -04:00
Benoit Jacob
0e2a480466
use CoeffReturnType
2010-05-08 15:58:27 -04:00
Benoit Jacob
eda2795f51
use modern ei_first_aligned function, dont try compiling coeffRef() on rvalue expressions.
2010-05-08 15:57:56 -04:00
Benoit Jacob
65bd1652b1
let Diagonal have the DirectAccessBit, using an inner stride
2010-05-08 14:19:04 -04:00
Benoit Jacob
bfdc1c4973
introduce DenseCoeffsBase: this is where the coeff / coeffRef / etc... methods go.
...
Rationale: coeffRef() methods should only exist when we have DirectAccess. So a natural thing to do would have been to use enable_if, but since there are many methods it made more sense to do the "enable_if" for the whole group by introducing a new class. And that also that the benefit of not changing method prototypes.
2010-05-08 13:45:31 -04:00
Benoit Jacob
d03779f75f
fix CwiseUnaryView: it shouldn't have the AlignedBit, but it should have the DirectAccessBit and corresponding strides API.
2010-05-08 13:42:41 -04:00
Jitse Niesen
2d74f1ac92
Document SelfAdjointEigenSolver and add examples.
2010-05-04 17:11:32 +01:00
Hauke Heibel
6ea6276f20
Quiet MSVC.
2010-05-04 14:06:41 +02:00
Jitse Niesen
38021b08c1
Merge.
2010-05-02 21:51:27 +01:00
Jitse Niesen
afed0ef90d
Document Tridiagonalization class, remove unused types.
2010-05-01 17:52:16 +01:00
Benoit Jacob
8f249e8b54
fix compilation: const (T&) != const T& , use ei_makeconst
2010-04-30 14:28:35 -04:00
Benoit Jacob
cf4f90ccea
fix #116 and remove debug cout's
2010-04-30 11:58:17 -04:00
Benoit Jacob
38facbd55b
kill the LeastSquares module.
...
I didn't even put it in Eigen2Support because it requires several other modules. But if you want we can always create a new module, Eigen2Support_LeastSquares...
2010-04-29 10:40:52 -04:00
Benoit Jacob
5d63d2cc4b
* kill the retval typedefs, instead introduce ei_xxx_retval which does the job automatically in 99% cases and can be specialized
...
* add real/imag/abs2 global functions for Array
* document ei_global_math_functions_filtering_base
* improve unit tests
2010-04-28 22:42:34 -04:00
Benoit Jacob
e277586958
Complete rework of global math functions and NumTraits.
...
* Now completely generic so all standard integer types (like char...) are supported.
** add unit test for that (integer_types).
* NumTraits does no longer inherit numeric_limits
* All math functions are now templated
* Better guard (static asserts) against using certain math functions on integer types.
2010-04-28 18:51:38 -04:00
Jitse Niesen
d9c1224133
Simplify computation of eigenvectors in EigenSolver.
...
* reduce scope of declarations
* use that low = 0 and high = size-1
* rename some variables
* rename hqr2_step2() to computeEigenvectors()
* exploit that ei_isMuchSmallerThan takes absolute value of arguments
2010-04-26 17:43:16 +01:00
Jitse Niesen
024995dbca
Use topRows() and rightCols() in ComplexSchur and RealSchur.
2010-04-26 16:59:18 +01:00
Hauke Heibel
bf71b466e9
Removed ambiguity between Map and Matrix Options template parameter.
2010-04-26 16:59:04 +02:00
Hauke Heibel
18c70b12d7
Fixed a warning.
2010-04-26 13:31:16 +02:00
Benoit Jacob
ce09b4ddfc
compile
2010-04-25 17:10:28 -04:00
Konstantinos Margaritis
9337f371d2
(proper commit this time)
...
replaced _mm_prefetch in GeneralBlockPanelKernel.h, with ei_prefetch() inline function.
Implemented NEON and AltiVec versions, copied SSE version over from GeneralBlockPanelKernel.h.
Also in GCC case (or rather !_MSC_VER) it's implemented using __builtin_prefetch().
NEON managed to give a small but welcome boost, 0.88GFLOPS -> 0.91GFLOPS.
2010-04-24 00:58:44 +03:00
Konstantinos Margaritis
5acf46bd12
Backed out changeset 6972c140f7
2010-04-24 00:57:10 +03:00
oem
6972c140f7
replaced _mm_prefetch in GeneralBlockPanelKernel.h, with ei_prefetch() inline function.
...
Implemented NEON and AltiVec versions, copied SSE version over from GeneralBlockPanelKernel.h.
Also in GCC case (or rather !_MSC_VER) it's implemented using __builtin_prefetch().
NEON managed to give a small but welcome boost, 0.88GFLOPS -> 0.91GFLOPS.
2010-04-24 00:44:14 +03:00
Benoit Jacob
e3e34b5920
remove MakeBase, use ei_dense_xpr_base instead
...
(yes, it was only used in dense xprs anyway)
2010-04-23 12:16:30 -04:00
Benoit Jacob
a16ba80bfa
* remove ei_block_direct_access_status
...
* remove HasDirectAccess / NoDirectAccess constants
2010-04-23 11:36:22 -04:00
Benoit Jacob
58e7297859
* remove class DenseDirectAccessBase
...
* remove member XprBase typedefs, use ei_dense_xpr_base
* remove member _HasDirectAccess typedefs, use ei_has_direct_access
2010-04-23 10:27:15 -04:00
Benoit Jacob
1dd27ce280
merge
2010-04-23 09:06:28 -04:00
Benoit Jacob
f22ade8ee4
restrict operator[] to vectors, not matrices.
2010-04-23 09:05:46 -04:00
Benoit Jacob
a4f9ca44ab
add minor to Eigen2Support
2010-04-22 20:49:01 -04:00
Benoit Jacob
2362eadcdd
remove Minor
...
adapt 3x3 and 4x4 (non-SSE) inverse paths
2010-04-22 20:40:31 -04:00
Benoit Jacob
abbe260905
remove USING_PART_OF_NAMESPACE_EIGEN, leaving it in Eigen2Support.
...
improve porting-Eigen2-to-3 docs
2010-04-22 18:27:13 -04:00
Benoit Jacob
ef789fe0d2
forgot to hg add...
2010-04-22 14:32:28 -04:00
Benoit Jacob
bc22f4da9d
* fix Eigen2Support, was not including VectorBlock.h
...
* move the corners support stuff to a new Block.h there
* expand the unit test
2010-04-22 14:31:39 -04:00
Benoit Jacob
00c716d20e
merge
2010-04-22 14:11:44 -04:00
Benoit Jacob
9962c59b56
* implement the corner() API change: new methods topLeftCorner() etc
...
* get rid of BlockReturnType: it was not needed, and code was not always using it consistently anyway
* add topRows(), leftCols(), bottomRows(), rightCols()
* add corners unit-test covering all of that
* adapt docs, expand "porting from eigen 2 to 3"
* adapt Eigen2Support
2010-04-22 14:11:18 -04:00
Hauke Heibel
27a4a748cb
MSVC runs into problems when a forward declaration is using a different template type name than the actual declaration.
...
This fixes the recent issues we observed on MSVC systems.
2010-04-22 13:56:06 +02:00
Adolfo Rodriguez Tsouroukdissian
28dde19e40
- Added problem size constructor to decompositions that did not have one. It preallocates member data structures.
...
- Updated unit tests to check above constructor.
- In the compute() method of decompositions: Made temporary matrices/vectors class members to avoid heap allocations during compute() (when dynamic matrices are used, of course).
These changes can speed up decomposition computation time when a solver instance is used to solve multiple same-sized problems. An added benefit is that the compute() method can now be invoked in contexts were heap allocations are forbidden, such as in real-time control loops.
CAVEAT: Not all of the decompositions in the Eigenvalues module have a heap-allocation-free compute() method. A future patch may address this issue, but some required API changes need to be incorporated first.
2010-04-21 17:15:57 +02:00
Benoit Jacob
faf8f7732d
merge
2010-04-21 12:31:04 -04:00
Benoit Jacob
e33953b888
fix compilation in Sparse (error introduced yesterday)
2010-04-21 12:28:51 -04:00
Hauke Heibel
2db5387488
Fixed two bad errors on std::vector.
...
First, MSVC 2010 does not ship a 'fixed'/'adapted' STL.
Second, only under very rare cases we do not even need the aligned_allocator.
2010-04-21 18:21:46 +02:00
Benoit Jacob
4ba032c9ab
fix grave bug introduced by me: the low-level matrix-vector product functions can't be fed strided vectors, only strided matrices.
2010-04-20 15:59:17 -04:00
Benoit Jacob
941a7e4ebd
oos, remove eval() used for debugging
2010-04-19 13:31:29 -04:00
Benoit Jacob
40b2aaa8b1
merge
2010-04-18 22:15:20 -04:00
Benoit Jacob
504a31f643
renaming (MatrixType ---> whatever appropriate)
...
and documentation improvements
2010-04-18 22:14:55 -04:00
Thomas Capricelli
29a3aec483
erf() is really non standard, better dont pollute eigen with it.
2010-04-19 02:06:11 +02:00
Hauke Heibel
214d5a892d
Added support for STL lists with aligned Eigen types.
2010-04-18 20:10:43 +02:00
Hauke Heibel
031932b4ec
Disabled erf also for Cygwin where it is not supported and causes errors.
2010-04-18 20:08:56 +02:00
Hauke Heibel
7db0f242ef
Disabled unsupported erf on MSVC machines.
2010-04-18 14:37:44 +02:00
Thomas Capricelli
f1deab0e5a
introduce ei_erf() for various scalar type
2010-04-18 03:39:22 +02:00
Benoit Jacob
ba5b5f6a4b
fix compilation
2010-04-17 11:29:25 -04:00
Hauke Heibel
cc33a56140
Added MSVC stack allocation support.
2010-04-17 16:08:17 +02:00
Benoit Jacob
797f63044a
oops, forgot to add DenseDirectAccessBase
2010-04-16 14:46:55 -04:00
Benoit Jacob
d9ee28851e
fix ei_blas_traits directaccess check: in the case of vectors, having a nontrivial inner stride is OK.
2010-04-16 14:12:53 -04:00
Benoit Jacob
0ab431d7b8
* merge with mainline
...
* adapt Eigenvalues module to the new rule that the RowMajorBit must have the proper value for vectors
* Fix RowMajorBit in ei_traits<ProductBase>
* Fix vectorizability logic in CoeffBasedProduct
2010-04-16 11:25:50 -04:00
Benoit Jacob
ff6a46105d
* Refactoring of the class hierarchy: introduction of DenseDirectAccessBase, removal of extra _Base/_Options template parameters.
...
* Introduction of strides-at-compile-time so for example the optimized code really knows when it needs to evaluate to a temporary
* StorageKind / XprKind
* Quaternion::setFromTwoVectors: use JacobiSVD instead of SVD
* ComplexSchur: support the 1x1 case
2010-04-16 10:13:32 -04:00
Gael Guennebaud
ea1a2df370
taucs: make SupernodalMultifrontal the default mode
2010-04-15 12:42:17 +02:00
Gael Guennebaud
0b6b316f18
an attempt to fix compilation with MSVC
2010-04-15 12:36:28 +02:00
Gael Guennebaud
a2324d6265
fix sparse squared norm
2010-04-13 10:40:55 +02:00
Jitse Niesen
614fbe497d
Merge.
2010-04-12 18:55:27 +01:00
Jitse Niesen
574ad9efbd
Move computation of eigenvalues from RealSchur to EigenSolver.
2010-04-12 18:54:15 +01:00
Jitse Niesen
73d3a27667
RealSchur: Make sure zeros are really zero (cont'd); add default ctor, docs.
2010-04-12 18:14:32 +01:00
Gael Guennebaud
0b0366a53d
cholmod: assume selfadjoint matrix by default since selfadjoint flag has been removed
2010-04-09 13:37:05 +02:00
Jitse Niesen
872df22ca4
RealSchur: Make sure zeros are really zero; simplify initFrancisQRStep().
2010-04-09 11:23:17 +01:00
Jitse Niesen
7dea3a33a5
RealSchur: change parameter lists; minor rewrite of computeShift().
2010-04-07 17:29:12 +01:00
Jitse Niesen
b6829e1d5b
RealSchur: use makeHouseholder() to construct the transformation.
2010-04-07 10:27:27 +01:00