diag_matrix bug

"Aaron Scamehorn" <[email protected]> Fri, 23 May 2008 13:42:59 -0500
Newsgroups gmane.comp.lib.mtl.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C8BD04.D64D2A23
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C8BD04.D64D2A23"



------_=_NextPart_002_01C8BD04.D64D2A23
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello,
=20
I think I've found a bug when multiplying a diagonal Matrix times a
Vector.
=20
It appears that mult_generic__ was being called, picking up the
banded_tag in the diagonal matrix. =20
=20
Attached is a test program which produces the following output:

V=3D
[6,7,8,9,10,]
Diag A=3D
5x5
[
[1,0,0,0,0],
[0,2,0,0,0],
[0,0,3,0,0],
[0,0,0,4,0],
[0,0,0,0,5]
]
Full B=3D
5x5
[
[1,0,0,0,0],
[0,2,0,0,0],
[0,0,3,0,0],
[0,0,0,4,0],
[0,0,0,0,5]
]
Output AxV=3D
[6,12,18,24,30,]
Output BxV=3D
[6,14,24,36,50,]
=20
Also attached is a patch that adds a diag_mult__ method to mtl.h.  I
have to admit: templates as well as matrices are a little out of my
league, but the patch solved my problem!

Great work on the project!  Hope this helps.
=20
Thanks,
Aaron=20

------_=_NextPart_002_01C8BD04.D64D2A23
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii=
">
<META content=3D"MSHTML 6.00.6000.16640" name=3DGENERATOR></HEAD>
<BODY>
<DIV dir=3Dltr align=3Dleft><SPAN class=3D118024517-23052008><FONT face=
=3DArial=20
size=3D2>Hello,</FONT></SPAN></DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial size=3D2>I thin=
k I've found a=20
bug when multiplying a diagonal Matrix times a Vector.</FONT></SPAN></DI=
V>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial size=3D2>It app=
ears that=20
mult_generic__ was being called, picking up the banded_tag in the diagon=
al=20
matrix.&nbsp; </FONT></SPAN></DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial size=3D2>Attach=
ed is a test=20
program which produces the following output:</FONT></SPAN></DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial size=3D2></FONT=
><BR><FONT=20
face=3DArial size=3D2>V=3D<BR>[6,7,8,9,10,]<BR>Diag=20
A=3D<BR>5x5<BR>[<BR>[1,0,0,0,0],<BR>[0,2,0,0,0],<BR>[0,0,3,0,0],<BR>[0,0=
,0,4,0],<BR>[0,0,0,0,5]<BR>]<BR>Full=20
B=3D<BR>5x5<BR>[<BR>[1,0,0,0,0],<BR>[0,2,0,0,0],<BR>[0,0,3,0,0],<BR>[0,0=
,0,4,0],<BR>[0,0,0,0,5]<BR>]<BR>Output=20
AxV=3D<BR>[6,12,18,24,30,]<BR>Output BxV=3D<BR>[6,14,24,36,50,]</FONT></=
DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial size=3D2>Also=20
attached&nbsp;is a patch that adds a diag_mult__ method to mtl.h.&nbsp;=
 I have=20
to admit: templates as well as matrices are a little out of my league,&n=
bsp;but=20
the patch solved my problem!<BR><BR>Great work on the project!&nbsp; Hop=
e this=20
helps.</FONT></SPAN></DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20
size=3D2>Thanks,</FONT></SPAN></DIV>
<DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20
size=3D2>Aaron</FONT>&nbsp;</SPAN></SPAN></DIV></BODY></HTML>

------_=_NextPart_002_01C8BD04.D64D2A23--

------_=_NextPart_001_01C8BD04.D64D2A23
Content-Type: application/octet-stream; name="mtl_bug.cpp"
Content-Transfer-Encoding: base64
Content-Description: mtl_bug.cpp
Content-Disposition: attachment; filename="mtl_bug.cpp"

I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPG10bC9tdGwuaD4KCnVzaW5nIG5hbWVzcGFj
ZSBtdGw7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGRlbnNlMUQ8ZG91YmxlPiBWZWN0
b3I7CnR5cGVkZWYgZXh0ZXJuYWxfdmVjPGRvdWJsZT4gVmVjdG9yRTsKCnR5cGVkZWYgbWF0cml4
PGRvdWJsZSxyZWN0YW5nbGU8PiwgZGVuc2U8ZXh0ZXJuYWw+LCBjb2x1bW5fbWFqb3I+Ojp0eXBl
IE1hdHJpeEU7IAp0eXBlZGVmIG1hdHJpeDxkb3VibGUsIGRpYWdvbmFsPD4sIGJhbmRlZDxleHRl
cm5hbD4sIGNvbHVtbl9tYWpvcj46OnR5cGUgRGlhZ01hdEU7CgoKaW50Cm1haW4gKGludCwgY2hh
ciAqKikKewogIGludCBOID0gNTsKCiAgZG91YmxlIHZ2W10gPSB7Niw3LDgsOSwxMH07CiAgVmVj
dG9yRSBWKHZ2LCBOKTsKICBjb3V0PDwiVj0iPDxlbmRsOwogIHByaW50X3ZlY3RvciggViApOwoK
ICBkb3VibGUgZG1bXSA9IHsgMSwyLDMsNCw1IH07CiAgRGlhZ01hdEUgQShkbSwgTiwgTiwgMCwg
MCApOwogIGNvdXQ8PCJEaWFnIEE9Ijw8ZW5kbDsKICBwcmludF9hbGxfYmFuZGVkKEEsMCwwKTsK
CiAgZG91YmxlIHJtW10gPSB7IDEsIDAsIDAsIDAsIDAsCiAgICAgICAgICAgICAgICAgIDAsIDIs
IDAsIDAsIDAsCiAgICAgICAgICAgICAgICAgIDAsIDAsIDMsIDAsIDAsCiAgICAgICAgICAgICAg
ICAgIDAsIDAsIDAsIDQsIDAsCiAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDUgfTsKICBN
YXRyaXhFIEIocm0sIE4sIE4gKTsKICBjb3V0PDwiRnVsbCBCPSI8PGVuZGw7CiAgcHJpbnRfYWxs
X21hdHJpeChCKTsKCgogIFZlY3RvciBBeFYoIE4gKTsKICBtdWx0KCBBLCBWLCBBeFYpOwogIGNv
dXQ8PCJPdXRwdXQgQXhWPSI8PGVuZGw7CiAgcHJpbnRfdmVjdG9yKEF4Vik7CgogIFZlY3RvciBC
eFYoIE4gKTsKICBtdWx0KCBCLCBWLCBCeFYpOwogIGNvdXQ8PCJPdXRwdXQgQnhWPSI8PGVuZGw7
CiAgcHJpbnRfdmVjdG9yKEJ4Vik7Cn0K

