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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to