aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Assign.h
Commit message (Collapse)AuthorAge
* fix #139, exactly the same issue as #138, this time in Assign.h: const Index ↵Gravatar Benoit Jacob2010-06-16
| | | | is not a compile-time constant, must use enum.
* Really fix #123.Gravatar Hauke Heibel2010-06-14
|
* Fixes bug #123.Gravatar Hauke Heibel2010-06-14
|
* change the value of Dynamic to -1, since the index type is now configurable.Gravatar Benoit Jacob2010-06-11
| | | | remove EIGEN_ENUM_MIN/MAX, implement new macros instead
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* Only include <iosfwd> unless either EIGEN_DEBUG_ASSIGN is defined or we're ↵Gravatar Benoit Jacob2010-02-27
| | | | in eigen2 support mode
* mergeGravatar Benoit Jacob2010-02-26
|\
| * Fixed perf problems for vector subtraction: inlining wasn't always happening ↵Gravatar nerbonne2010-02-26
| | | | | | | | when necessary.
* | * add VERIFY_IS_EQUAL, should compile faster and it's natural when no ↵Gravatar Benoit Jacob2010-02-26
| | | | | | | | | | | | | | | | | | arithmetic is involved. * rename 'submatrices' test to 'block' * add block-inside-of-block tests * remove old cruft * split diagonal() tests into separate file
* | DenseBase::IsRowMajor now takes the special case of vectors into account.Gravatar Benoit Jacob2010-02-25
| |
* | * Implement the ByOuterInner accessorsGravatar Benoit Jacob2010-02-25
| | | | | | | | | | | | | | | | * 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
* | miserable half-working state, commiting to a fork just in case, just to perfectGravatar Benoit Jacob2010-02-18
|/ | | | | my day, my hard disk would die. Will write a more detailed commit message once it's working.
* fix one useless temp & copyGravatar Gael Guennebaud2010-02-09
|
* *forward port fix in MapBase::coeff(int) and coeffRef(int)Gravatar Benoit Jacob2010-01-27
| | | | | *forward port expanded map.cpp unit test *fix unused variable warnings
* Added an ei_linspaced_op to create linearly spaced vectors.Gravatar Hauke Heibel2010-01-26
| | | | | | | | | Added setLinSpaced/LinSpaced functionality to DenseBase. Improved vectorized assignment - overcomes MSVC optimization issues. CwiseNullaryOp is now requiring functors to offer 1D and 2D operators. Adapted existing functors to the new CwiseNullaryOp requirements. Added ei_plset to create packages as [a, a+1, ..., a+size]. Added more nullaray unit tests.
* merge and add start/end to Eigen2SupportGravatar Gael Guennebaud2010-01-05
|\
| * remove debug output. sorry!Gravatar Benoit Jacob2010-01-02
| |
| * * Fix bug #79: ei_alignmentOffset was assuming that ptr is multiple ofGravatar Benoit Jacob2010-01-02
| | | | | | | | | | | | | | sizeof(Scalar), and that assumption breaks with double on linux x86-32. * Rename ei_alignmentOffset to ei_first_aligned * Rewrite its documentation and part of its body * The variant taking a MatrixBase doesn't need a separate size argument.
| * put the assign assert and debug info before the assignment itselfGravatar Benoit Jacob2010-01-01
| |
| * fix #76, MayLinearVectorize depends on MaxSizeAtCompileTime and not on ↵Gravatar Gael Guennebaud2009-12-23
| | | | | | | | MaxInnerSize
* | merge with default branchGravatar Gael Guennebaud2009-12-22
|\|
| * * fix aliasing checks when the lhs is also transposed. At the same time,Gravatar Gael Guennebaud2009-12-16
| | | | | | | | | | | | significantly simplify the code of these checks while extending them to catch much more expressions! * move the enabling/disabling of vectorized sin/cos to the architecture traits
* | add a DenseBase class for MAtrixBase and ArrayBase and more code factorisationGravatar Gael Guennebaud2009-12-04
| |
| * fix bugs, old and new:Gravatar Benoit Jacob2009-11-18
| | | | | | | | | | * old bug: in CwiseBinaryOp: only set the LinearAccessBit if both sides have the same storage order. * new bug: in Assign.h, only consider linear traversal if both sides have the same storage order.
| * temporarily disable linear traversal.Gravatar Benoit Jacob2009-11-18
| | | | | | | | | | | | Actually I don't think it's buggy. But it probably triggers existing bugs, I suspect that some xprs have LinearAccessBit and shouldn't have it. Also this fixes the "bugs" with JacobiSVD ---> now it works again
| * Assign.h: add LinearTraversal (non-vectorized index-based traversal)Gravatar Benoit Jacob2009-11-18
|/ | | | Rename some constants to make names match more closely what they mean.
* fix compilation adding a makeconst helper structGravatar Gael Guennebaud2009-11-07
|
* rename back MayAliasBit to EvalBeforeAssigningBitGravatar Gael Guennebaud2009-08-16
|
* As proposed on the list:Gravatar Gael Guennebaud2009-08-15
| | | | | | | | | - rename EvalBeforeAssignBit to MayAliasBit - make .lazy() remove the MayAliasBit only, and mark it as deprecated - add a NoAlias pseudo expression, and MatrixBase::noalias() function Todo: - we have to decide whether += and -= assume no aliasing by default ? - once we agree on the API: update the Sparse module and the unit tests respectively.
* add EIGEN_DEBUG_VARGravatar Benoit Jacob2009-08-11
|
* remove #include Bidiagonalization, and add missing ";"Gravatar Gael Guennebaud2009-08-11
|
* LinearVectorization: If the destination isn't aligned,Gravatar Benoit Jacob2009-08-09
| | | | we have to do runtime checks and we don't unroll, so it's only good for large enough sizes
* now you can #define EIGEN_DEBUG_ASSIGN, and all the values in ↵Gravatar Benoit Jacob2009-08-09
| | | | ei_assign_traits are printed
* apply Gael's idea for auto transpose in mixed fixed/dynamic caseGravatar Benoit Jacob2009-08-03
|
* new implementation of diagonal matrices and diagonal matrix expressionsGravatar Benoit Jacob2009-06-28
|
* remove sentence "Eigen itself is part of the KDE project."Gravatar Benoit Jacob2009-05-22
| | | | it never made very precise sense. but now does it still make any?
* fix assertion issue in slice vectorizationGravatar Gael Guennebaud2009-02-16
|
* centralize those static asserts more upstream, reduces duplication and ↵Gravatar Benoit Jacob2009-01-27
| | | | | | ensures they can't be bypassed (e.g. until now it was possible to bypass the static assert on sizes)
* * add unit-tests to check allowed and forbiddent mixing of different scalar ↵Gravatar Benoit Jacob2008-12-22
| | | | | | | types * fix issues in Product revealed by this test * in Dot.h forbid mixing of different types (at least for now, might allow real.dot(complex) in the future).
* * fix a vectorization issue in ProductGravatar Gael Guennebaud2008-12-19
| | | | | | * use _mm_malloc/_mm_free on other platforms than linux of MSVC (eg., cygwin, OSX) * replace a lot of inline keywords by EIGEN_STRONG_INLINE to compensate for poor MSVC inlining
* * replace postfix ++ by prefix ++ wherever that makes sense in Eigen/Gravatar Benoit Jacob2008-12-17
| | | | | * fix some "unused variable" warnings in the tests; there remains a libstdc++ "deprecated" warning which I haven't looked much into
* more warning fixes by Armin BerresGravatar Gael Guennebaud2008-12-15
|
* * Much better, consistent error msgs when mixing different scalar types:Gravatar Benoit Jacob2008-12-03
| | | | | | | | | | | | | - in matrix-matrix product, static assert on the two scalar types to be the same. - Similarly in CwiseBinaryOp. POTENTIALLY CONTROVERSIAL: we don't allow anymore binary ops to take two different scalar types. The functors that we defined take two args of the same type anyway; also we still allow the return type to be different. Again the reason is that different scalar types are incompatible with vectorization. Better have the user realize explicitly what mixing different numeric types costs him in terms of performance. See comment in CwiseBinaryOp constructor. - This allowed to fix a little mistake in test/regression.cpp, mixing float and double - Remove redundant semicolon (;) after static asserts
* Update e-mail addressGravatar Benoit Jacob2008-11-24
|
* Bugfix regarding alignent in Assign.h (updated map unit test to detect this bug)Gravatar Gael Guennebaud2008-09-03
| | | | | Anyway: LinearVectorization+CompleteUnrolling actually uses the InnerVectorization unrollers, so these two cases could be merged to a single one...
* * remove debug code commited by mistake in AssignGravatar Gael Guennebaud2008-08-26
| | | | * keep going on the doc: added a short geometry tutorial
* temporary fix of the pèrevious commitGravatar Gael Guennebaud2008-08-24
|
* * Added .all() and .any() members to PartialReduxGravatar Gael Guennebaud2008-08-20
| | | | | * Bug fixes in euler angle snippet, Assign and MapBase * Started a "quick start guide" (draft state)
* change solveTriangularInPlace() to take a pointer as input (as discussed on ↵Gravatar Gael Guennebaud2008-08-12
| | | | | | IRC). extended the documentation of the triangular solver.
* * Big change in Block and Map:Gravatar Gael Guennebaud2008-08-09
| | | | | | | | | | | | | | - added a MapBase base xpr on top of which Map and the specialization of Block are implemented - MapBase forces both aligned loads (and aligned stores, see below) in expressions such as "x.block(...) += other_expr" * Significant vectorization improvement: - added a AlignedBit flag meaning the first coeff/packet is aligned, this allows to not generate extra code to deal with the first unaligned part - removed all unaligned stores when no unrolling - removed unaligned loads in Sum when the input as the DirectAccessBit flag * Some code simplification in CacheFriendly product * Some minor documentation improvements