[MATRIX-SIG] Matrix class (obviously)

Jim Rucker jim.rucker@jpl.nasa.gov
Thu, 6 Nov 1997 15:24:35 -0800


------ =_NextPart_000_01BCEAC8.178B5FA0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I looked at the Matrix class in Matrix.py, and didn't see anything =
relating to the determinant of a matrix, so I wrote one myself. After I =
discovered the determinant function in the Linear Algebra file, I =
compared our implementations. I noticed that your implementation =
required the Matrix to be square, and was not made a member function of =
the Matrix class. My implemetation did both of these. I'm attaching a =
file that has this code, plus exp(M), which is inacurate for Matrixes =
with large numbers. It still needs more work, but I'm afraid I don't =
have the time. Let me know what you think of these functions. I haven't =
written much of a test though. Thank you,

-Jim Rucker

 
------ =_NextPart_000_01BCEAC8.178B5FA0
Content-Type: application/octet-stream; name="Matrix.py"
Content-Transfer-Encoding: base64

ZnJvbSBVc2VyQXJyYXkgaW1wb3J0IFVzZXJBcnJheQ0KZnJvbSBOdW1lcmljIGltcG9ydCBtYXRy
aXhtdWx0aXBseQ0KDQpjbGFzcyBNYXRyaXgoVXNlckFycmF5KToNCiAgICBkZWYgX19tdWxfXyhz
ZWxmLCBvdGhlcik6DQoJcmV0dXJuIE1hdHJpeChtYXRyaXhtdWx0aXBseShzZWxmLmFycmF5LG90
aGVyKSkNCg0KICAgIGRlZiBkZXQoc2VsZik6DQogICAgCWlmIHNlbGYuc2hhcGVbMV09PTE6DQog
ICAgCQlyZXR1cm4gc2VsZi5hcnJheVswXVswXQ0KCXRlbXA9TWF0cml4KHRyYW5zcG9zZSh0cmFu
c3Bvc2UoTWF0cml4KHNlbGZbMTpdKSlbMTpdKSkNCglyZXRfdmFsPXNlbGYuYXJyYXlbMF1bMF0q
dGVtcC5kZXQoKQ0KCXNpZ249KC0xKQ0KCWZvciBhIGluIHJhbmdlKDEsc2VsZi5zaGFwZVsxXS0x
KToNCgkJdGVtcD10cmFuc3Bvc2UodHJhbnNwb3NlKE1hdHJpeChbbVs6MV0sbVsyOl1dKSlbMTpd
KQ0KCQl0ZW1wPU1hdHJpeChbdHVwbGUodGVtcFswXVswXSksdHVwbGUodGVtcFsxXVswXSldKQ0K
CQlyZXRfdmFsPXJldF92YWwrc2lnbipzZWxmLmFycmF5W2FdWzBdKnRlbXAuZGV0KCkNCgkJc2ln
bj1zaWduKigtMSkNCgkNCgl0ZW1wPU1hdHJpeCh0cmFuc3Bvc2UodHJhbnNwb3NlKE1hdHJpeChz
ZWxmWzotMV0pKVsxOl0pKQ0KCXJldF92YWw9cmV0X3ZhbCtzaWduKnNlbGYuYXJyYXlbLTFdWzBd
KnRlbXAuZGV0KCkNCglyZXR1cm4gcmV0X3ZhbA0KCQ0KICAgIGRlZiBfX3JtdWxfXyhzZWxmLCBv
dGhlcik6DQoJcmV0dXJuIE1hdHJpeChtYXRyaXhtdWx0aXBseShzZWxmLmFycmF5LG90aGVyKSkN
Cg0KICAgIGRlZiBfX3Bvd19fKHNlbGYsIG90aGVyKToNCiAgICAJaWYgdHlwZShvdGhlcikgPT0g
dHlwZSgwKToNCgkgICAgCXZhbHVlPWlkZW50aXR5KHNlbGYuc2hhcGVbMV0pDQoJCWZvciBhIGlu
IHJhbmdlKG90aGVyKToNCgkJCXZhbHVlPW1hdHJpeG11bHRpcGx5KHZhbHVlLHNlbGYpDQoJCXJl
dHVybiBNYXRyaXgodmFsdWUpDQoJZWxzZToNCgkJcmFpc2UgVHlwZUVycm9yLCAieCoqeSBpcyBu
b3QgaW1wbGVtZW50ZWQgZm9yIHRoaXMgdHlwZSIJDQoNCiAgICBkZWYgX19ycG93X18oc2VsZiwg
b3RoZXIpOg0KCXJhaXNlIFR5cGVFcnJvciwgIngqKnkgbm90IGltcGxlbWVudGVkIGZvciBtYXRy
aWNlcyB5Ig0KICAgIA0KICAgIGRlZiBsbihzZWxmKToNCiAgICAJc2VsZj1zZWxmLWlkZW50aXR5
KHNlbGYuc2hhcGVbMV0pDQogICAgCW5vZj1tYXRyaXhtdWx0aXBseShzZWxmLHNlbGYpDQogICAg
CXZhbHVlPXNlbGYtbm9mLzINCglmb3IgYSBpbiByYW5nZSgzLDEwLDIpOg0KCQlub2Y9bWF0cml4
bXVsdGlwbHkobm9mLHNlbGYpDQoJCXZhbHVlPXZhbHVlK25vZi9hDQoJCW5vZj1tYXRyaXhtdWx0
aXBseShub2Ysc2VsZikNCgkJdmFsdWU9dmFsdWUtbm9mL2ErMQ0KCXJldHVybiBNYXRyaXgodmFs
dWUpDQoNCiAgICBkZWYgZXhwKHNlbGYsZXJyb3I9LjAwMDEpOg0KICAgIAllcnJvcj1wb3coZXJy
b3Isc2VsZi5zaGFwZVsxXSkNCgluPWlkZW50aXR5KHNlbGYuc2hhcGVbMV0pDQoJbT0xDQoJbD1u
DQoJZm9yIGEgaW4gcmFuZ2UoMSwyMCk6DQoJCW49bWF0cml4bXVsdGlwbHkobixzZWxmKS9tDQoJ
CWlmIE1hdHJpeChuKS5kZXQoKSA8IGVycm9yOg0KCQkJYnJlYWsNCgkJbT1tKzENCgkJbD1sK24N
CglyZXR1cm4gTWF0cml4KGwpCQ0KDQpkZWYgZmFjdChuKToNCglpZiB0eXBlKG4pID09IHR5cGUo
MCk6DQoJCWlmIG49PTE6DQoJCQlyZXR1cm4gMQ0KCQlyZXR1cm4gbipmYWN0KG4tMSkgICAgICAg
IAkNCglyYWlzZSBUeXBlRXJyb3IsICJOb3QgYSB2YWxpZCB0eXBlIGZvciBmYWN0b3JpYWwiDQoJ
DQpkZWYgbG4obnVtLGFjYyk6DQoJZXM9KDEsMi43MTgyODE4Mjg0NTksNy4zODkwNTYwOTg5MzEs
MjAuMDg1NTM2OTIzMTksNTQuNTk4MTUwMDMzMTQsIDE0OC40MTMxNTkxMDI2KQ0KCWZvciBhIGlu
IHJhbmdlKDAsNik6DQoJCWlmIG51bTxlc1thXToNCgkJCW51bT0oZmxvYXQobnVtKS9lc1thXSkt
MQ0KCQkJdmFsdWU9YQ0KCQkJYnJlYWsNCgllbHNlOg0KCQl2YWx1ZT0xDQoJCW51bT1mbG9hdChu
dW0pLTENCglydW5tYXQ9bnVtDQoJY291bnQ9MQ0KCQ0KCXdoaWxlIGFicyhudW0vY291bnQpPmFj
YzoNCgkJdmFsdWU9dmFsdWUrcnVubWF0L2NvdW50DQoJCXJ1bm1hdD1ydW5tYXQqbnVtDQoJCWNv
dW50PWNvdW50KzENCgkJdmFsdWU9dmFsdWUtcnVubWF0L2NvdW50DQoJCWNvdW50PWNvdW50KzEN
CgkJcnVubWF0PXJ1bm1hdCpudW0NCglyZXR1cm4gdmFsdWUJDQoJDQppZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOg0KIwlwcmludCBsbigxNDAsLjAwMDAxKQ0KCWZyb20gTnVtZXJpYyBpbXBvcnQg
Kg0KIwltID0gTWF0cml4KCBbWzEsMiwzXSxbMTEsMTIsMTNdLFsyMSwyMiwyM11dKQ0KCW09TWF0
cml4KFtbMS4wLDAsMF0sWzAsMS4wLDBdLFswLDAsMS4wXV0pDQoJcHJpbnQgbS5leHAoKQ0K

------ =_NextPart_000_01BCEAC8.178B5FA0--


_______________
MATRIX-SIG  - SIG on Matrix Math for Python

send messages to: matrix-sig@python.org
administrivia to: matrix-sig-request@python.org
_______________