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> </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> </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. </FONT></SPAN></DIV> <DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20 size=3D2></FONT></SPAN> </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> </DIV> <DIV><SPAN class=3D118024517-23052008><FONT face=3DArial size=3D2>Also=20 attached is a patch that adds a diag_mult__ method to mtl.h. = 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! Hop= e this=20 helps.</FONT></SPAN></DIV> <DIV><SPAN class=3D118024517-23052008><FONT face=3DArial=20 size=3D2></FONT></SPAN> </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> </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--