|Re: [eigen] documentation: the long tutorial|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] documentation: the long tutorial
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Mon, 21 Jun 2010 07:48:51 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=zCVK3uZz9R2NfrBA7GkMgn4ob7AkFwyizVTsuyCHkP0=; b=cfGXMiy6AHZXBQFtsswc0m1zpyWm40uf6bJeuuFH1RhOZJC1thBoAUVWroxTZIfB2V wCwtxjA8wHCiHmNxcYWwAAMldGkQva3DEgd4bKS6hLza7I+xSaTeXmIZZsj4H6yzjzMq 66b8nSjDKkgChNrvzR+ooHm7UJzV1otOWfly0=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=RatCl0UM1PcbFl7/VQ3AgpJ9Tk9JU+mUk40RV0kH++H6YD5su/ci6tFdtojs1R9GJQ FkQJckkgGpwFSUhqiR0IwU8BcLo/BDdkRpVGTEtLhA5x/M9JtFudluU77h4TFo5XKNdz G6zNbRLWF3RO7XY4haiOoxdEZ+pngJltEtqqg=
2010/6/21 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> 2010/6/20 Carlos Becker <carlosbecker@xxxxxxxxx>:
>> Some new stuff:
>> ops: http://carlosbecker.com.ar/eigen/doc/TutorialMatrixArithmetic.html
> Thanks. My main comment is that this needs a better structuring. For
> example, the first example already shows the comma-initializer without
> an explanation and already shows various products. I think the
> comma-initializer deserves a short paragraph for itself (which is OK
> to put in this page) and products totally deserve a paragraph for
> themselves before you do any (except scalar-matrix product, that is OK
> to do without a former explanation).
> It's good to explain right away that Matrix is only for linear algebra
> and to forward-link to Array for coeff-wise ops. But rowwise and
> colwise addition and substraction are actually available for matrices
> as well (rowwise() is in DenseBase, not in ArrayBase) so that's not
> the right example ;) since you just mentioned scalar+array, stick to
> that example.
> In the paragraph "Combining operators in a single statement" you give
> an example of how that allows to avoid useless temporaries, but in
> that example, actually, that temporary is not useless at all (write
> down the computation yourself on pen&paper, for
> tempMatrix = m + n/2;
> v = tempMatrix * v;
> you'll see that doing the temporary actually reduces complexity) and
> Eigen is clever enough to understand that, so actually in the 2nd
> version in one line, Eigen internally uses such a temporary.
Sorry! I read too fast. Indeed, since your right hand side is a
vector, the temporary is actually useless. But the fact that this
depends on v being a vector rather than a matrix makes it a rather
subtle example - i would still prefer an example as described below,
if you want to write a paragraph about that.
> If you want a good example of combining arithmetic operations into a
> big expression to avoid temporaries, the easiest way to get a good
> example is to just use additions and scalar-matrix multiplications.
> But I would not mention that at the top of this page, I'd rather put
> at the end of it, since it's an advanced topic.
> In short: we need this page to expose all the basic arithmetic in a
> rational, systematic, and progressive way, treating one thing at a
> time, and deferring the advanced topics to the end.
> Also, regarding your first FIXME, you can remove for now the
> navigation links at the top.
>> Array class: http://carlosbecker.com.ar/eigen/doc/TutorialArrayClass.html
>> The Array class part is quite incomplete I guess. I am wondering whether
>> more details should be added or if this is enough. I think that the examples
>> found in http://eigen.tuxfamily.org/dox/TutorialCore.html are quite useful,
>> does anyone know in which .dox file they are found?
>> All feedback welcome.