mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
* use transpose() instead of row vectors (more common use case)
* add a word about noalias and performance for BLAS users
This commit is contained in:
@@ -124,8 +124,14 @@ introducing a temporary here, so it will compile \c m=m*m as:
|
||||
tmp = m*m;
|
||||
m = tmp;
|
||||
\endcode
|
||||
If you know your matrix product can be safely evluated into the destination matrix without aliasing issue, then you can use the \c nolias() function to avoid the temporary, e.g.:
|
||||
\code
|
||||
c.noalias() += a * b;
|
||||
\endcode
|
||||
For more details on this topic, see \ref TopicEigenExpressionTemplates "this page".
|
||||
|
||||
\b Note: for BLAS users worried about performance, expressions such as <tt>c.noalias() -= 2 * a.adjoint() * b;</tt> are fully optimized and trigger a single gemm-like function call.
|
||||
|
||||
\section TutorialArithmeticDotAndCross Dot product and cross product
|
||||
|
||||
The above-discussed \c operator* does not allow to compute dot and cross products. For that, you need the dot() and cross() methods.
|
||||
|
||||
Reference in New Issue
Block a user