[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
<div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
What to do with expr.coeff(i,j)?<br>
<br>
Shall we provide a generic implementation based on evaluators:<br>
evaluator<Derived>(derived()).<u></u>coeff(i,j)?<br>
</blockquote>
<br>
Yes if expr is a light-weight expression object.<br>
<br>
But what if expr is an object with storage (can we think of a better name t=
han this? I mean something like Matrix or SparseMatrix)? Is .coeff() best i=
mpremented in the expression object or the evaluator object? Symmetry sugge=
sts the evaluator object, but since the expression object owns the storage =
it may be more natural to put it there.<br>
</blockquote><div><br></div><div>The generic implementation could rather bu=
ild an evaluator of "this->block<1,1>(i,j)" such that tr=
ee-optimizers can move the submatrix expression to the leaves of the tree, =
thus avoiding to waste memory and computation. =C2=A0Keeping coeff in the e=
xpression means a lot of code duplication, and this also means we have to k=
eep the *Impl expression base classes.</div>
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
What to do with the packet(i,j) and similar functions?<br>
<br>
Ideally we would simply drop them.<br>
</blockquote>
<br>
Dropping them would mean changing the API. It's quite an internal bit o=
f API and I doubt many use it; just something to keep in mind.<br></blockqu=
ote><div><br></div><div>Exactly, that's why I used "ideally".=
... sadly, we'll probably have to keep them deprecated.</div>
<div><br></div><div>gael</div></div></div></div>
--bcaec53d5a8b1243e604f6e96c3b--