aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/ProductBase.h
Commit message (Collapse)AuthorAge
* fix the build of eigensolver_complex test.Gravatar Benoit Jacob2010-12-09
| | | | | | it was calling the .value() method on an inner product, and that was blocked in bad zero-sized case. fixed by adding the .value() method to DenseBase for all 1x1 expressions, and allowing coeff accessors in ProductBase for 1x1 expressions.
* fix compilation of product_mmtrGravatar Gael Guennebaud2010-11-21
|
* Renamed cleantype to remove_all since it is close to ↵Gravatar Hauke Heibel2010-10-26
| | | | remove_{const|pointer|reference}.
* Initial fixes for bug #85.Gravatar Hauke Heibel2010-10-25
| | | | | | | Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const. Changed boolean type 'ret' member to 'value'. Changed 'ret' members refering to types to 'type'. Adapted all code occurences.
* bug #86 : use internal:: namespace instead of ei_ prefixGravatar Benoit Jacob2010-10-25
|
* fix bad mat * mat * scalar when the implicit conversion operator to a Matrix ↵Gravatar Gael Guennebaud2010-08-31
| | | | is used
* Various documentation improvements.Gravatar Jitse Niesen2010-07-06
| | | | | | | * 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 :)
* email changeGravatar Gael Guennebaud2010-06-24
|
* * remove ei_index, and let ei_traits propagate the index typesGravatar Gael Guennebaud2010-06-03
| | | | * add an Index type template parapeter to sparse objects
* the Index types change.Gravatar Benoit Jacob2010-05-30
| | | | As discussed on the list (too long to explain here).
* Fix to ProductBase::evalTo() in order to get matrix multiplication working ↵Gravatar Manoj Rajagopalan2010-05-26
| | | | | | for numeric types that don't have implicit conversion from int
* simplify inner productGravatar Gael Guennebaud2010-05-19
|
* * merge with mainlineGravatar Benoit Jacob2010-04-16
|\ | | | | | | | | | | * 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
* | * Refactoring of the class hierarchy: introduction of DenseDirectAccessBase, ↵Gravatar Benoit Jacob2010-04-16
| | | | | | | | | | | | | | | | | | 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
* | fix the flags and matrix options, to always have the right RowMajor bit in ↵Gravatar Benoit Jacob2010-03-19
|/ | | | the vector case
* Renamed PlainMatrixType to PlainObject (Array != Matrix).Gravatar Hauke Heibel2010-02-20
| | | | Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
* finally here is a simple solution making (a*b).diagonal() even faster than ↵Gravatar Gael Guennebaud2010-02-10
| | | | a.lazyProduct(b).diagonal() !!
* * as promised, remove the "optimization" for Product::diagonal()Gravatar Gael Guennebaud2010-02-09
| | | | * add MatrixBase::lazyProduct
* For the record, here is a solution for (a*b).diagonal, at the cost of extra ↵Gravatar Gael Guennebaud2010-02-09
| | | | | | | | copies if a and/or b as to be evaluated. So in the next commit I'll remove it. A nice solution would be to evaluate the lhs/rhs into member of the initial product, but that would be overkill.
* * fix multiple temporary copies for coeff based productsGravatar Gael Guennebaud2010-02-09
| | | | | | * introduce a lazy product version of the coefficient based implementation => flagged is not used anymore => small outer product are now lazy by default (aliasing is really unlikely for outer products)
* s/UnrolledProduct/CoeffBasedProductGravatar Gael Guennebaud2010-02-09
|
* fix the multiple temporary issue for nested productsGravatar Gael Guennebaud2010-02-09
|
* get rid of NestParentByRefBitGravatar Gael Guennebaud2010-02-08
|
* Introduced NestParentByRefBit and NestByRefBit - this should fix temporaries ↵Gravatar Hauke Heibel2010-02-06
| | | | | | related to nested products. Fixed a few typos and a few warnings.
* make noalias works for coefficient based productsGravatar Gael Guennebaud2010-02-05
|
* * resurected Flagged from Eigen2SupportGravatar Gael Guennebaud2010-02-04
| | | | * reimplement .diagonal() for ProductBase to make (A*B).diagonal() more efficient!
* optiization: make hybrid small/large outer products use the unrolled pathGravatar Gael Guennebaud2010-02-04
|
* lot of cleaning:Gravatar Gael Guennebaud2010-01-22
| | | | | | - clean the *_PUBLIC_INTERFACE_* - update Diagonal, ReturnByValue, ForceAlignedAccess, UnaryView, etc. to support array - many other small stuff
* a couple of fixes after thye mergeGravatar Gael Guennebaud2009-12-23
|
* merge with default branchGravatar Gael Guennebaud2009-12-22
|\
* | extend the DenseStorageMatrix mechanism to all expressionsGravatar Gael Guennebaud2009-12-22
| |
* | a couple of fixes and cleaningGravatar Gael Guennebaud2009-12-17
| |
| * Warning 4512 (assignment operators could not be generated) is now simply ↵Gravatar Hauke Heibel2009-12-14
| | | | | | | | | | | | disabled. All unimplemented assignment operators have been removed.
* | add a DenseBase class for MAtrixBase and ArrayBase and more code factorisationGravatar Gael Guennebaud2009-12-04
| |
| * Removed unnecessary code.Gravatar Hauke Heibel2009-12-02
| |
* | Experiment the ET refactoring on Transpose for Dense and Sparse storages.Gravatar Gael Guennebaud2009-11-16
|/ | | | All tests work fine.
* Added private, non-implemented assignment operators to functions that don't ↵Gravatar Hauke Heibel2009-09-27
| | | | need them (fixes VC warning on /W4).
* * add real scalar * complex matrix, real matrix * complex scalar,Gravatar Gael Guennebaud2009-09-04
| | | | | and complex scalar * real matrix overloads * allows the inner and outer product specialisations to mix real and complex
* bugfix in compute_matrix_flags, optimization in LU,Gravatar Gael Guennebaud2009-08-16
| | | | | improve doc, and workaround aliasing detection in MatrixBase_eval snippet (not very nice but I don't know how to do it in a better way)
* 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.
* my previous fix was not very goodGravatar Gael Guennebaud2009-08-15
|
* bugfix and compilation fix in ProductBaseGravatar Gael Guennebaud2009-08-15
|
* overload operartor* with a ProductBase such that "scalar * (mat * mat)" is ↵Gravatar Gael Guennebaud2009-08-11
| | | | | | optimized as one could naturally expect
* big refactoring in Product.h:Gravatar Gael Guennebaud2009-08-05
| | | | | | | | - all specialized products now inherits ProductBase - the default product evaluated by Assign is still here, but it is currently enabled for small fixed sizes only - => this significantly speed up compilation for large matrices - I left the OuterProduct specialization empty as an exercise...
* implement a ProductBase class and, as a proof of concept, update ↵Gravatar Gael Guennebaud2009-08-04
TriangularProduct and SelfAdjointMatrixProduct to take advantage of it => fewer LOC