------_=_NextPart_001_01C8BD04.D64D2A23
Content-Type: application/octet-stream; name="mtl_diag.patch"
Content-Transfer-Encoding: base64
Content-Description: mtl_diag.patch
Content-Disposition: attachment; filename="mtl_diag.patch"

LS0tIG9sZC9tdGwtMi4xLjItMjMvbXRsL210bC5oCTIwMDctMDQtMTAgMTU6MDM6MTAuMDAwMDAw
MDAwIC0wNTAwCisrKyBuZXcvbXRsLTIuMS4yLTIzL210bC9tdGwuaAkyMDA4LTA1LTIzIDEyOjI3
OjQ5LjAwMDAwMDAwMCAtMDUwMApAQCAtMTUyOSw2ICsxNTI5LDI2IEBACiAgIH0KIH0KICAgCisv
LyBBIGlzIHJvdyBvcmllbnRlZAordGVtcGxhdGUgPGNsYXNzIE1hdHJpeCwgY2xhc3MgVmVjWCwg
Y2xhc3MgVmVjWj4KK2lubGluZSB2b2lkCitkaWFnX211bHQoY29uc3QgTWF0cml4JiBBLCBjb25z
dCBWZWNYJiB4eCwgVmVjWiYgenosIAorICAgICAgICAgIHJvd190YWcgKSBNVExfVEhST1dfQVNT
RVJUSU9OCit7CisgICB0eXBlbmFtZSBNYXRyaXg6OmNvbnN0X2l0ZXJhdG9yIEFfazsKKyAgIHR5
cGVuYW1lIE1hdHJpeDo6T25lRDo6Y29uc3RfaXRlcmF0b3IgQV9raTsKKyAKKyAgIEFfayA9IEEu
YmVnaW4oKTsKKyAgIHdoaWxlIChub3RfYXQoQV9rLCBBLmVuZCgpKSkgeworICAgICBBX2tpID0g
KCpBX2spLmJlZ2luKCk7CisgICAgIHdoaWxlIChub3RfYXQoQV9raSwgKCpBX2spLmVuZCgpKSkg
eworICAgICAgIHp6WyBBX2tpLnJvdygpXSArPSAqQV9raSAqIHh4WyBBX2tpLnJvdygpXTsKKyAg
ICAgICArK0Ffa2k7CisgICAgIH0KKyAgICAgKytBX2s7CisgICB9Cit9CisgIAogLy8geCBpcyBz
cGFyc2UKIC8vIEEgaXMgcm93IG9yaWVudGVkCiB0ZW1wbGF0ZSA8Y2xhc3MgTWF0cml4LCBjbGFz
cyBWZWNYLCBjbGFzcyBWZWNZPgpAQCAtMTU0NSw2ICsxNTY1LDE1IEBACiAKIHRlbXBsYXRlIDxj
bGFzcyBNYXRyaXgsIGNsYXNzIFZlY1gsIGNsYXNzIFZlY1o+CiBpbmxpbmUgdm9pZAorbXVsdF9z
aGFwZV9fKGNvbnN0IE1hdHJpeCYgQSwgY29uc3QgVmVjWCYgeCwgVmVjWiYgeiwKKyAgICAgICAg
ICAgICBkaWFnb25hbF90YWcgKSBNVExfVEhST1dfQVNTRVJUSU9OCit7CisgIHR5cGVkZWYgdHlw
ZW5hbWUgbWF0cml4X3RyYWl0czxNYXRyaXg+OjpvcmllbnRhdGlvbiBPcmllbjsKKyAgZGlhZ19t
dWx0KEEsIHgsIHosIE9yaWVuKCkgKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIE1hdHJpeCwgY2xh
c3MgVmVjWCwgY2xhc3MgVmVjWj4KK2lubGluZSB2b2lkCiBtdWx0X3NoYXBlX18oY29uc3QgTWF0
cml4JiBBLCBjb25zdCBWZWNYJiB4LCBWZWNaIHosCiAgICAgICAgICAgICAgcmVjdGFuZ2xlX3Rh
ZykgTVRMX1RIUk9XX0FTU0VSVElPTgogewo=

------_=_NextPart_001_01C8BD04.D64D2A23
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/
------_=_NextPart_001_01C8BD04.D64D2A23--