| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
remove_{const|pointer|reference}.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
is used
|
|
|
|
|
|
|
| |
* 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 :)
|
| |
|
|
|
|
| |
* add an Index type template parapeter to sparse objects
|
|
|
|
| |
As discussed on the list (too long to explain here).
|
|
|
|
|
|
| |
for numeric
types that don't have implicit conversion from int
|
| |
|
|\
| |
| |
| |
| |
| | |
* 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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
the vector case
|
|
|
|
| |
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
|
|
|
|
| |
a.lazyProduct(b).diagonal() !!
|
|
|
|
| |
* add MatrixBase::lazyProduct
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* 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)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
related to nested products.
Fixed a few typos and a few warnings.
|
| |
|
|
|
|
| |
* reimplement .diagonal() for ProductBase to make (A*B).diagonal() more efficient!
|
| |
|
|
|
|
|
|
| |
- clean the *_PUBLIC_INTERFACE_*
- update Diagonal, ReturnByValue, ForceAlignedAccess, UnaryView, etc. to support array
- many other small stuff
|
| |
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
disabled.
All unimplemented assignment operators have been removed.
|
| | |
|
| | |
|
|/
|
|
| |
All tests work fine.
|
|
|
|
| |
need them (fixes VC warning on /W4).
|
|
|
|
|
| |
and complex scalar * real matrix overloads
* allows the inner and outer product specialisations to mix real and complex
|
|
|
|
|
| |
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 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.
|
| |
|
| |
|
|
|
|
|
|
| |
optimized
as one could naturally expect
|
|
|
|
|
|
|
|
| |
- 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...
|
|
TriangularProduct
and SelfAdjointMatrixProduct to take advantage of it => fewer LOC
|