X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_utils.py;h=832dcef1fac0baa573b4883bc4e2ddd3fbfd55a8;hb=ff8c9b19da5ed821366a491a95b4f6c946f315ae;hp=81b5634bc921736b0d007f3df04013d0dc6df265;hpb=91e2cb17af6ef788820dd6975335457411ecc8ae;p=sage.d.git diff --git a/mjo/eja/eja_utils.py b/mjo/eja/eja_utils.py index 81b5634..832dcef 100644 --- a/mjo/eja/eja_utils.py +++ b/mjo/eja/eja_utils.py @@ -2,57 +2,6 @@ from sage.functions.other import sqrt from sage.matrix.constructor import matrix from sage.modules.free_module_element import vector -def _change_ring(x, R): - r""" - Change the ring of a vector, matrix, or a cartesian product of - those things. - - SETUP:: - - sage: from mjo.eja.eja_utils import _change_ring - - EXAMPLES:: - - sage: v = vector(QQ, (1,2,3)) - sage: m = matrix(QQ, [[1,2],[3,4]]) - sage: _change_ring(v, RDF) - (1.0, 2.0, 3.0) - sage: _change_ring(m, RDF) - [1.0 2.0] - [3.0 4.0] - sage: _change_ring((v,m), RDF) - ( - [1.0 2.0] - (1.0, 2.0, 3.0), [3.0 4.0] - ) - sage: V1 = cartesian_product([v.parent(), v.parent()]) - sage: V = cartesian_product([v.parent(), V1]) - sage: V((v, (v, v))) - ((1, 2, 3), ((1, 2, 3), (1, 2, 3))) - sage: _change_ring(V((v, (v, v))), RDF) - ((1.0, 2.0, 3.0), ((1.0, 2.0, 3.0), (1.0, 2.0, 3.0))) - - """ - try: - return x.change_ring(R) - except AttributeError: - try: - from sage.categories.sets_cat import cartesian_product - if hasattr(x, 'element_class'): - # x is a parent and we're in a recursive call. - return cartesian_product( [_change_ring(x_i, R) - for x_i in x.cartesian_factors()] ) - else: - # x is an element, and we want to change the ring - # of its parent. - P = x.parent() - Q = cartesian_product( [_change_ring(P_i, R) - for P_i in P.cartesian_factors()] ) - return Q(x) - except AttributeError: - # No parent for x - return x.__class__( _change_ring(x_i, R) for x_i in x ) - def _scale(x, alpha): r""" Scale the vector, matrix, or cartesian-product-of-those-things