Commit Graph

1006 Commits

Author SHA1 Message Date
Eamon Nerbonne
3efb3cc828 Changed product type selector to fix perf regression. 2010-03-02 12:08:49 +01:00
Gael Guennebaud
2f3d685e0c a matrix (or array) does not always have the LinearAccessBit!
=> fixes in outerStride and matrix flags
2010-03-02 15:31:39 +01:00
Gael Guennebaud
7fd6458fec selfadjoint: do not reference the imaginary part of the diagonal 2010-03-02 12:43:55 +01:00
Hauke Heibel
3cc9e3f5bb Fixes a compilation issue for MSVC. 2010-03-01 19:56:24 +01:00
Benoit Jacob
f1f3c30ddc remove the hack to make the static assertion on types actually show up.
indeed, now that we use the meta selector for transposing as needed, the static asserts work very well.
2010-02-28 11:10:13 -05:00
Benoit Jacob
07023b94d8 forgot defined(...) 2010-02-28 10:11:28 -05:00
Benoit Jacob
9334ed4444 on 64-bit systems, glibc's malloc returns 16-byte aligned ptrs, and we now take advantage of that. 2010-02-28 10:10:53 -05:00
Benoit Jacob
a480e7e60f * fix ei_handmade_aligned_realloc (was calling realloc on wrong ptr)
* add missing std::  (at least for QNX compatibility)
* add big comments to "structure" the file
2010-02-28 09:10:41 -05:00
Hauke Heibel
ff8c2149c1 Added a generic reallocation implementation based on ei_aligned_malloc/_free.
Rewrote ei_handmade_aligned_realloc such that it is now using std::realloc.
Reorganized functions in Memory.h for better readability.
Add missing <cerrno> include to Core (it's now required in Memory.h).
2010-02-28 14:32:57 +01:00
Hauke Heibel
40bd69fbaa Hide some internal stuff from the docs. 2010-02-28 12:56:37 +01:00
Benoit Jacob
27f5250258 Only include <iosfwd> unless either EIGEN_DEBUG_ASSIGN is defined or we're in eigen2 support mode 2010-02-27 19:04:22 -05:00
Benoit Jacob
e84f7e07e9 add ei_posix_memalign_realloc 2010-02-27 18:57:07 -05:00
Benoit Jacob
22fabb8940 add missing inline keyword, thanks to Eamon. 2010-02-27 17:51:48 -05:00
Hauke Heibel
6c9eb36222 Added support for realloc based conservative resizing. 2010-02-27 17:25:07 +01:00
Hauke Heibel
78b2c7e16e Fixed a typo. 2010-02-27 17:24:42 +01:00
Benoit Jacob
3f393490ad dot: handle the rowvector.dot(colvector) case where one needs to transpose. 2010-02-27 11:19:14 -05:00
Benoit Jacob
d9f6380499 Remove the dot product's separate implementation and use cwiseProduct.sum instead.
Also take special care to get nicely working static  assertions.
2010-02-27 10:03:27 -05:00
Benoit Jacob
2c9a91812e merge 2010-02-26 21:47:54 -05:00
Benoit Jacob
814e40c72a let redux use the new ByOuterInner accessors 2010-02-26 21:46:43 -05:00
Benoit Jacob
4927841cba Document Map and Stride, add examples. 2010-02-26 21:29:04 -05:00
Benoit Jacob
b1f666d007 Fix Map-with-Stride and cover it by new unit tests. 2010-02-26 20:12:51 -05:00
nerbonne
c72a5074e6 Fixed perf problems for vector subtraction: inlining wasn't always happening when necessary. 2010-02-26 15:46:43 +01:00
Benoit Jacob
32115bff1e * add VERIFY_IS_EQUAL, should compile faster and it's natural when no arithmetic is involved.
* rename 'submatrices' test to 'block'
* add block-inside-of-block tests
* remove old cruft
* split diagonal() tests into separate file
2010-02-26 09:03:13 -05:00
Benoit Jacob
f56ac04c34 DenseBase::IsRowMajor now takes the special case of vectors into account. 2010-02-25 21:24:42 -05:00
Benoit Jacob
b1c6c215a4 merge 2010-02-25 21:07:30 -05:00
Benoit Jacob
769641bc58 * Implement the ByOuterInner accessors
* use them (big simplification in Assign.h)
* axe (Inner|Outer)StrideAtCompileTime that were just introduced
* ei_int_if_dynamic now asserts that the size is the expected one: adapt to that in Block.h
* add rowStride() / colStride() in DenseBase
* implement innerStride() / outerStride() everywhere needed
2010-02-25 21:01:52 -05:00
Gael Guennebaud
53bae6b3f8 update matrix product selection rules for 1xSmallxLarge and the transposed case 2010-02-25 21:59:25 +01:00
Gael Guennebaud
959a1b5d63 detect and implement inplace permutations 2010-02-25 16:30:58 +01:00
Gael Guennebaud
d9ca0c0d36 optimize inverse permutations 2010-02-25 15:31:15 +01:00
Thomas Capricelli
0f3d69b65e Provide "eigen" defines to decide which instruction set is used
(sse3, ssse3 and sse4), independantly from the compiler.
Only those defines should be used in other places, and the user can
rely on those to know which sets are used.
2010-02-24 21:43:30 +01:00
Hauke Heibel
1fd8d7b96a Attempt to fix PGI compilation issue. 2010-02-23 11:35:51 +01:00
Gael Guennebaud
d2b0eadf52 fully adapt the gebp kernel and optimize it for CPU with only 8 registers
(transplanted from 2ed88ebbf1995be90b8d0c25ff10248c8f56d023)
2010-02-22 16:35:05 +01:00
Gael Guennebaud
51a4b929a1 implement an even lower level version of the gebp kernel for MSVC (it seems to be faster with gcc as well)
(transplanted from 9a5643551fe068497f84a81cd8986febf1918382)
2010-02-22 15:18:29 +01:00
Thomas Capricelli
1a70f3b48d fix compilation 2010-02-21 19:30:11 +01:00
Hauke Heibel
a901bed33a Added IsRowMajor enum to DenseBase. 2010-02-21 18:26:14 +01:00
Hauke Heibel
abc8c01080 Renamed PlainMatrixType to PlainObject (Array != Matrix).
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
2010-02-20 15:53:57 +01:00
Hauke Heibel
f0c8dcf1e2 Renamed AnyMatrixBase to EigenBase. 2010-02-20 15:26:02 +01:00
Gael Guennebaud
4f8773c23a fix stupid enum values 2010-02-19 17:46:36 +01:00
Benoit Jacob
5491531a81 add Stride.h 2010-02-18 20:44:17 -05:00
Benoit Jacob
b73e22905d miserable half-working state, commiting to a fork just in case, just to perfect
my day, my hard disk would die.
Will write a more detailed commit message once it's working.
2010-02-18 20:42:38 -05:00
Gael Guennebaud
016943f870 avoid 2 redundant calls to resize 2010-02-15 11:31:36 +01:00
Gael Guennebaud
dcb395c6f5 explicitly disable the use of evalTo for dense object 2010-02-15 11:09:33 +01:00
Gael Guennebaud
21d0eb3f11 the default implementation should really call evalTo 2010-02-15 11:01:55 +01:00
Hauke Heibel
8519558d11 Workaround for compounds affected by #94. 2010-02-15 10:11:10 +01:00
Benoit Jacob
37ca4200b2 Piotr's patch was missing many occurences of size_t. So,
using std::size_t;
This is the only way that we can ensure QCC support in the long term without having to think about it everytime.
2010-02-12 08:58:29 -05:00
Gael Guennebaud
a76950bdab fix a couple of ICE with gcc 4.0.1 2010-02-12 09:41:56 +01:00
Piotr Trojanek
1701a5d1f8 std:: namespace fixup for more restricive compilers such as QNX's QCC 2010-02-10 13:24:47 +01:00
Hauke Heibel
ae0a17d30b Here is the proper fix. 2010-02-11 11:39:02 +01:00
Hauke Heibel
93e86b0884 Fixed typos.
Replace NumTraits<bool>::dummy_precision() (three locations) by false in order to suppress warnings.
2010-02-11 11:31:22 +01:00
Gael Guennebaud
0ca67afe6a finally here is a simple solution making (a*b).diagonal() even faster than a.lazyProduct(b).diagonal() !! 2010-02-10 14:08:47 +01:00