[eigen] Serious conflict between Dynamic and -1 in Diagonal<>

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

as pointed out in this thread:

http://forum.kde.org/viewtopic.php?f=74&t=106803

there is a serious issue in the Diagonal<Expression, DiagIndex> class.
Recall that Diagonal<> represents an expression of the diagonal
(DiagIndex==0), a super-diagonal (DiagIndex>0) or a sub-diagonal
(DiagIndex<0).

Of course, one can also set DiagIndex to Dynamic to pick a given
super/sub diagonal at runtime. The problem is that since Dynamic==-1,
we cannot distinguish between the first sub-diagonal (DiagIndex==-1)
and a runtime selected diagonal.

Since changing the value of Dynamic is not an option, I propose to add
a special enum for this use case, like RuntimeDiagIndex or
DynamicDiagIndex that would be set to a very big value.

Opinion? better solution?


thanks,

Gael



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/