On Sunday, November 26, 2017 at 8:16:53 AM UTC, Ralf Stephan wrote:
>
> On Sunday, November 26, 2017 at 12:54:04 AM UTC+1, Richard_L wrote:
>>
>> Calling ...simplify_trig() results in a traceback, somewhat elided here:
>>
>
> So what's behind that ellipsis?
>
> You see, we have doctests for simplify_trig() that are constantly checked
> by our patchbots so we would know if simplify_trig() per se would suddenly
> fail.
>
> Please give the full command that causes the error. Always.
>
There is a worksheet attached, it can be used to reproduce the error;
however, I indeed recommend to supply the plain *.sage
file instead; it's much less prone to various quirks of binary formats).
There is a "Text" button that can be used to show the plain text version of
the worksheet; one can copy/paste it into an editor, and remove few things
like extra `\ and ... to obtain
a working file that one can load() into a terminal Sage session.
(maybe there are even better ways to get this, I don't know).
Anyhow, this is the full trace (no need for #22801 to reproduce):
sage: ginv = g.inverse()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-e4f0f160d75a> in <module>()
----> 1 ginv = g.inverse()
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/manifolds/differentiable/metric.pyc
in inverse(self)
690 # Is the inverse metric up to date ?
691 for dom, rst in self._restrictions.items():
--> 692 self._inverse._restrictions[dom] = rst.inverse() #
forces the
693 # update of the
restriction
694 return self._inverse
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/manifolds/differentiable/metric.pyc
in inverse(self)
2240 for j in range(i, nsi):
2241
cinv_scal[(i,j)].add_expr(simplify_chain_real(
-> 2242
gmat_inv[i-si,j-si]),
2243 chart=chart)
2244 for i in range(si, nsi):
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/manifolds/utilities.pyc
in simplify_chain_real(expr)
343 """
344 expr = expr.simplify_factorial()
--> 345 expr = expr.simplify_trig()
346 expr = expr.simplify_rational()
347 expr = simplify_sqrt_real(expr)
/home/dima/Sage/sage-dev/src/sage/symbolic/expression.pyx in
sage.symbolic.expression.Expression.simplify_trig
(build/cythonized/sage/symbolic/expression.cpp:56589)()
10013 # right otherwise!
10014 if expand:
> 10015 return
self.parent()(self._maxima_().trigexpand().trigsimp())
10016 else:
10017 return self.parent()(self._maxima_().trigsimp())
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
in __call__(self, *args, **kwds)
655
656 def __call__(self, *args, **kwds):
--> 657 return self._obj.parent().function_call(self._name,
[self._obj] + list(args), kwds)
658
659 def help(self):
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
in function_call(self, function, args, kwds)
576 [s.name() for s in args],
577 ['%s=%s'%(key,value.name())
for key, value in kwds.items()])
--> 578 return self.new(s)
579
580 def _function_call_string(self, function, args, kwds):
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
in new(self, code)
345
346 def new(self, code):
--> 347 return self(code)
348
349
###################################################################
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
in __call__(self, x, name)
280
281 if isinstance(x, string_types):
--> 282 return cls(self, x, name=name)
283 try:
284 return self._coerce_from_special_method(x)
/home/dima/Sage/sage-dev/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc
in __init__(self, parent, value, is_name, name)
695 self._name = parent._create(value, name=name)
696 except (TypeError, RuntimeError, ValueError) as x:
--> 697 raise TypeError(x)
698
699 def _latex_(self):
TypeError: ECL says: THROW: The catch RAT-ERR is undefined.
sage:
And this is the plain Sage code to get this error:
# trac 22801 on top of ...
version()
Parallelism().set(nproc=1)
var('rho12,rho13,rho23', domain='real')
assume(rho12>0, rho13>0, rho23>0)
var('r12,r13,r23', domain='real')
var('m1 m2 m3', domain='real')
var('mu12,mu13,mu23', domain='real')
assume(m1>0, m2>0, m3>0)
#m1=1; m2=1; m3=1
#
m3 = m2 #Extra constraint for 2 electrons
# N.B.: If all {m1,m2,m3} are in SR and no two are equal, G.simplify_full()
will seg-fault.
#
mu12 = 1/m1+1/m2; mu13 = 1/m1+1/m3; mu23 = 1/m2+1/m3;
rho12 = r12^2; rho13 = r13^2; rho23 = r23^2
Ginv = matrix([[1/mu12, 1/m1*(rho12+rho13-rho23)/(2*r12*r13),
1/m2*(rho12+rho23-rho13)/(2*r12*r23)],
[1/m1*(rho12+rho13-rho23)/(2*r12*r13), 1/mu13,
1/m3*(rho13+rho23-rho12)/(2*r13*r23)],
[1/m2*(rho12+rho23-rho13)/(2*r12*r23),
1/m3*(rho13+rho23-rho12)/(2*r13*r23), 1/mu23]])
G = Ginv.inverse(); G.simplify_full()
(G*Ginv).simplify_full(); #(Ginv*G).simplify_full() # Check 2
M = Manifold(3,'R^3',field='real',start_index=1)
# The following choice seems not to matter. The code always goes through
manifolds/utilities.py where it calls simplify_trig(), which dives down the
rat-hole.
###
# commented out the following line to remove dependence on #22801
# M.set_calculus_method('SR') # N.B. 'sympy' fails w/ nproc>1 (above)
###
U = M.open_subset('U')
Rho.<r12,r13,r23> = U.chart("r12:(0,+oo) r13:(0,+oo) r23:(0,+oo)")
Rho.add_restrictions([r23<r12+r13, r13<r12+r23, r12<r13+r23])
g = M.riemannian_metric('g');
g[:] = G[:].simplify_full()
#g.display()
Rho.domain(); Rho.parent()
# Check rij's
r12.is_real(); r12.is_positive(); bool(rho12==r12^2)
# Pekeris coordinates
Tau.<u1,u2,u3> = U.chart("u1:(0,+oo) u2:(0,+oo) u3:(0,+oo)")
Rho_Tau = Rho.transition_map(Tau, ((r12+r13-r23)/2, (r12-r13+r23)/2,
(-r12+r13+r23)/2))
Tau_Rho = Rho_Tau.inverse()
U.set_default_chart(Tau)
U.set_default_frame(Tau.frame())
Rho_Tau.display(); Tau_Rho.display();
U.atlas(); Rho.frame(); Tau.frame()
ginv = g.inverse()
#-----
#Dima
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.