Gael Guennebaud
8566ef805b
remove the aligned bit flag for non vectorizable types
2010-08-16 09:38:49 +02:00
Benoit Jacob
3a30a2bc3e
forgot to remove a #endif
2010-08-13 14:03:38 -04:00
Benoit Jacob
b80d9dd42e
fix determination of number of registers on sse:
...
__i386__ was not defined by MSVC 2010.
fixed as (2*sizeof(void*)).
also move that to SSE/ and let the default for unknown arch's be just 8.
2010-08-13 13:55:28 -04:00
Benoit Jacob
8bbe556e35
merge the backout
2010-08-11 00:06:31 -04:00
Benoit Jacob
97ced33b33
Backed out changeset 40f6e26a24
...
See thread on mailing list: "InnerPanel change mis-detects alignment?"
2010-08-11 00:04:06 -04:00
Jitse Niesen
76fbe94279
Document EIGEN_NO_DEBUG macro.
...
I needed some doxygen tricks to get this to work, so it may not be worth it.
2010-08-10 11:37:23 +01:00
Hauke Heibel
3dd8225862
Added more detailed docs to the QR decompositions classes.
2010-08-05 08:56:19 +02:00
Benoit Jacob
d90d7a006f
fix warnings. The one in Reverse was potentially serious: coeff() methods should return CoeffReturnType, not "Scalar", if the expression is potentially a Lvalue.
2010-08-03 10:38:48 -04:00
Hauke Heibel
cc25edd5de
Fixed Affine transform typedef.
2010-08-02 21:33:48 +02:00
Hauke Heibel
7cefa75901
Added static method Identity() to the Translation class.
2010-07-29 17:30:37 +02:00
Hauke Heibel
e92993d7b9
Safeguarded some Transform functions with compile time asserts.
...
Added missing static Identity() to Rotation2D, AngleAxis.
2010-07-29 16:17:42 +02:00
Hauke Heibel
6b89ee0095
Transform is now per default Projective.
...
Improved invert() in the Transform class.
RotationBase offers matrix() to be conform with Transform's naming scheme.
Added Translation::translation() to be conform with Transform's naming scheme.
2010-07-29 15:54:32 +02:00
Hauke Heibel
2f0e8904f1
Removed debug outputs.
2010-07-28 10:47:58 +02:00
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