comparison liboctave/CMatrix.cc @ 12065:899122410ea5 release-3-2-x

more fixes & tests for matrix multiply
author Jaroslav Hajek <highegg@gmail.com>
date Sun, 23 Aug 2009 11:11:27 +0200
parents 4c7b51b2541d
children
comparison
equal deleted inserted replaced
12064:8e8da2c36e7e 12065:899122410ea5
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