Re: [eigen] beta1 tagged (NOT RELEASED), first try |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] beta1 tagged (NOT RELEASED), first try
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 30 Jun 2010 19:43:50 -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=TtVkvIsfh9fnrKleE6GwVUpSPwLb3rVE8pkI7G3EFAQ=; b=UXLD8tbpjlQq2Bq6Q5cjh15bUlnx0S3QK8HQLNVCB9MTJvo/AYOBf4fQ6bmhrm2vrK hiXPOM1aKRpm+fGoY/vpw5ubPsZLouE6qfsuxxbjcWOMgpj26tcQJTdbLbOS8cTovJaY 3Hx0cpJs40w1TPL9obm1joN2ohIGdEEU+HNsA=
- 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=YIdXeez+ts7y3BAEFwu/g2q/nGHRDIbDs8DpiM4zPcyudJlLHoiYxkaJz8G5eA976e 7FMGuvUcX5ncc5m2QnqzSucumkrz3Fn3iEsADGgo0EC0kIs9n/N5GZLXVeIGAVl35Ere gVvrMhRPkLe9Vg+i+JYNAADzVnAh0An/VgMeM=
2010/6/30 Thomas Capricelli <orzel@xxxxxxxxxxxxxxx>:
>
> In data mercoledì 30 giugno 2010 16:29:00, Benoit Jacob ha scritto:
>> Please give this a good testing. Beta1 will only be released once it's
>> received enough testing.
>
> Here are my first results, starting from the worse
>
> ** clang: does not compile at all, but i have an idea why, will send another mail related to this. Of course, this is far from being the most important test. Meanwhile, if you happen to know what this means... i dont! :
> ------------------------------------------------------------------------
> In file included from /home/orzel/hg/eigen/unsupported/test/polynomialsolver.cpp:25:
> In file included from /home/orzel/hg/eigen/unsupported/test/../../test/main.h:162:
> In file included from /home/orzel/hg/eigen/Eigen/QR:4:
> In file included from /home/orzel/hg/eigen/unsupported/test/../../Eigen/Core:222:
> /home/orzel/hg/eigen/unsupported/test/../../Eigen/src/Core/arch/SSE/PacketMath.h:291:30: warning: compound literals are a C99-specific feature
> vecs[1] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x55));
>
> (with an arrow pointing to the the first underscore of _mm_castps_si128)
> ------------------------------------------------------------------------
Looks like a clang bug, because there is no C99 compound literal here :)
http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Compound-Literals.html
>
> Another important warning is that in GeneralMatrixMatrix.h, ei_gemm_blocking_space is sometimes a class, sometimes a struct. I dont know on which one we should settle (probably 'class'?)
Indeed, good catch, I checked, and it should be class everywhere,
since at least for this specialization it's clear that struct is a
typo:
at line 328:
template<int StorageOrder, typename _LhsScalar, typename _RhsScalar,
int MaxRows, int MaxCols, int MaxDepth>
struct ei_gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows,
MaxCols, MaxDepth, false>
: public ei_level3_blocking<
typename ei_meta_if<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::ret,
typename ei_meta_if<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::ret>
{
enum {
Transpose = StorageOrder==RowMajor
};
typedef typename ei_meta_if<Transpose,_RhsScalar,_LhsScalar>::ret LhsScalar;
typedef typename ei_meta_if<Transpose,_LhsScalar,_RhsScalar>::ret RhsScalar;
typedef ei_product_blocking_traits<RhsScalar> Blocking;
DenseIndex m_sizeA;
DenseIndex m_sizeB;
DenseIndex m_sizeW;
public:
ei_gemm_blocking_space(DenseIndex rows, DenseIndex cols, DenseIndex depth)
{
Benoit
>
>
> ** icc: compile fails with http://freehackers.pastebin.com/GCeBKbEn , not sure what to do..
>
> ** gcc 3.3.6:
> i have some warnings like this:
> ------------------------------------------------------------------------
> /home/orzel/hg/eigen/Eigen/src/Core/Product.h:235: warning: `static' is not at
> beginning of declaration
> /home/orzel/hg/eigen/Eigen/src/Core/Product.h:247: warning: `static' is not at
> beginning of declaration
> ------------------------------------------------------------------------
>
> They dissapear if i apply this, but i'm not confident enough to commit. This patch does not seem to prevent compilation with other compilers
> ------------------------------------------------------------------------
> --- a/Eigen/src/Core/Product.h
> +++ b/Eigen/src/Core/Product.h
> @@ -232,7 +232,7 @@
>
> template<> struct ei_outer_product_selector<ColMajor> {
> template<typename ProductType, typename Dest>
> - EIGEN_DONT_INLINE static void run(const ProductType& prod, Dest& dest, typename ProductType::Scalar alpha) {
> + static EIGEN_DONT_INLINE void run(const ProductType& prod, Dest& dest, typename ProductType::Scalar alpha) {
> typedef typename Dest::Index Index;
> // FIXME make sure lhs is sequentially stored
> // FIXME not very good if rhs is real and lhs complex while alpha is real too
> @@ -244,7 +244,7 @@
>
> template<> struct ei_outer_product_selector<RowMajor> {
> template<typename ProductType, typename Dest>
> - EIGEN_DONT_INLINE static void run(const ProductType& prod, Dest& dest, typename ProductType::Scalar alpha) {
> + static EIGEN_DONT_INLINE void run(const ProductType& prod, Dest& dest, typename ProductType::Scalar alpha) {
> typedef typename Dest::Index Index;
> // FIXME make sure rhs is sequentially stored
> // FIXME not very good if lhs is real and rhs complex while alpha is real too
>
> ------------------------------------------------------------------------
>
> then, still with gcc 3.3.6, compilation fails anyway with http://freehackers.pastebin.com/mRarbwcp
>
> ** gcc 4.1.2 : tests 451() and 452() fail
> everything's fine ! :-)
>
> ------------------------------------------------------------------------
>
> ** gcc 4.5 : everything's fine ! :-)
>
> Thomas
> --
> Thomas Capricelli <orzel@xxxxxxxxxxxxxxx>
> http://www.freehackers.org/thomas
>
>
>
>