[Matrix-SIG] More patches for UserArray and Numeric
Charles G Waldman
cgw@fnal.gov
Tue, 25 May 1999 15:59:16 -0500 (CDT)
--P/w5pKn1kt
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit
Below are two more patches against LLNLDistribution11. The first one,
for UserArray.py is to be applied on top of the indentation-fixing
patch I recently posted. This patch fixes some problems with the
typecode method, and allows one to assign directly to the "shape"
attribute, as one can do for Numeric arrays.
The second patch, for Matrix.py, fixes a few errors. First is that
the __init__ for the base class UserArray is not called.
Additionally, I now allow square matrices to be raised to positive or
negative integer or long integer powers. Of course if the power is
negative and the matrix is non-invertible, an exception is raised.
Patch #2 for UserArray:
--P/w5pKn1kt
Content-Type: application/octet-stream
Content-Description: Patch #2 for UserArray
Content-Disposition: attachment;
filename="Upatch2.py"
Content-Transfer-Encoding: base64
LS0tIFVzZXJBcnJheS5weQkxOTk5LzA1LzI1IDIwOjQ0OjQwCTEuMgorKysgVXNlckFycmF5
LnB5CTE5OTkvMDUvMjUgMjA6NDY6MDUKQEAgLTcwLDEzICs3MCwxOSBAQAogICAgIGRlZiBi
eXRlc3dhcHBlZChzZWxmKTogcmV0dXJuIHNlbGYuX3JjKHNlbGYuYXJyYXkuYnl0ZXN3YXBw
ZWQoKSkKICAgICBkZWYgYXN0eXBlKHNlbGYsIHR5cGVjb2RlKTogcmV0dXJuIHNlbGYuX3Jj
KHNlbGYuYXJyYXkuYXNUeXBlKHR5cGVjb2RlKSkKICAgIAotICAgIGRlZiB0eXBlY29kZShz
ZWxmKTogcmV0dXJuIHNlbGYuYXJyYXkuX3R5cGVjb2RlCisgICAgZGVmIHR5cGVjb2RlKHNl
bGYpOiByZXR1cm4gc2VsZi5hcnJheS50eXBlY29kZSgpCiAgICAgZGVmIGl0ZW1zaXplKHNl
bGYpOiByZXR1cm4gc2VsZi5hcnJheS5pdGVtc2l6ZSgpCiAgICAgZGVmIGlzY29udGlndW91
cyhzZWxmKTogcmV0dXJuIHNlbGYuYXJyYXkuaXNjb250aWd1b3VzKCkKIAogICAgIGRlZiBf
cmMoc2VsZiwgYSk6CiAgICAgICAgCWlmIGxlbihzaGFwZShhKSkgPT0gMDogcmV0dXJuIGEK
ICAgICAgICAJZWxzZTogcmV0dXJuIHNlbGYuX19jbGFzc19fKGEpCisKKyAgICBkZWYgX19z
ZXRhdHRyX18oc2VsZixhdHRyLHZhbHVlKToKKyAgICAgICAgaWYgYXR0cj09J3NoYXBlJzoK
KyAgICAgICAgICAgIHNlbGYuYXJyYXkuc2hhcGU9dmFsdWUKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHNlbGYuX19kaWN0X19bYXR0cl09dmFsdWUKIAogCiAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCg==
--P/w5pKn1kt
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit
Patch for Matrix.py, implementing M**n:
--P/w5pKn1kt
Content-Type: application/octet-stream
Content-Description: Patch for Matrix.py
Content-Disposition: attachment;
filename="mpatch"
Content-Transfer-Encoding: base64
LS0tIE1hdHJpeC5weQlUaHUgQXByICAxIDE4OjE0OjQ1IDE5OTkKKysrIC4uLy4uLy4uL0xM
TkxEaXN0cmlidXRpb24xMWEvTnVtZXJpY2FsL0xpYi9NYXRyaXgucHkJVHVlIE1heSAyNSAx
NTo1NDo0NyAxOTk5CkBAIC02LDggKzYsMTIgQEAKIAogZnJvbSBVc2VyQXJyYXkgaW1wb3J0
IFVzZXJBcnJheSwgYXNhcnJheQogZnJvbSBOdW1lcmljIGltcG9ydCBtYXRyaXhtdWx0aXBs
eQorZnJvbSBMaW5lYXJBbGdlYnJhIGltcG9ydCBpbnZlcnNlCiAKIGNsYXNzIE1hdHJpeChV
c2VyQXJyYXkpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhLCB0eXBlY29kZT1Ob25l
KToKKyAgICAgICAgVXNlckFycmF5Ll9faW5pdF9fKHNlbGYsZGF0YSx0eXBlY29kZSkKKyAg
ICAgICAgCiAgICAgZGVmIF9fbXVsX18oc2VsZiwgb3RoZXIpOgogCXJldHVybiBzZWxmLl9y
YyhtYXRyaXhtdWx0aXBseShzZWxmLmFycmF5LCBhc2FycmF5KG90aGVyKSkpCiAKQEAgLTE1
LDcgKzE5LDIyIEBACiAJcmV0dXJuIHNlbGYuX3JjKG1hdHJpeG11bHRpcGx5KGFzYXJyYXko
b3RoZXIpLCBzZWxmLmFycmF5KSkKIAogICAgIGRlZiBfX3Bvd19fKHNlbGYsIG90aGVyKToK
LQlyYWlzZSBUeXBlRXJyb3IsICJ4Kip5IG5vdCBpbXBsZW1lbnRlZCBmb3IgbWF0cmljZXMg
eCIKKyAgICAgICAgc2hhcGUgPSBzZWxmLmFycmF5LnNoYXBlCisgICAgICAgIGlmIGxlbihz
aGFwZSkhPTIgb3Igc2hhcGVbMF0hPXNoYXBlWzFdOgorICAgICAgICAgICAgcmFpc2UgIlR5
cGUgZXJyb3I6IG1hdHJpeCBpcyBub3Qgc3F1YXJlIgorICAgICAgICBpZiB0eXBlKG90aGVy
KSBpbiAodHlwZSgxKSwgdHlwZSgxTCkpOgorICAgICAgICAgICAgaWYgb3RoZXI9PTA6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIE1hdHJpeChpZGVudGl0eShzaGFwZVswXSkpCisgICAg
ICAgICAgICBpZiBvdGhlcjwwOgorICAgICAgICAgICAgICAgIHJlc3VsdD1pbnZlcnNlKHNl
bGYuYXJyYXkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdD1z
ZWxmCisgICAgICAgICAgICB3aGlsZShvdGhlcj4xKToKKyAgICAgICAgICAgICAgICByZXN1
bHQ9cmVzdWx0KnNlbGYKKyAgICAgICAgICAgICAgICBvdGhlcj1vdGhlci0xCisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBU
eXBlRXJyb3IsICJleHBvbmVudCBtdXN0IGJlIGFuIGludGVnZXIiCiAKICAgICBkZWYgX19y
cG93X18oc2VsZiwgb3RoZXIpOgogCXJhaXNlIFR5cGVFcnJvciwgIngqKnkgbm90IGltcGxl
bWVudGVkIGZvciBtYXRyaWNlcyB5Igo=
--P/w5pKn1kt--