Kenneth Riddile
b038a4bb71
* added EIGEN_ALIGNED_ALLOCATOR macro to allow specifying a different aligned allocator
...
* attempted to add support for std::deque by copying and modifying the std::vector implementation...MSVC still fails to compile with the std::deque::resize() "will not be aligned" error...probably missing something simple but I'm not sure how to make it work
2010-07-26 19:06:47 -04:00
Jitse Niesen
1420f8b3a1
Several changes in comments to keep Doxygen happy.
2010-07-25 20:29:07 +01:00
Jitse Niesen
425444428c
Add examples for API documentation of block methods in DenseBase.
2010-07-23 22:20:00 +01:00
User Martin Senst
145830e067
Add newline at the end of Dense.
2010-07-23 19:00:02 +02:00
Gael Guennebaud
40f6e26a24
allow vectorization of mat44.col() by adding a InnerPanel boolean
...
template parameter to Block
2010-07-23 16:29:29 +02:00
Gael Guennebaud
9daa66f262
fix merge conflicts
2010-07-22 17:23:11 +02:00
Gael Guennebaud
7020f30da3
sync with default branch
2010-07-22 16:29:35 +02:00
Gael Guennebaud
b9edd6fb85
oops
2010-07-22 16:24:01 +02:00
Gael Guennebaud
96ba7cd655
add an OpenGL module simplifying the way you can pass Eigen's objects to GL
2010-07-22 16:08:58 +02:00
Gael Guennebaud
fa6d36e0f7
fix SparseView: clean the nested matrix type
2010-07-22 15:57:01 +02:00
Hauke Heibel
734469e43f
Unified LinSpaced in order to be conform with other setter methods as e.g. Constant.
2010-07-22 14:04:00 +02:00
Gael Guennebaud
c7f40e522e
merge
2010-07-22 13:21:06 +02:00
Gael Guennebaud
bec3f9bfe4
rename indices to a common scheme
2010-07-22 13:17:39 +02:00
Gael Guennebaud
0916d69ca5
fix inner vectorization logic
2010-07-22 13:17:12 +02:00
Gael Guennebaud
0dfc5b296b
fix strict aliasing issue
2010-07-22 13:16:53 +02:00
Gael Guennebaud
35f0bc70d8
fix a strict aliasing issue with gcc 4.3
2010-07-20 22:43:55 +02:00
Gael Guennebaud
7dbbc6ffd1
fix static allocation of workspace
2010-07-20 17:06:14 +02:00
Gael Guennebaud
ced1a45f82
add NEON ploaddup and pcplxflip functions
2010-07-20 14:24:01 +02:00
Gael Guennebaud
193eedbfe2
one more fix for openmp
2010-07-20 14:19:00 +02:00
Gael Guennebaud
d7fa09bf05
improve block-size heuristic
2010-07-20 13:23:50 +02:00
Gael Guennebaud
4824ac1363
fix openmp version
2010-07-20 13:23:19 +02:00
Gael Guennebaud
b551a2d77a
fix declaration of pack_lhs in trsm
2010-07-20 12:58:22 +02:00
Gael Guennebaud
10a7668035
uncomment commented code for debug
2010-07-20 12:57:46 +02:00
Gael Guennebaud
872523844a
fix trmm and symm wrt lhs packing
2010-07-20 10:06:41 +02:00
Gael Guennebaud
76eb9c9fd9
fix compilation by including file in correct order
2010-07-19 23:32:13 +02:00
Gael Guennebaud
70b1ce11c6
* fix SelfCwiseBinaryOp traits and handling of mixed types
...
* improve compilation error in case of type mismatch
2010-07-19 23:31:08 +02:00
Gael Guennebaud
8b0b121c9e
explicitely disable vectorization for mixed coeff based products
2010-07-19 23:28:57 +02:00
Gael Guennebaud
08c841eb87
fix lhs packing in the case of real * complex products
2010-07-19 23:16:03 +02:00
Gael Guennebaud
1ed4233fd2
port Jacobi to new ei_pset1/ei_pload API
2010-07-19 16:51:38 +02:00
Gael Guennebaud
c2ee454df4
* fix compilation of mixed scalar product
...
* optimize mixed scalar products
2010-07-19 16:49:09 +02:00
Gael Guennebaud
6e157dd7c6
* fix a couple of remaining issues with previous commit,
...
* merge ei_product_blocking_traits into ei_gepb_traits
2010-07-19 15:45:13 +02:00
Gael Guennebaud
f8aae7a908
* _mm_loaddup_pd is slow
...
* optimize SSE ei_ploaddup<Packet4f>
2010-07-19 15:43:27 +02:00
Gael Guennebaud
cd0e5dca9b
wip: extend the gebp kernel to optimize complex and mixed products
2010-07-19 08:50:59 +02:00
Gael Guennebaud
1dc9aaaf36
add support for mixing type in trsv
2010-07-13 16:03:49 +02:00
Gael Guennebaud
36d9b51a44
optimize non fused MADD, and add a flatten attribute macro to enforce
...
inlining within a function
2010-07-13 15:16:34 +02:00
Gael Guennebaud
b72b7ab76f
matrix product: move the alpha factor to gebp instead of the packing,
...
clean some temporaries, etc.
2010-07-12 16:31:46 +02:00
Gael Guennebaud
f8678272a4
mixing types step 3:
...
- improve support of colmajor by vector and matrix - matrix
- now all configurations are well handled, but the perf are not always very good
2010-07-11 23:57:23 +02:00
Gael Guennebaud
8e3c4283f5
make colmaj * vector uses pointers only
2010-07-11 16:01:48 +02:00
Gael Guennebaud
ff96c94043
mixing types in product step 2:
...
* pload* and pset1 are now templated on the packet type
* gemv routines are now embeded into a structure with
a consistent API with respect to gemm
* some configurations of vector * matrix and matrix * matrix works fine,
some need more work...
2010-07-11 15:48:30 +02:00
Gael Guennebaud
4161b8be67
sync
2010-07-10 22:58:51 +02:00
Gael Guennebaud
e5bc9526f1
* generalize rowmajor by vector
...
* fix weird compilation error when constructing a matrix with a row by matrix product
2010-07-10 22:53:27 +02:00
Gael Guennebaud
c4ef69b5bd
fix compilation: make the check_coordinates* functions const
2010-07-10 22:37:16 +02:00
Benoit Jacob
6dcd373b9d
let ei_pset1 use _mm_loaddup_pd. Not a significant speed improvement, but also not a speed regression, and replaces 3 instructions by 1 single instruction.
2010-07-09 18:51:17 -04:00
Konstantinos Margaritis
6ad3f1ab1f
Added NEON/Complex.h, ~3.5x faster than scalar std::complex<float>
...
minor fix in AltiVec Complex.h
2010-07-10 00:09:29 +03:00
Gael Guennebaud
96f9015807
disable MSVC optimization when the underlying compiler is ICC
2010-07-09 19:33:43 +02:00
Gael Guennebaud
b2effa2b2c
move ei_conj_if to a more appropriate file
2010-07-09 18:05:57 +02:00
Konstantinos Margaritis
642cc27eb1
forgot to commit ei_p4f_FORWARD;
2010-07-09 18:08:18 +03:00
Konstantinos Margaritis
f6bd508351
forgot to add the Complex.h include for AltiVec.
2010-07-09 17:56:53 +03:00
Konstantinos Margaritis
d9e134c73c
Altivec port of Complex.h.
...
Note: For some reason g++ 4.4 is >200% slower than g++ 4.3 on altivec code.
The same benchmark (bench_gemm) was tested, on the same hardware/OS (G4/Debian testing),
with same CFLAGS. With some code reorganizing I managed to get some minor gain
on 4.4, but I just could not reach 4.3 speed. This is most likely a bug, but I'm waiting
to see if it's fixed on 4.5. I'll look into this a bit more.
2010-07-09 17:54:41 +03:00
Gael Guennebaud
b1a17dbfe4
fix a few weird issues with gcc 4.3 32bits and complex<float>
2010-07-09 08:27:58 +02:00
Gael Guennebaud
504d3a3586
fix SliceVectorizedTraversal for packetsize==1
2010-07-08 23:31:14 +02:00
Gael Guennebaud
300a226ffa
scalars fitting in a single packet requires more work, step 1
...
* add a, Alignable trait
* update LinearVectorization assignment
2010-07-08 14:27:47 +02:00
Gael Guennebaud
2a1500915a
compilation fix
2010-07-08 14:26:00 +02:00
Gael Guennebaud
2066ed91de
enabling aligned loads/store for complex<double> is much more tricky,
...
so the temporary fix is to always perform unaligned load/store
2010-07-07 22:50:19 +02:00
Gael Guennebaud
d89925e6de
an attempt to fix wrong unaligned store
2010-07-07 22:35:06 +02:00
Gael Guennebaud
31a36aa9c4
support for real * complex matrix product - step 1 (works for some special cases)
2010-07-07 19:49:09 +02:00
Gael Guennebaud
861962c55f
sync
2010-07-07 16:44:05 +02:00
Gael Guennebaud
a2415388ef
optimized conjugate products for SSE3
2010-07-07 16:37:20 +02:00
Gael Guennebaud
65257f6b29
optimize for SSE3 => significant speed up !!
2010-07-07 15:34:46 +02:00
Gael Guennebaud
dd18b22f0b
optimize pmul for complex<double>
2010-07-07 15:29:04 +02:00
Gael Guennebaud
845994f18f
optimize gemv for complex<double> and fix gcc alignment issue in 32bits
2010-07-07 15:28:41 +02:00
Gael Guennebaud
e07c0f6bb5
cleanning
2010-07-07 11:41:29 +02:00
Gael Guennebaud
b0896382a3
s/IsVectorized/Vectorizable
2010-07-07 11:10:46 +02:00
Gael Guennebaud
74cf12cbe0
add a compile time error if someone call packet on Diagonal (instead of infinite runtime loop)
2010-07-07 11:07:12 +02:00
Gael Guennebaud
d5e0efaf69
fix vectorization rule of diagonal-product
2010-07-07 11:06:31 +02:00
Gael Guennebaud
c851044eae
fix row cwise-prod column in coeff based products...
...
I really don't know why this worked so far...
2010-07-07 10:52:59 +02:00
Gael Guennebaud
e38fc9692d
add a conj_product functor and optimize dot products
2010-07-07 10:00:08 +02:00
Gael Guennebaud
f8d3b4c060
fix mixing types in DiagonalProduct
2010-07-07 09:43:29 +02:00
Gael Guennebaud
bfa606d16f
* add a IsVectorized mechanism (instead of packet-size>1...)
...
* vectorize complex<double>
2010-07-06 23:36:00 +02:00
Gael Guennebaud
bc57c68cf5
bug fix forgot to conjugate the scalar factor when needed
2010-07-06 20:53:48 +02:00
Gael Guennebaud
e04c3f2cc0
reduce code generation and minor speed up
2010-07-06 19:15:02 +02:00
Gael Guennebaud
d6454788d9
add support for vectorized conjugated products
2010-07-06 19:10:24 +02:00
Jitse Niesen
49747fa4a9
Various documentation improvements.
...
* Add short documentation for Array class
* Put all classes explicitly in Core module (where applicable)
* Section on Modules in Quick Reference Guide
* Put Page 7 after Page 6 in Contents :)
2010-07-06 13:10:08 +01:00
Jens Mueller
d849bc4401
Avoid calling resizeLike, if EIGEN_NO_AUTOMATIC_RESIZING is defined
2010-07-06 10:11:18 +02:00
Gael Guennebaud
7d23e7f9f1
indentation
2010-07-06 11:02:01 +02:00
Gael Guennebaud
c69a226192
* extend the Has* packet traits and makes all functor use it
...
* extend the packing routines to support conjugation
2010-07-05 23:27:54 +02:00
Gael Guennebaud
8db60afb47
oops I did not see that
2010-07-05 21:27:15 +02:00
Gael Guennebaud
e1eccfad3f
add intitial support for the vectorization of complex<float>
2010-07-05 16:18:09 +02:00
Konstantinos Margaritis
1505221263
add check for non x86 platforms, we get a compile error on arm/powerpc without the check
...
(there is no known -yet- method to get cpuid, without resolving to kernel /sys interface)
2010-07-05 16:44:41 +03:00
Gael Guennebaud
efb79600b9
fix warning "type qualifiers ignored on function return type" for long long scalar types
2010-07-05 11:23:05 +02:00
Gael Guennebaud
fffaa58ac2
fix unaligned workspace in sybb
2010-07-05 10:12:30 +02:00
Gael Guennebaud
c201aabf3e
comment the workaround of the EIGEN_EMPTY_STRUCT_CTOR workaround for gcc 4.3
2010-07-04 15:26:58 +02:00
Gael Guennebaud
11329f49f4
suppress warning and add a fixme about this transpose argument
2010-07-03 19:39:29 +02:00
Gael Guennebaud
be1fdbf3af
fix openmp for row major destination
2010-07-03 12:52:39 +02:00
Gael Guennebaud
b4ef323e90
fix bug with openmp
2010-07-03 12:20:13 +02:00
Thomas Capricelli
b212227418
shut one more warning
2010-07-01 04:27:45 +02:00
Thomas Capricelli
1399fd9cbd
fix compilation issue with clang
2010-07-01 04:26:07 +02:00
Thomas Capricelli
d414ab51f0
oops... fix it better
2010-07-01 03:39:19 +02:00
Thomas Capricelli
2874101b62
fix compilation with icc. Anyway, the use of an enum instead of a
...
'const bool' is more consistent with the code around.
2010-07-01 03:23:47 +02:00
Thomas Capricelli
04648becf7
fix warnings with old gcc
2010-07-01 03:22:09 +02:00
Jitse Niesen
7d72d4f3c7
Bug fix for NumTraits<T>::lowest() .
...
std::numeric_limits<T>::min() is the lowest *positive* normalized number
for floating point types.
This fixes the test failure for geo_alignedbox8 for me.
2010-07-01 01:42:31 +01:00
Benoit Jacob
532aeba308
s/struct/class/g ; bug reported by Thomas
2010-06-30 19:47:26 -04:00
Manoj Rajagopalan
5c58582a08
Renamed DenseBase::{row,col}Range() to DenseBase::middle{Rows,Cols}()
2010-06-29 14:31:39 -04:00
Gael Guennebaud
82c4a755af
disable empty struct trick for buggy gcc 4.3
2010-06-29 18:17:17 +02:00
Benoit Jacob
e5de9e5226
Remove \nonstable yet. The stability rules for Eigen3 are much simpler:
...
- all what's not in unsupported/ is considered stable API
(except internal stuff e.g. expression templates).
2010-06-29 10:10:47 -04:00
Benoit Jacob
3bd421e073
fix potential warning
2010-06-29 10:02:10 -04:00
Konstantinos Margaritis
cf3616b2c0
AltiVec signed integer pmadd removed, proved to be 2x slower than the scalar trait(!).
2010-06-28 21:24:55 +03:00
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
Hauke Heibel
4bac6fbe1e
The intrin.h header needs to be included after cmath in order to prevent warnigns.
...
Fixed (hopefully) final Index realted warnings.
2010-06-21 18:39:24 +02:00
Hauke Heibel
80b6e5f278
Added include reuqired for __cpuid.
2010-06-21 16:43:31 +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