[Scipy-tickets] [SciPy] #1189: Define operations on LinearOperator instances
SciPy Trac
scipy-tickets@scipy....
Wed Jun 2 08:31:19 CDT 2010
#1189: Define operations on LinearOperator instances
------------------------------------------------+---------------------------
Reporter: barbey | Owner: wnbell
Type: enhancement | Status: needs_review
Priority: normal | Milestone: 0.8.0
Component: scipy.sparse.linalg | Version: 0.7.0
Keywords: LinearOperator, sparse, operations |
------------------------------------------------+---------------------------
Comment(by barbey):
I did some work on "__mul__" to define the multiplication of two
LinearOperator (which is a functional combination). But I preserve its
behavior on vectors and two-dimensional arrays. So, for instance, it will
not break the functions in iterative.py.
In the new patch, I factored out some of the code in "__rmul__". It was
indeed possible but not when multiplying with objects that are not
LinearOperator (since multiplication on matrices is not commutative).
I also added a __pow__ method for positive integers.
I added a separate patch for the transpose as you required.
And another patch for a method which outputs the equivalent dense matrix.
This method is very computer intensive since I basically apply the
operator to each vector of the canonic basis ( [1, 0, ...], [0, 1, 0,
...], etc ...). But I don't know about any other method. However this can
be useful for instance in this context :
A is a LinearOperator of a very rectangular shape. I want to know the
determinant of A.T * A. Since, A is very rectangular, A.T * A is small, so
I can do np.det((A.T * A).dense()) in a very reasonable time.
I will take a look on tests soon.
Any other suggestion is always welcome.
--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1189#comment:5>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
More information about the Scipy-tickets
mailing list