On Friday, October 10, 2014 1:54:37 PM UTC-7, Dan Drake wrote:
>
> For objects that have lots of methods, it's not very easy to find one by 
> doing 
>
>     X.<TAB> 
>
> since there's just so much. In analogy with search_def, search_src, etc, 
> I wish there was, say, search_methods. On a matrix, for example: 
>
>     search_methods(A, 'eigen') 
>
> which would, in effect, do 
>
>     A.<TAB> | grep eigen 
>
> and give me 
>
> A.eigenmatrix_left 
> A.eigenmatrix_right   
> A.eigenspaces_left     
> A.eigenspaces_right   
> A.eigenvalues         
> A.eigenvectors_left   
> A.eigenvectors_right   
> A.left_eigenmatrix 
> A.left_eigenspaces 
> A.left_eigenvectors 
> A.right_eigenmatrix 
> A.right_eigenspaces 
> A.right_eigenvectors 
>
> I suspect there's a trac ticket related to this but I'm too lazy at the 
> moment to find it. (But not, evidently, too lazy to complain about 
> the issue...) 
>
>
You could do this:

sage: [_ for _ in dir(A) if _.find('eigen') != -1]
['_eigenspace_format',
 'eigenmatrix_left',
 'eigenmatrix_right',
 'eigenspaces_left',
 'eigenspaces_right',
 'eigenvalues',
 'eigenvectors_left',
 'eigenvectors_right',
 'left_eigenmatrix',
 'left_eigenspaces',
 'left_eigenvectors',
 'right_eigenmatrix',
 'right_eigenspaces',
 'right_eigenvectors']

Oh, wait: I just discovered the IPython magic function 'psearch'. I think 
this is the right way to do it:

sage: %psearch A.*eigen*
A.eigenmatrix_left
A.eigenmatrix_right
A.eigenspaces_left
A.eigenspaces_right
A.eigenvalues
A.eigenvectors_left
A.eigenvectors_right
A.left_eigenmatrix
A.left_eigenspaces
A.left_eigenvectors
A.right_eigenmatrix
A.right_eigenspaces
A.right_eigenvectors

That's pretty cool, at least if I can remember it...

  John

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to