|[eigen] a few more points...|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: [eigen] a few more points...
- From: "Benoit Jacob" <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 2 Jan 2009 22:28:50 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=jJdQ32+LMO3P1HH1NIVFHZihv56RFaGPIl1zgsL8hsw=; b=SFoF0NYBPRSxh4oGrwo6MWLa6pTFaKxHh8ze8SiS2FlMjvGKoBjAIkCYlfXWnmGpsb 1Bdbm+rfAiH1euG/59QB3jILK0Cm3iOB/cT6d4thE9MLZA+zMOlgR2aag2dU6znzm3gF nVDs5KZE3LgwVFcgvH23ImzZo0jFYRQfX9LCg=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=PocBr/oLsii+mh/vGYug1+SLy0spUKaR2P+V1erthUMicpy3p1/qozGYehgxKF27w6 6VDVArMYFS8nQQlaFwjVjHGx6HaZ8/VqdoBbfAuVlvAvRlzopao5AAzLcgTaZ8s3xBfk 8OBZUNtJQzk3fL+Sh4kliBxmjdxza+71cQbCw=
(i mistakenly hit the send button, sorry)
1) Should we rename Eigen/Regression to Eigen/LeastSquares?
after all, regression analysis is only one of the things that one can
do with least squares, currently this module is essentially providing
raw least squares, no fancy (non-linear) regression analysis; moreover
other modules like LU are named after the basic algo not after the
common use case -- so naming that module Regression is a bit like
calling the LU module "Solving" and the QR module "Spectral" etc... We
could keep Regression as a trivial, deprecated header for now until 2.0...
2) Is it a bug that ei_traits<Block>::Flags doesn't set the AlignedBit
even if the ForceAligned option is used?
I have a local change like this:
- Flags = (MatrixType::Flags & (HereditaryBits |
MaskPacketAccessBit | DirectAccessBit)) | FlagsLinearAccessBit,
+ Flags = (MatrixType::Flags & (HereditaryBits |
MaskPacketAccessBit | DirectAccessBit)) | FlagsLinearAccessBit
+ | (int(PacketAccess)==ForceAligned ? AlignedBit : 0),
Is this OK with you? I've come across this issue while trying to get
the 4x4 matrix inversion to really take advantage of vectorization.
Recall it's working on 2x2 blocks. By the way, the block() methods
don't currently expose the ForceAligned stuff, don't know yet if we
want to expose that there or keep it internal.
3) I'm adding a StorageOrder enum in Matrix, to fix wrong code in LU.h
that passed Flags as 4th templ param of Matrix. One more little thing
to change when/if you do the change with the Compact option.
4) I think we need a detailed wiki page explaining what we guarantee
API stability for and what we don't -- indeed it's nontrivial to
separate public from private stuff in a template lib. I think we
should plainly exclude asDiagonal() from the API stability guarantee
in 2.0 to leave us as much wiggling space as possible.