Re: [eigen] Re: proposal: call the Geometry module experimental |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Re: proposal: call the Geometry module experimental
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Sun, 25 Jan 2009 17:54:12 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=XvS3D0XCsa0omR1psUj+/mtbho4xajT8uz8Vtv2aT6U=; b=HudPVk9By+txJyGNNFnAixp61XU2qKxfau9baAl3za68jKy1nCDuZ2ZqyGZhzpY04N 2XbHGNqFoPo28h+yFPkPd097WFRMyX/cg3R1B6+NoshqLMO78s7RPnEcSdU4SYXwNZhF qhf9Cks8r1w4xF4UTw7f5Vi4D3+F8gSC2pIVA=
- 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=R3zSJtr0f2C5mN9/owQDDwTJSZaHeocUITelDMcvk6idp/RnPfwiNiBK7TmLelZIXX +E0THuzPLLjhBix3v4m7Blk4Oifx1v3gbPs10HcdDuSvfLgRH5XJzwrMql44ga1RVH/9 Jp2ULAmbC1HiJnDapSgzLeonHDINPFZ9y79F0=
2009/1/24 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> ok, I've already have some local changes which go to this direction.
> Currently this is what I did:
>
> 1 - rename the current Scaling => AlignedScaling
OK, indeed if we agree that Aligned in this context sounds OK in English.
> 2 - add UniformScaling
OK
> 3 - add a global function Scaling working for:
> float, double, std::complex<*>, 2 scalars, 3 scalars,
> MatrixBase<*> (square matrix or vector)
As I explain below I don't think it should allow square matrices.
> Since there is a single kind of translation, no need to rename it and
> we can keep it as it is now.
OK
> However, I'm thinking that AlignedScaling could be removed, especially
> once we'll have a better DiagonalMatrix as we discussed in another
> thread. In practice Scaling(vector expression) would simply be an
> alias for .asDiagonal(). What do you think ?
OK, good idea. So there remains only UniformScaling (since I disagree
below for Scaling(square_matrix))
Then we could rename UniformScaling to just Scaling and there in the
doc we explain how to get the other kinds of scaling using explicit
matrix expressions.
> About UniformScaling, even though it is just a scalar, is still useful
> because Translation * scalar would be too ambiguous.
Good point.
> Currently Scaling(square_matrix) simply returns square_matrix but I
> think it could be an alias for marked<SelfAdjoint>(), right ? (only if
> the SelfAdjointBit is not already there)
I think that can be completely removed. The idea is that if the user
is good enough in math to prepare the scaling square_matrix to pass to
such as Scaling(square_matrix) function, then he also is good enough
to understand that he can directly multiply his transform by that
matrix.
I find it more confusing than anything else, to have Scaling()
behaving as a wrapper around marked(). And that doesn't help the
matrix product to go faster.
Now I would like to restate my initial request: can we please mark the
Geometry module experimental? It doesn't have much disadvantage: we
just make sure to actually preserve the 99.9% of the API, and 100% for
Krita and other projects you might care about; but this allows us to
improve the API without artificial constraints. Then for 2.1 we remove
the experimental tag. I really don't think we should be having this
discussion a couple of days before eternal API freeze.
Cheers,
Benoit