New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 788 - Improved the sanity checks done by the BLAS API
Summary: Improved the sanity checks done by the BLAS API
Status: NEW
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - general (show other bugs)
Version: 3.2
Hardware: All All
: Normal Unknown
Assignee: Nobody
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-07 23:02 UTC by Benoit Steiner
Modified: 2014-04-08 00:31 UTC (History)
3 users (show)



Attachments

Description Benoit Steiner 2014-04-07 23:02:34 UTC
The patch at https://bitbucket.org/benoitsteiner/eigen-patches/commits/66baff25a3352309c8966163f532db85603d84d5#chg-blas_check (courtesy of Sameer Agarwal) improves the error checking in complex level3 blas routines:
  * zsyrk, csyrk, zsyr2k, csyr2k were incorrectly handling Adjoint as a valid operation. This is because the OP macro that interprets operations does not differentiate between operations that support the adjoint and the ones that don't. To fix this a new macro REALOP was introduced.
  * zher2k and cher2k implementation had a typo where LDB was referred to as LDA.
Comment 1 Christoph Hertzberg 2014-04-08 00:31:21 UTC
Patch looks generally good.

Maybe it would be better to define OP depending on IS_COMPLEX, instead of defining REAL_OP?
I don't know about the standard BLAS interface, but wouldn't it be ok to interpret adjoint as equivalent to transpose for non-complex types?

Btw: Instead of linking to a commit where you add a patch to your repository, you could simplify things a lot for us, if you either make a pull-request from a commit of the changes to your repository, or by attaching the actual patch. See here about patches:
http://eigen.tuxfamily.org/index.php?title=Mercurial#Generating_a_patch

Note You need to log in before you can comment on or make changes to this bug.