X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_utils.py;fp=mjo%2Feja%2Feja_utils.py;h=d4e9990ecc6749057905d3b1d5ac700bd34cdc71;hb=8f3ba1d9473195c1cbafe967a127800d90fde3ee;hp=2402d9f0e5f6d1b174690688b8f9b2d7f17eba61;hpb=77f0119f043a9ceac891dc82229e550574a2a03f;p=sage.d.git diff --git a/mjo/eja/eja_utils.py b/mjo/eja/eja_utils.py index 2402d9f..d4e9990 100644 --- a/mjo/eja/eja_utils.py +++ b/mjo/eja/eja_utils.py @@ -230,7 +230,14 @@ def gram_schmidt(v, inner_product=None): """ if inner_product is None: inner_product = lambda x,y: x.inner_product(y) - norm = lambda x: inner_product(x,x).sqrt() + def norm(x): + ip = inner_product(x,x) + # Don't expand the given field; the inner-product's codomain + # is already correct. For example QQ(2).sqrt() returns sqrt(2) + # in SR, and that will give you weird errors about symbolics + # when what's really going wrong is that you're trying to + # orthonormalize in QQ. + return ip.parent()(ip.sqrt()) v = list(v) # make a copy, don't clobber the input