comparison liboctave/CMatrix.cc @ 9528:ec066ba012c8

more fixes & tests for matrix multiply
author Jaroslav Hajek <highegg@gmail.com>
date Sun, 16 Aug 2009 08:25:24 +0200
parents f3ebc728ffd7
children 3d6a9aea2aea
comparison
equal deleted inserted replaced
9527:6a9fd5f653c9 9528:ec066ba012c8
3753 %!shared M, cv, rv 3753 %!shared M, cv, rv
3754 %! M = randn(10,10)+i*rand(10,10); 3754 %! M = randn(10,10)+i*rand(10,10);
3755 %! cv = randn(10,1)+i*rand(10,1); 3755 %! cv = randn(10,1)+i*rand(10,1);
3756 %! rv = randn(1,10)+i*rand(1,10); 3756 %! rv = randn(1,10)+i*rand(1,10);
3757 %!assert([M*cv,M*cv],M*[cv,cv],1e-14) 3757 %!assert([M*cv,M*cv],M*[cv,cv],1e-14)
3758 %!assert([M.'*cv,M.'*cv],M.'*[cv,cv],1e-14)
3759 %!assert([M'*cv,M'*cv],M'*[cv,cv],1e-14)
3758 %!assert([rv*M;rv*M],[rv;rv]*M,1e-14) 3760 %!assert([rv*M;rv*M],[rv;rv]*M,1e-14)
3761 %!assert([rv*M.';rv*M.'],[rv;rv]*M.',1e-14)
3762 %!assert([rv*M';rv*M'],[rv;rv]*M',1e-14)
3759 %!assert(2*rv*cv,[rv,rv]*[cv;cv],1e-14) 3763 %!assert(2*rv*cv,[rv,rv]*[cv;cv],1e-14)
3760 */ 3764 */
3761 3765
3762 static const char * 3766 static const char *
3763 get_blas_trans_arg (bool trans, bool conj) 3767 get_blas_trans_arg (bool trans, bool conj)
3851 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (ctransa, 1), 3855 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (ctransa, 1),
3852 lda, tda, 1.0, a.data (), lda, 3856 lda, tda, 1.0, a.data (), lda,
3853 b.data (), 1, 0.0, c, 1 3857 b.data (), 1, 0.0, c, 1
3854 F77_CHAR_ARG_LEN (1))); 3858 F77_CHAR_ARG_LEN (1)));
3855 } 3859 }
3856 else if (a_nr == 1 && ! conja) 3860 else if (a_nr == 1 && ! conja && ! conjb)
3857 { 3861 {
3858 const char *crevtransb = get_blas_trans_arg (! transb, conjb); 3862 const char *crevtransb = get_blas_trans_arg (! transb, conjb);
3859 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (crevtransb, 1), 3863 F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 (crevtransb, 1),
3860 ldb, tdb, 1.0, b.data (), ldb, 3864 ldb, tdb, 1.0, b.data (), ldb,
3861 a.data (), 1, 0.0, c, 1 3865 a.data (), 1, 0.0, c, 1