{5} Assigned, Active Tickets by Owner (Full Description) (9849 matches)

List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.

Results (1 - 100 of 9849)

1 2 3 4 5 6 7 8 9 10 11
Ticket Summary Component Milestone Type Created
Description
#6134 [with patch, positive review] Fix SR coercion issue with numpy.float128 symbolics sage-4.0 defect 05/26/09

On 32-bit boxes, numpy does not build a float128.


#8225 %time now hugely broken in sagenb-0.7.4 (sage-4.3.2) notebook sage-4.3.4 defect 02/09/10

On Tue, Feb 9, 2010 at 1:22 PM, finotti <luis.finotti@gmail.com> wrote:
> Dear all,
>
> Cells starting with "%time" stopped working with 4.3.2.  (It works
> with 4.3.1.)  Is it no long supported or is it a bug? (time still
> works with the command line.)
>
> Running on Linux 32-bit, ubuntu binary.
>
> Thanks,

Wow, what a horrible, horrible regression! Indeed, I've confirmed that what happens is that doing %time causes the notebook to hang forever, and be pretty broken thereafter. Ouch. The issue was reported at these  sage-support and  sage-notebook threads.


#8746 Equality of posets element is very slow combinatorics sage-4.4.1 defect 04/22/10

This is due to comparing the parent which can indeed be very slow. However most of the time when comparing x and y, the two parent are identical and are better compared with is. Here is the results:

Before the patch:

sage: P = Posets.ChainPoset(30)
sage: %time len([x == y for x in P for y in P])
CPU times: user 18.05 s, sys: 0.04 s, total: 18.09 s
Wall time: 18.25 s
900

After the patch:

sage: P = Posets.ChainPoset(30)
sage: %time len([x == y for x in P for y in P])
CPU times: user 0.03 s, sys: 0.00 s, total: 0.03 s
Wall time: 0.02 s
900

Cheers,

Florent


#5556 [with patch, positive review] symbolic gamma function is incoherent symbolics sage-4.2 defect 03/17/09

So this is incredibly awful:

sage: gamma(RealField(100)(3/4))
1.2254167024651776451290983034
sage: gamma(3/4).n(100)
1.2254167024651776429777783051

(for the record, the first one is correct)

and this doesn't agree with that:

sage: log(2).n(100)
0.69314718055994530941723212146
sage: log(RealField(2))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/Users/ncalexan/Devel/RiemannTheta/riemann_theta.py in <module>()

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in log(x, base)
   9242             return x.log()
   9243         except AttributeError: 
-> 9244             return ln(x)
   9245     else:
   9246         try:

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in ln(x)
   9189         0.693147180559945
   9190     """
-> 9191     return function_log(x)
   9192 
   9193 def log(x, base=None):

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in __call__(self, x, *args)
   7542             return getattr(x, self._repr_())(*args)
   7543         except AttributeError:
-> 7544             return SymbolicComposition(self, SR(x))
   7545 
   7546     def _approx_(self, x):  # must *always* be called with a float x as input.

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in __call__(self, x)
    504                 msg, s, pos = err.args
    505                 raise TypeError, "%s: %s !!! %s" % (msg, s[:pos], s[pos:])
--> 506         return self._coerce_impl(x)
    507 
    508     def _coerce_impl(self, x):

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in _coerce_impl(self, x)
    566             return self(x._sage_())
    567         else:
--> 568             raise TypeError, "cannot coerce type '%s' into a SymbolicExpression."%type(x)
    569 
    570     def _repr_(self):

TypeError: cannot coerce type '<type 'sage.rings.real_mpfr.RealField'>' into a SymbolicExpression.
sage: log(RealField(2))

#6465 Derivative D acts wrongly on symbolic integration symbolics sage-4.3.3 defect 07/04/09

In new symbolics, derivative operator does not know how to act on symbolic integration.

sage: f(x) = function('f',x)
sage: g = integrate(f(x),x)
sage: g.diff(x)
D[0](integrate)(f(x), x)*D[0](f)(x) + D[1](integrate)(f(x), x)

Patches:

  • Both patches should be applied in order (spkg is already included in sage-4.1.1).

Apart from solving this bug it introduces couple of new features (by moving it into new symbolics' SFunction sub-class)

(1) Stricter syntax:

 http://groups.google.com/group/sage-devel/browse_thread/thread/3e98841311653d7a

(2) Numerical approximation using .n() method

(3) Updated "integrate?" docstring

(4) Graceful handling of situations where integration is specified w.r.t. an expression

 http://groups.google.com/group/sage-devel/browse_thread/thread/cd9f91338635ada9

(4) Behind the scene it provides a framework to hook up easily new integration algorithm written within sage.


#6862 Mixing of different domains for symbolic variables symbolics defect 09/02/09

From suge-support

On Sep 1, 11:35 pm, Mani chandra <mchan...@…> wrote:

Mani chandra wrote:

sage: x = a + I*b
sage: real(x.conjugate().simplify())
real_part(a) + imag_part(b)
sage: real(x.conjugate())
real_part(a) - imag_part(b)

This seems to be happening because maxima(via simplify) treats variables as real whereas pynac treats as complex.

sage: x.conjugate()
conjugate(a) - I*conjugate(b)

sage: x.conjugate().simplify()
a - I*b

#7150 Wrong substitution implementation for fraction fields symbolics sage-4.1.2 defect 10/07/09

I am getting this in 4.1.1 and find it really frustrating (especially since it took me several hours to catch):

sage: QQ["x", "y"].inject_variables()
Defining x, y
sage: e1 = x^2*y^3 - x^2*y - x*y
sage: e2 = e1.parent().fraction_field()(e1)
sage: print e2
x^2*y^3 - x^2*y - x*y
sage: print e2.subs(y=SR("s"))
x^2*s^3 - (x^2 - x)*s

The last line is wrong!


#2430 is_EuclideanDomain() gives wrong answers commutative algebra sage-duplicate/invalid/wontfix defect 03/08/08

In 2.10.2 and 2.10.3.rc2:

sage: is_EuclideanDomain(ZZ)
False

I looked to whether any of Sage's rings would ever return True for this function, and came up with pAdicRingGeneric and no others:

sage: is_EuclideanDomain(pAdicRing(7))
True

So this idea (to have EuclideanDomains as a class) just has not been properly implemented. As a start we could make rings which are certainly Euclidean (e,g, ZZ and univariate polynomials over a field) be derived from EuclideanDomain instead of PrincipalIdealDomain as they are now.

That would not be a complete solution, since (for example) some rings of integers of number fields are Euclidean, though it is not easy to say which; and there is no functionality to answer the question "is R Euclidean" except to see if R's class is (derived from) EuclideanDomain, which for rings of integers it never will be!

One other puzzling -- and inconsistent -- thing is that EuclideanDomainElement has a broader scope than EuclideanDomain:

sage: is_EuclideanDomain(ZZ)
False
sage: is_EuclideanDomainElement(ZZ(1))
True

sage: is_EuclideanDomain(R)
False
sage: is_EuclideanDomainElement(x)
True

#2559 issue with roots() over Algebraic Real field commutative algebra sage-duplicate/invalid/wontfix defect 03/16/08

I can't say much about this one:

sage: M

[[-1.2859513130484710 .. -1.2859513130484707] [0.48604391035188904 .. 0.48604391035188910]]
[  [2.8742392060133346 .. 2.8742392060133351] [0.18370733043549580 .. 0.18370733043549584]]
sage: M.parent()
Full MatrixSpace of 2 by 2 dense matrices over Algebraic Real Field
sage: M.charpoly()
x^2 + [1.1022439826129748 .. 1.1022439826129751]*x + [-1.6332451457675854 .. -1.6332451457675851]
sage: M.charpoly().parent()
Univariate Polynomial Ring in x over Algebraic Real Field
sage: M.charpoly().roots()
Exception exceptions.AttributeError: "'sage.rings.complex_interval.ComplexIntervalFieldEl' object has no attribute 'lower'" in 'sage.rings.polynomial.polynomial_element.Polynomial_generic_dense.__normalize' ignored
---------------------------------------------------------------------------
<type 'exceptions.AttributeError'>        Traceback (most recent call last)

/Users/ncalexan/Documents/School/MATH235/genus2cm/<ipython console> in <module>()

/Users/ncalexan/Documents/School/MATH235/genus2cm/polynomial_element.pyx in sage.rings.polynomial.polynomial_element.Polynomial.roots()

/Users/ncalexan/Documents/School/MATH235/genus2cm/real_roots.pyx in sage.rings.polynomial.real_roots.real_roots()

/Users/ncalexan/Documents/School/MATH235/genus2cm/polynomial_element.pyx in sage.rings.polynomial.polynomial_element.Polynomial.squarefree_decomposition()

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.PrincipalIdealDomainElement.gcd()

/Users/ncalexan/sage-2.10.3.rc3/local/lib/python2.5/site-packages/sage/rings/polynomial/polynomial_element_generic.py in _gcd(self, other)
    542         Return the GCD of self and other, as a monic polynomial.
    543         """
--> 544         g = EuclideanDomainElement._gcd(self, other)
    545         c = g.leading_coefficient()
    546         if c.is_unit():

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.EuclideanDomainElement._gcd()

/Users/ncalexan/sage-2.10.3.rc3/local/lib/python2.5/site-packages/sage/rings/polynomial/polynomial_element_generic.py in quo_rem(self, other)
    533             aaa = (R.leading_coefficient()/B.leading_coefficient())
    534             bbb = X**(R.degree()-B.degree())
--> 535             S = aaa * bbb
    536             Q += S
    537             R -= S*B            

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.RingElement.__mul__()

/Users/ncalexan/Documents/School/MATH235/genus2cm/coerce.pyx in sage.structure.coerce.CoercionModel_cache_maps.bin_op_c()

/Users/ncalexan/Documents/School/MATH235/genus2cm/action.pyx in sage.categories.action.Action._call_c()

/Users/ncalexan/Documents/School/MATH235/genus2cm/coerce.pyx in sage.structure.coerce.LeftModuleAction._call_c_impl()

/Users/ncalexan/Documents/School/MATH235/genus2cm/coerce.pxi in sage.structure.coerce._rmul_c()

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.ModuleElement._rmul_()

/Users/ncalexan/Documents/School/MATH235/genus2cm/polynomial_element.pyx in sage.rings.polynomial.polynomial_element.Polynomial_generic_dense._rmul_c_impl()

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.Element.__nonzero__()

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.Element.__richcmp__()

/Users/ncalexan/Documents/School/MATH235/genus2cm/element.pyx in sage.structure.element.Element._richcmp()

/Users/ncalexan/sage-2.10.3.rc3/local/lib/python2.5/site-packages/sage/rings/qqbar.py in __cmp__(self, other)
   2752         if self is other: return 0
   2753         if other._descr.is_rational() and other._descr.rational_value() == 0:
-> 2754             return self.sign()
   2755         elif self._descr.is_rational() and self._descr.rational_value() == 0:
   2756             return -other.sign()

/Users/ncalexan/sage-2.10.3.rc3/local/lib/python2.5/site-packages/sage/rings/qqbar.py in sign(self)
   2855             0
   2856         """
-> 2857         if self._value.lower() > 0:
   2858             return 1
   2859         elif self._value.upper() < 0:

<type 'exceptions.AttributeError'>: 'sage.rings.complex_interval.ComplexIntervalFieldEl' object has no attribute 'lower'

#5153 bug in simon_two_descent for elliptic curves elliptic curves sage-4.5.3 defect 02/01/09

We have

sage: E = EllipticCurve('65a1')
sage: G = E.change_ring(QuadraticField(-56,'a'))
sage: G.simon_two_descent()
(3, 4, [(-9/4 : -3/8*a + 9/8 : 1), (-8/7 : -1/49*a + 4/7 : 1), (1 : 0 : 1), 
  (-6/25*a - 47/25 : 36/125*a - 368/125 : 1), (1/4 : 1/16*a - 1/8 : 1)])

The documentation for simon_two_descent says that the output of Simon 2-descent is

        OUTPUT:
            integer -- "probably" the rank of self
            integer -- the 2-rank of the Selmer group
            list    -- list of independent points on the curve.

Our curve does have rank 3, but the output list above contains *five* points, so they can't be independent!

Our curve has torsion of order 2, so E(K)/2 E(K) has rank four, so the 3 and four output by Simon descent are right. The only problem is the list, which has too many points in it.

Maybe this is simply a documentation issue, and the docs for simon_two_descent should be changed to say that list is a list of points that *generate* a subgroup of the MW group of rank r, where r is the first number output by simon_two_descent.


#5281 Update tachyon to Version 0.98.9 (latest upstream) packages sage-4.5.3 defect 02/15/09

In Sage we are currently shipping some 0.98.beta release of tachyon.

Update to the official upstream release 0.98.9 (released January 18th 2010; still current on August 26th 2010).

This will (not only) require cleaning up SPKG.txt.


Upstream link:  http://jedi.ks.uiuc.edu/~johns/raytracer/


#5574 taking symbolic powers should coerce objects to symbolic expressions symbolics sage-4.5.3 defect 03/20/09

Reported by Alex Raichev on sage-support:

sage: var('n',ns=1)
n
sage: (QQbar(2)^3)^n
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

<...>
<...>/sage/rings/qqbar.pyc in __pow__(self, e)
   2808             1
   2809         """
-> 2810         e = QQ._coerce_(e)
   2811         n = e.numerator()
   2812         d = e.denominator()

<...>/sage/structure/parent_old.so in 
sage.structure.parent_old.Parent._coerce_ (sage/structure
/parent_old.c:4031)()

<...>/site-packages/sage/structure/parent.so in 
sage.structure.parent.Parent.coerce (sage/structure/parent.c:4185)()

TypeError: no canonical coercion from New Symbolic Ring to Rational
Field

Since pynac supports using arbitrary Sage objects as numeric objects in symbolic expressions, we should return a symbolic expression as a result of the above commands.


#5755 [with patch, positive review] error converting symbolic expression to polynomial symbolics sage-4.2 defect 04/11/09
sage: xx = var('xx')
sage: RDF['xx'](1.0*xx)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/Users/ncalexan/.sage/temp/pv139196.reshsg.uci.edu/12913/_Users_ncalexan_sage_3_4_rc0_devel_sage_main_sage_symbolic_test2_sage_3.py in <module>()

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/structure/parent.so in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:3653)()

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/structure/coerce_maps.so in sage.structure.coerce_maps.NamedConvertMap._call_ (sage/structure/coerce_maps.c:3627)()

/Users/ncalexan/sage-3.4.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in _polynomial_(self, R)
   2220                     not_found_v = False
   2221             if not_found_v:
-> 2222                 raise TypeError, "%s is not a variable of %s" %(v, R)
   2223         if len(sub) == 0:
   2224             try:

TypeError: xx is not a variable of Univariate Polynomial Ring in xx over Real Double Field

#5763 [with patch, needs work] pynac -- add _polynomial_ conversion constructor symbolics sage-4.5.3 defect 04/11/09

The attached patch adds conversion to polynomial rings. Two doctests fail at this time; they rely on being able to convert to CDF and ComplexField?(100). I didn't want them to get forgotten so I left them in.


#5909 symbolics -- x.subs_expr({}) hangs sage symbolics sage-4.0 defect 04/26/09

This might have been fixed by the pynac switch, but we will see:

----------------------------------------------------------------------
| Sage Version 3.4.2.alpha0, Release Date: 2009-04-24                |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: 
sage: x.subs_expr({x:1})
1
sage: x.subs_expr({})
Control-C pressed.  Interrupting Maxima. Please wait a few seconds...
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/mabshoff/.sage/temp/sage.math.washington.edu/10619/_home_mabshoff__sage_init_sage_0.py in <module>()

/scratch/mabshoff/sage-3.4.2.rc0/local/lib/python2.5/site-packages/sage/calculus/calculus.pyc in subs_expr(self, *equations)
   4579         v = ','.join(['%s=%s'%(x.lhs()._maxima_init_(), x.rhs()._maxima_init_()) \
   4580                       for x in equations])
-> 4581         return R(self._maxima_().subst(v))
   4582 
   4583     ###################################################################

/scratch/mabshoff/sage-3.4.2.rc0/local/lib/python2.5/site-packages/sage/interfaces/maxima.pyc in subst(self, val)
   2096             342
   2097         """
-> 2098         return self.comma(val)
   2099 
   2100     def comma(self, args):

/scratch/mabshoff/sage-3.4.2.rc0/local/lib/python2.5/site-packages/sage/interfaces/maxima.pyc in comma(self, args)
   2111         self._check_valid()
   2112         P = self.parent()
-> 2113         return P('%s, %s'%(self.name(), args))
   2114 
   2115     def _latex_(self):

/scratch/mabshoff/sage-3.4.2.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __call__(self, x, name)
   1021             
   1022         if isinstance(x, basestring):
-> 1023             return cls(self, x, name=name)
   1024         try:
   1025             return self._coerce_from_special_method(x)

/scratch/mabshoff/sage-3.4.2.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __init__(self, parent, value, is_name, name)
   1396             except (TypeError, KeyboardInterrupt, RuntimeError, ValueError), x:
   1397                 self._session_number = -1
-> 1398                 raise TypeError, x
   1399         self._session_number = parent._session_number
   1400 

TypeError: 
sage: 

#6113 segfault in division_points and factoring torsion_polynomial elliptic curves sage-4.5.3 defect 05/21/09

John Cremona reports:

In 4.0.alpha0, this causes a segmentation fault:

----------------------------------------------------------------------
| Sage Version 4.0.alpha0, Release Date: 2009-05-15                  |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: K.<a>=NumberField(x^2-x+22)
sage: w=-13*a-14
sage: E=EllipticCurve([0,0,0,0,-1728*w])
sage: P1 = E.lift_x(-3*a-66)
sage: P2 = E.lift_x((-21*a-93)/4)
sage: P2.division_points(19)

It works fine to do

sage: g = P2.division_points(19, poly_only=True)

which defines a polynomial of degree 361 over Q(sqrt(-87)), but then g.roots() goes Boom.

ncalexan verified this on Mac OS X; it looks like the crash is in an NTL function:

(gdb) bt
#0  0x01293247 in modii ()
#1  0x014278bc in FpX_red ()

#6132 [with patch, needs work] cmp for number field elements basic arithmetic sage-4.5.3 defect 05/26/09

See discussion at  http://groups.google.com/group/sage-nt/browse_thread/thread/422606e40805d5d0?hl=en

Note that cmp(list(a), list(b)) can be slow...


#6142 [with patch, positive review] fix issues with assumptions() doctest due to architecture dependant hashing symbolics sage-4.0 defect 05/27/09

#6144 [with patch, positive review] Pynac doesn't simplify exp(x)*exp(2*x) to exp(3*x) symbolics sage-4.0.1 defect 05/27/09
sage: exp(x)*exp(2*x)
e^(2*x)*e^x

#6197 [with patch, positive review] conversion of binomial fails symbolics sage-4.1.2 defect 06/03/09

Converting symbolic expressions containing binomial coefficients to maxima elements does not work.

sage: maxima(binomial(2*x, x))
sage1

Also the conversions to mathematica and maple fail:

sage: mathematica(binomial(2*x, x))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/huss/.sage/temp/bernoulli/6709/_home_huss__sage_init_sage_0.py in <module>()

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __call__(self, x, name)                                                                                                    
   1024             return cls(self, x, name=name)                                                               
   1025         try:                                                                                             
-> 1026             return self._coerce_from_special_method(x)                                                   
   1027         except TypeError:                                                                                
   1028             raise                                                                                        

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in _coerce_from_special_method(self, x)                                                                                       
   1048             s = '_gp_'                                                                                   
   1049         try:                                                                                             
-> 1050             return (x.__getattribute__(s))(self)                                                         
   1051         except AttributeError:                                                                           
   1052             return self(x._interface_init_())                                                            

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/structure/sage_object.so in sage.structure.sage_object.SageObject._mathematica_ (sage/structure/sage_object.c:5033)()                               

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression._interface_ (sage/symbolic/expression.cpp:3293)()                                     

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/structure/sage_object.so in sage.structure.sage_object.SageObject._interface_ (sage/structure/sage_object.c:2828)()                                 

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __call__(self, x, name)                                                                                                    
   1022                                                                                                          
   1023         if isinstance(x, basestring):                                                                    
-> 1024             return cls(self, x, name=name)                                                               
   1025         try:                                                                                             
   1026             return self._coerce_from_special_method(x)                                                   

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __init__(self, parent, value, is_name, name)
   1426             except (TypeError, KeyboardInterrupt, RuntimeError, ValueError), x:
   1427                 self._session_number = -1
-> 1428                 raise TypeError, x
   1429         self._session_number = parent._session_number
   1430

TypeError: Error executing code in Mathematica
CODE:
        sage1=<function binomial at 0x917ddbc>[(x)*(2),x];
Mathematica ERROR:
        Syntax::sntxf: "sage1=" cannot be followed by
    "<function binomial at 0x917ddbc>[(x)*(2),x];".
sage: maple(binomial(2*x, x))                       
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/huss/.sage/temp/bernoulli/6709/_home_huss__sage_init_sage_0.py in <module>()

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __call__(self, x, name)                                                                                                    
   1024             return cls(self, x, name=name)                                                               
   1025         try:                                                                                             
-> 1026             return self._coerce_from_special_method(x)                                                   
   1027         except TypeError:                                                                                
   1028             raise                                                                                        

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in _coerce_from_special_method(self, x)                                                                                       
   1048             s = '_gp_'                                                                                   
   1049         try:                                                                                             
-> 1050             return (x.__getattribute__(s))(self)                                                         
   1051         except AttributeError:                                                                           
   1052             return self(x._interface_init_())                                                            

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/structure/sage_object.so in sage.structure.sage_object.SageObject._maple_ (sage/structure/sage_object.c:4795)()                                     

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression._interface_ (sage/symbolic/expression.cpp:3293)()                                     

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/structure/sage_object.so in sage.structure.sage_object.SageObject._interface_ (sage/structure/sage_object.c:2828)()                                 

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __call__(self, x, name)                                                                                                    
   1022                                                                                                          
   1023         if isinstance(x, basestring):                                                                    
-> 1024             return cls(self, x, name=name)                                                               
   1025         try:                                                                                             
   1026             return self._coerce_from_special_method(x)                                                   

/local/data/huss/software/sage-4.0.rc0/local/lib/python2.5/site-packages/sage/interfaces/expect.pyc in __init__(self, parent, value, is_name, name)                                                                               
   1426             except (TypeError, KeyboardInterrupt, RuntimeError, ValueError), x:                          
   1427                 self._session_number = -1
-> 1428                 raise TypeError, x
   1429         self._session_number = parent._session_number
   1430

TypeError: An error occured running a Maple command:
INPUT:
read "/home/huss/.sage//temp/bernoulli/6709//interface//tmp6709";
OUTPUT:
on line 1, syntax error, missing operator or `;`:
sage1:=<function binomial at 0x917ddbc>((x)*(2),x):;
                        ^
Error, while reading
`/home/huss/.sage//temp/bernoulli/6709//interface//tmp6709`

#6211 [with patch, positive review] typesetting exp sometimes broken symbolics sage-4.0.2 defect 06/04/09

Typesetting e.g. esqrt(kappa) doesn't currently work.


#6228 [with patch, positive review] Wrong multiplicities when solving a univariate polynomial equation symbolics sage-4.2 defect 06/05/09

At  http://groups.google.com/group/sage-support/browse_thread/thread/d8e22deb18d97253 Michael Friedman asked how to get the multiplicities when solving a set of nonlinear equations.

It turns out that actually even the multiplicities for a single and rather simple equation are wrong:

----------------------------------------------------------------------
| Sage Version 4.0, Release Date: 2009-05-29                         |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: z = var('z')
sage: solve((z^3-1)^3,z,multiplicities=True)
([z == (sqrt(3)*I - 1)/2, z == (-sqrt(3)*I - 1)/2, z == 1], [1, 1, 3])

I am afraid that symbolics isn't my field of expertise. So, I don't know how to cure it.


#6388 [with patch, positive review] Logarithm function log(x) is partially broken for x <= 0 symbolics sage-4.1.2 defect 06/23/09

Although log(x) function in new symbolics is appeared to be defined for entire complex plane, it throws out error sometime

(1) Negative argument

sage: log(-1 + 0*I)
I*pi
sage: log(-1)
...
ValueError: self must be positive

It behaves differently for mathematically equivalent arguments.

(2) Value of log(x) at x=0

sage: log(0)
...
ValueError: self must be positive

log(0) should throw out an unevaluated symbolic expression "log(0)" instead of raising error. Depending on the way it appears in an expression, one could use it for simplifications.


#6405 Typesetting of imaginary 'I' in new symbolics is not proper symbolics sage-duplicate/invalid/wontfix defect 06/25/09

In new symbolics, imaginary 'I' is typeset as 'I' which is not "textbook style". This is a regression compared to Sage 3.4

sage: latex( exp(i*x))
e^{I \, x}

Lower case letter 'i' should be used in the typeset version.


#6480 .subs_expr() method doesn't work for argument of D derivative operator symbolics defect 07/08/09

In computing functional derivative, one needs to vary a functional. For example, in sage-3.4 one can do as follows

sage: f(x) = function('f',x)
sage: df(x) = function('df',x)
sage: g = f(x).diff(x)
sage: g
diff(f(x), x, 1)
sage: g.subs_expr(f(x)==f(x)+df(x))
diff(f(x) + df(x), x, 1)

In new symbolics, if I do the same I get

sage: g
D[0](f)(x)
sage: g.subs_expr(f(x)==f(x)+df(x))
D[0](f)(x)

#6523 .is_zero() method raises error for symbolic expression involving derivative symbolics sage-4.3 defect 07/13/09

If a symbolic expression contains  symbolic derivative then checking whether it is zero, raises error:

sage: x.diff(x,2).is_zero()
True

sage: f(x) = function('f',x)
sage: f(x).diff(x).is_zero()
....
NotImplementedError: derivative

This fails because new symbolics tries to convert it to maxima expression for checking the relation.

Update:

* A patch to fix the issue is attached. The patch adds a new method ".has_fderivative()" for symbolic expressions and in __nonzero__ method adds a check whether it has fderivative.

Comments (for future works): A simple timing comparison that illustrates why we should avoid calling maxima to assert nonzero even for symbolic functions

sage: f(x) = function('f',x)
sage: timeit('sin(f(x)).is_zero()')
5 loops, best of 3: 85.8 ms per loop
sage: timeit('sin(f(x).diff(x)).is_zero()')
625 loops, best of 3: 132 µs per loop

It seems pynac is 400 times faster than maxima in this case.


#6623 Memory leak when calling binomial symbolics sage-4.5.3 defect 07/25/09

There appears to be a memory leak when repeatedly calling binomial with different parameters. This sometimes also appears when the parameters to binomial are not varied, but is not consistent. This is a problem for the Combinations rank code, which makes many repeated calls to binomial.

sage: import random
print get_memory_usage()
for i in xrange(100000):
    x=random.randint(10,100)
    y=random.randint(0,x)
    r=binomial(x,y)
print get_memory_usage()

730.6328125
736.5625

The output is from running the code in Sage 4.1 on sagenb.org. I think the same problem may involve the symbolic backend and GiNaC, since the same problem also occurs with log. See this  sage-support thread for some background discussion.


#6642 [with patch, positive review] problem with solve (from the tutorial) symbolics sage-4.2 defect 07/27/09

From  sage-devel:

     sage: theta = var('theta')
     sage: solve(cos(theta)==sin(theta))

should produce

     [sin(theta) == cos(theta)]

but instead it produces

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/Users/palmieri/.sage/temp/Macintosh.local/69786/_Users_palmieri__sage_init_sage_0.py in <module>()

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/relation.pyc in solve(f, *args, **kwds)
    478     """
    479     try:
--> 480         return f.solve(*args,**kwds)
    481     except AttributeError:
    482         from sage.symbolic.ring import is_SymbolicVariable

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression.solve (sage/symbolic/expression.cpp:21764)()

TypeError: solve() takes at least 1 positional argument (0 given)

Providing a second argument 'theta' gives another error:

    sage: solve(cos(theta)==sin(theta), theta)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/Users/palmieri/.sage/temp/Macintosh.local/69786/_Users_palmieri__sage_init_sage_0.py in <module>()

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/relation.pyc in solve(f, *args, **kwds)
    478     """
    479     try:
--> 480         return f.solve(*args,**kwds)
    481     except AttributeError:
    482         from sage.symbolic.ring import is_SymbolicVariable

/Applications/sage/local/lib/python2.6/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression.solve (sage/symbolic/expression.cpp:22291)()

/Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/expect.pyc in __call__(self, *args, **kwds)
   1380 
   1381     def __call__(self, *args, **kwds):
-> 1382         return self._obj.parent().function_call(self._name, [self._obj] + list(args), kwds)
   1383 
   1384     def help(self):

/Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/expect.pyc in function_call(self, function, args, kwds)
   1288                                        [s.name() for s in args],
   1289                                        ['%s=%s'%(key,value.name()) for key, value in kwds.items()])
-> 1290         return self.new(s)
   1291 
   1292     def _function_call_string(self, function, args, kwds):

/Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/expect.pyc in new(self, code)
   1084 
   1085     def new(self, code):
-> 1086         return self(code)
   1087 
   1088     ###################################################################


/Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/expect.pyc in __call__(self, x, name)
   1019 
   1020         if isinstance(x, basestring):
-> 1021             return cls(self, x, name=name)
   1022         try:
   1023             return self._coerce_from_special_method(x)

/Applications/sage/local/lib/python2.6/site-packages/sage/interfaces/expect.pyc in __init__(self, parent, value, is_name, name)
   1423             except (TypeError, KeyboardInterrupt, RuntimeError, ValueError), x:
   1424                 self._session_number = -1
-> 1425                 raise TypeError, x
   1426         self._session_number = parent._session_number
   1427 

TypeError: Error executing code in Maxima
CODE:
	sage4 : to_poly_solve(sage0,sage3)$
Maxima ERROR:
	
Nonalgebraic argument given to 'topoly'
#0: to_poly_solve(e=cos(theta) = sin(theta),vars=theta)(topoly_solver.mac line 10)

The first version of this -- solve(cos(theta)==sin(theta)) -- is in the tutorial, and so presumably used to work.

See #6572 for a related ticket which, among other things, tells doctesting to skip this test in the tutorial. If the underlying problem is solved, the test in the tutorial should be restored, and of course a test should be put into the main Sage code illustrating that it now works.


#6793 fix doctest timeout in schemes/elliptic_curves/ell_point.py due to upgrade to Maxima 5.19.0 solaris sage-4.5.3 defect 08/20/09

On Solaris 10 update 7 (SPARC), the following tests failed. Both ECL and Maxima were updated - ECL version 9.8.4, Maxima version 5.19.1. Sage was built with gcc 4.4.1

----------------------------------------------------------------------
| Sage Version 4.1.1, Release Date: 2009-08-14                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
Thu Aug 20 20:02:37 BST 2009
dsage-trial tmp directory doesn't exist - creating ...
This script will run the unit tests for DSage

<SNIP>

sage -t  "devel/sage/sage/schemes/elliptic_curves/ell_point.py"
*** *** Error: TIMED OUT! PROCESS KILLED! *** ***
*** *** Error: TIMED OUT! *** ***
*** *** Error: TIMED OUT! *** ***
         [361.6 s]

#6955 update simon denis pari-scripts elliptic curves sage-4.4 defect 09/18/09

I found out that sage comes with old versions of the files ell.gp, ellQ.gp, qfsolve.gp. This should be updated. The newest version can be found at  http://www.math.unicaen.fr/~simon/ .


#6956 [with patch, positive review] cannot differentiate cotangent symbolics sage-4.1.2 defect 09/18/09

From sage-support:

On Fri, 18 Sep 2009 13:15:46 -0500
Jason Grout <jason-sage@creativetrax.com> wrote:

> On alpha.sagenb.org, I get the following:
> 
> sage: t=var('t')
> sage: diff(cot(t),t)
> D[0](cot)(t)
> sage: diff(cos(t)/sin(t),t)
> -cos(t)^2/sin(t)^2 - 1
> 
> 
> Does Sage not know that cot(t) is cos(t)/sin(t)? 

Unfortunately it doesn't.

GiNaC doesn't define the function cot. Sage defines it in the file sage/functions/trig.py starting at line 184. I suppose it was written quickly by Mike during the symbolics switch.

Defining a custom derivative function (named _derivative_) in that class should fix this.

Here is the thread:

 http://groups.google.com/group/sage-support/browse_thread/thread/752de34c876720cc


#7084 [with patch, positive review] Make assumption comparison work for GenericDeclarations symbolics sage-4.2 defect 09/30/09

On Sep 30, 11:07 am, lutusp <lut...@…> wrote:

I find I cannot make more than one of a certain kind of assume statement: sage: assume(a,'real') sage: assume(b,'real') If I do, I get an error message: AttributeError?: 'GenericDeclaration?' object has no attribute 'variables'

It's comparing your second assumption with the first one, presumably to make sure it doesn't conflict (?) ... but it is strange that it is talking about an attribute variables, since the attribute _var is being called, and b is real has that.

The problem is in symbolic/expression.pyx, where nonzero tries to find the variable of "a is real" - but it only has a _var, not variables like "t>0", which is a symbolic expression.

One such assumption is accepted, but not two. But more typical assumptions are accepted: sage: forget() sage: assume(a > 0) sage: assume(b > 0) sage: assume(c > 0) sage: assumptions() [a > 0, b > 0, c > 0] Am I using the wrong syntax or is this a bug?


#7096 bug in dual isogeny computation elliptic curves sage-4.2.1 defect 10/02/09
sage: p = 1019
sage: F = GF(p)
sage: E = EllipticCurve(F,[1,-1,0,1,1])
sage: psi = E.division_polynomial(7).factor()[3][0]
sage: phi = E.isogeny(kernel=psi)
sage: assert phi.degree()==7
sage: phi.dual()
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)

/home/jec/.sage/temp/selmer/14232/_home_jec__sage_init_sage_0.py in <module>()

/home/jec/sage-4.1.2.rc0/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ell_curve_isogeny.pyc in dual(self)
   2998
   2999         phi_hat.set_pre_isomorphism(pre_isom)
-> 3000         phi_hat.set_post_isomorphism(post_isom)
   3001
   3002         self.__dual = phi_hat

/home/jec/sage-4.1.2.rc0/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ell_curve_isogeny.pyc in set_post_isomorphism(self, postWI)
   2627
   2628         if (self.__E2 != WIdom):
-> 2629             raise ValueError, "Invalid parameter: isomorphism must have domain curve equal to this isogenies'codomain."
   2630
   2631         if (None == self.__post_isomorphism):

ValueError: Invalid parameter: isomorphism must have domain curve equal to this isogenies' codomain.

This looks like something which should be easy to fix.

One month of hard work later: first impressions were deceptive!


#7761 Python 2.6.2.p4 faills to build on OpenSolaris solaris sage-4.3.4 defect 12/24/09

I believe William is aware of this bug and said it can be fixed by installing OpenSSL or similar. But I am unable to find a trac ticket for it, so I thought I'd open one. It's interesting this issue does not arise on Solaris 10 (SPARC), despite OpenSSL libraries not being present there either. This bug seems to come up a lot on linux too, as a Google search shows.

On a Sun Ultra 27 (Intel Xeon processor), running Open Solaris 06/2009, I get the following problem when python is being built.

drkirkby@hawk:~/sage-4.3/spkg/installed$ ls
bzip2-1.0.5             libgcrypt-1.4.4.p1      python-2.6.2.p5
cliquer-1.2.p2          libgpg_error-1.6.p3     readline-6.0.p1
conway_polynomials-0.2  libpng-1.2.35.p0        sage_scripts-4.3
dir-0.1                 mercurial-1.3.1.p0      scons-1.2.0
eclib-20080310.p8       mpir-1.2.2              sqlite-3.6.19.p0
elliptic_curves-0.1     ntl-5.4.2.p9            termcap-1.3.1.p0
extcode-4.3             opencdk-0.6.6.p3        zlib-1.2.3.p5
gnutls-2.2.1.p5         pari-2.3.3.p5
graphs-20070722.p1      prereq-0.6

copying build/scripts-2.6/pydoc -> /export/home/drkirkby/sage-4.3.rc2/local/bin changing mode of /export/home/drkirkby/sage-4.3.rc2/local/bin/2to3 to 755 changing mode of /export/home/drkirkby/sage-4.3.rc2/local/bin/smtpd.py to 755 changing mode of /export/home/drkirkby/sage-4.3.rc2/local/bin/idle to 755 changing mode of /export/home/drkirkby/sage-4.3.rc2/local/bin/pydoc to 755 running install_egg_info Removing /export/home/drkirkby/sage-4.3.rc2/local/lib/python2.6/lib-dynload/Python-2.6.2-py2.6.egg-info Writing /export/home/drkirkby/sage-4.3.rc2/local/lib/python2.6/lib-dynload/Python-2.6.2-py2.6.egg-info if test -f /export/home/drkirkby/sage-4.3.rc2/local/bin/python -o -h /export/home/drkirkby/sage-4.3.rc2/local/bin/python; \

then rm -f /export/home/drkirkby/sage-4.3.rc2/local/bin/python; \ else true; \ fi

(cd /export/home/drkirkby/sage-4.3.rc2/local/bin; ln python2.6 python) rm -f /export/home/drkirkby/sage-4.3.rc2/local/bin/python-config (cd /export/home/drkirkby/sage-4.3.rc2/local/bin; ln -s python2.6-config python-config) /usr/bin/ginstall -c -m 644 ./Misc/python.man \

/export/home/drkirkby/sage-4.3.rc2/local/share/man/man1/python.1

make[2]: Leaving directory `/export/home/drkirkby/sage-4.3.rc2/spkg/build/python-2.6.2.p4/src' Sleeping for three seconds before testing python Traceback (most recent call last):

File "<string>", line 1, in <module> File "/export/home/drkirkby/sage-4.3.rc2/local/lib/python/hashlib.py", line 136, in <module>

md5 = get_builtin_constructor('md5')

File "/export/home/drkirkby/sage-4.3.rc2/local/lib/python/hashlib.py", line 63, in get_builtin_constructor

import _md5

ImportError?: No module named _md5

real 1m38.244s user 1m15.115s sys 0m13.132s sage: An error occurred while installing python-2.6.2.p4

}}}

I'm not sure if this should be reported upstream or not. Some feedback on that might be useful. If so, I will report it to a python bug tracker or similar. The issue seems to arrise often enough.

Dave

PS, to even get to this point, I had to delete the following list of files, to get around a gnutls issue in #7387.

    * SAGE_LOCAL/include/gcrypt-module.h
    * SAGE_LOCAL/include/gpg-error.h
    * SAGE_LOCAL/include/gcrypt.h
    * SAGE_LOCAL/lib/libgcrypt*
    * SAGE_LOCAL/lib/libgpg* 

#8051 SageNB 0.7.x notebook sage-4.3.2 defect 01/24/10

The new spkg is at

Merged in 0.7: #7249, #7962, #7969, #4217, #3083, #6182, #5263, #7631, #6353, #7207, #8000, #4450, #7848, #7963, #7752, #7996, #6475, #5675, #7435, #3844, #6368, #7434.

Merged in 0.7.1: #8103.

Merged in 0.7.2: #3083's "notruncate" patch.

Merged in 0.7.3: #7784.

Merged in 0.7.4: #8167, #8102, #8160.


#8120 UniqueRepresentation and hash value algebra sage-4.3.3 defect 01/29/10

The documentation of UniqueRepresentation says

    Similarly, the identity is used as hash function, which is also as
    fast as it can get. However this means that the hash function may
    change in between Sage sessions, or even within the same Sage
    session (see below). Subclasses should overload :meth:`__hash__`
    if this could be a problem.

But there is no implementation of __hash__.

I'm adding one.


#8254 sage takes way too long to startup misc sage-4.5.3 defect 02/12/10

Sage still takes too long. 20 seconds, 30 seconds, 5 seconds, on various places... and it is all so painful.


#1236 tate pairings on elliptic curves -- add to sage elliptic curves sage-4.5.3 enhancement 11/21/07
Hi, I needed some calculation period benchmark for pairings. I could
not find anything build in, but the following implementation solved my
problem:

http://maths.straylight.co.uk/archives/104

#1904 elliptic curves -- some period lattice functions are not implemented elliptic curves sage-4.5.3 enhancement 01/23/08
sage: E = EllipticCurve('37a1')
sage: Lambda = E.period_lattice()
sage: OE = Lambda.omega(); OE
5.986917292463919259664019958905016355595167582740265970681046757126500713973
sage: Lambda.matrix()
Traceback (most recent call last):
...
TypeError: Unable to coerce 2.451389381986790060854224831866525225349617289144796614656471406129152899999*I (<type 'sage.rings.complex_number.ComplexNumber'>) to Rational
sage: Lambda.gram_matrix()
Traceback (most recent call last):
...
AttributeError: 'PeriodLattice_ell' object has no attribute 'ambient_vector_space'
sage: Lambda.basis()
(2.993458646231959629832009979452508177797583791370132985340523378563250356987, 2.451389381986790060854224831866525225349617289144796614656471406129152899999*I)
sage: Lambda.basis_matrix()
Traceback (most recent call last):
...
TypeError: Unable to coerce 2.451389381986790060854224831866525225349617289144796614656471406129152899999*I (<type 'sage.rings.complex_number.ComplexNumber'>) to Rational
s

The root cause of this is that Period lattices actually derive from the abstract free module type, but they don't implement all the functionality that type requires.


#1975 elliptic curve method -- one should trivially be able to implement a toy version, but can't anymore, which sucks elliptic curves sage-4.4.4 enhancement 01/29/08
They definitely very useful sometimes.  E.g., there is something
called the elliptic curve factorization method that is a brilliant trick
to factor integers.  You want to factor an integer N so you pretend
that it is prime, do a bunch of arithmetic with N, and if something goes
wrong, the error message gives just the information you need to factor N.
But it's important that the error message be an exception that you can
catch and that can contain some interesting Python data in it.  Custom
exceptions work very nicely for that. 

(This used to be trivial to implement in Sage, but for some reason
Sage changed and now it is isn't... :-(

sage: E = EllipticCurve(Integers(15),[1,-1])
sage: P = E.point([1,0,1], check=False)
goes boom but didn't used to...

William

#4606 elliptic curves -- implement gross-Zagier L-functions elliptic curves sage-4.5.3 enhancement 11/24/08

Make it so one can do:

sage: e = EllipticCurve('37a')
sage: K.<a> = QuadraticField(-40)
sage: A = K.class_group().gen(0); A
Fractional ideal class (2, -1/2*a)
sage: L = e.lseries_gross_zagier(A)  
sage: L(2)
0
sage: L.taylor_series(2,5)
nobody has seen this!

#5650 speed up gamma_inc symbolics sage-feature enhancement 03/31/09

The following is from code for evaluating Riemann theta functions on sage.math:

sage: %prun siegel_theta(tau3p, 1/10*vector([1/2 + I, 2/3*I, 1.222*I]))
         137700 function calls (136832 primitive calls) in 2.221 CPU seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       23    1.668    0.073    1.674    0.073 {method 'gamma_inc' of 'sage.rings.complex_number.ComplexNumber' objects}
    791/1    0.153    0.000    0.380    0.380 riemann_theta.py:313(find_integer_points)
     1601    0.066    0.000    0.066    0.000 {method 'sin' of 'sage.rings.real_mpfr.RealNumber' objects}
     5706    0.056    0.000    0.077    0.000 free_module.py:742(__call__)
        1    0.029    0.029    0.137    0.137 riemann_theta.py:51(finite_sum_without_derivatives)
     1602    0.026    0.000    0.026    0.000 {method 'exp' of 'sage.rings.real_mpfr.RealNumber' objects}

The finite_sum_without_derivatives is the main loop, which calls sin, cos, and exp each iteration. But the dominant part is computing an initial error approximation, which computes gamma_inc to very high precision a bunch of times, optimizing a parameter. That takes longer than everything else! Could a party interested in special functions please speed this up?


#6231 Solving a system of equations ignores multiplicities symbolics sage-wishlist enhancement 06/06/09

A follow-up from  http://groups.google.com/group/sage-support/browse_thread/thread/d8e22deb18d97253 but different from #6228:

sage: solve((x^2-1)^3==0, x, multiplicities=True)
([x == -1, x == 1], [3, 3])
sage: solve(((x^2-1)^3==0,(x^2-1)^3==0), x, multiplicities=True)
[[x == 1], [x == -1]]

So, at least in this example, we get the correct multiplicities for a single equation, but we don't get any multiplicity when the same equation together with a copy of itself forms a system of equations.

Note that maxima does not seem to help here:

sage: maxima.eval('solve([(x^2-1)^3,(x^2-1)^3],x)')
'[[x=1],[x=-1]]'
sage: maxima.get('multiplicities')
'[]'

What format should the multiplicities be provided in?

  • When one solves a single equation with a single variable, the solutions are given by a simple list. Accordingly, the multiplicities are given as a simple list.
  • When a system of equations in a single variable is given, the solutions are given by a list of lists. So, should the multiplicities be given by a list of lists?

#6290 [with patch, positive review] Allow keywords such as latex_name=LaTeX while defining symbolic function symbolics sage-4.1 enhancement 06/14/09

In new symbolics, underlying "sage.symbolic.function.SFunction" class allows one to pass the keywords such as "latex_name=LaTeX". It would be really good if we expose this feature at the user interface level. This will directly allow LaTeX customization by users according to their need.

Currently, Sage (4.0.1) raises error if one tries to do so.

Couple of example usage:

(1) Define symbolic function with its latex representaion

riemann(x) = function('riemann', x, latex_name="\\mathcal{R}")
latex( riemann(x) )
\mathcal{R}\left(x\right)

(2) Printing arguments of a symbolic functions as its indices.

mu,nu = var('mu,nu')
def my_latex_print(*args): 
    return "\psi_{%s}"%(', '.join(map(latex, args)))

psi(mu,nu) = function('psi', mu,nu, print_latex_func=my_latex_print)

latex(psi(mu,nu))
\psi_{\mu, \nu}

Attached patch allows keyword arguments while defining symbolic functions.


#6403 Custom definitions for latex style symbolics sage-4.3.3 enhancement 06/25/09

#6290 introduced a way to custom-define the latex style of functions, but it would be great if something similar was made possible for any variable. I used to do it in the following way, but now I get an error message:

sage: var('hi kunsati delyui')
sage: hi._latex_ = lambda: 'h_i'
sage: kunsati._latex_ = lambda: 'K_{unsat,i}'
sage: delyui._latex_ = lambda: '\delta_{yu,i}'
Traceback (most recent call last):

...
AttributeError?: 'sage.symbolic.expression.Expression' object attribute '_latex_' is read-only

Comment by Burcin Erocal on sage-devel (25/06/2006):

Since Expression is a cython class, you cannot overwrite the _latex_() method. Pynac supports setting latex names for variables at creation, but this functionality is not exposed in the wrapper. Another solution by hacking latex_variable_name() might be possible, but I would like to avoid that if possible. Feel free to open a new issue in trac about it. Cheers, Burcin

How could the Pynac funtionality of setting latex names for variables at creation be exposed?

Patches:

Patches that will resolve this ticket is posted at #6559


#6466 Implement functional derivative and Euler-Lagrange equation symbolics enhancement 07/05/09

One of the elementary tool that is often needed to compute equation of motion in Physics, is functional derivative. This along with the implementation of Euler-Lagrange equation will make Sage extremely useful for physicists.


#6559 Real domain for symbolic variables symbolics sage-4.3.3 enhancement 07/19/09

In new symbolics, the default symbolic variables are complex. However, sometime it is useful/desirable to make the domain of variables to be real.

Currently, there are no way to specify the domain of variables in Sage although underlying Ginac allows it. For example: following would to be good to have.

sage: var('x,y,z', domain='real')

Instructions for installing these patches (sage-4.1.1)

(1) Pynac patch

(a) Get the pynac spkg

 http://sage.math.washington.edu/home/burcin/pynac/pynac-0.1.8.p2.spkg

(b) Apply the pynac patch for enhanced symbols

 http://www.math.unb.ca/~ghossain/texname-and-domain-of-symbols-pynac.patch

(c) install the patched spkg in Sage.

OR if you are feeling lazy, you can directly install my patched copy of pynac from here

 http://www.math.unb.ca/~ghossain/pynac-0.1.8.p2-symbols.spkg

(2) Sage patch:

Apply the attached sage patch after modified pynac spkg is installed

Notes:

#6403 will also be resolved by this patch

#6340 patch conflicts with this patch. This patch here should supersede the patch at #6340.


#6636 [with patch, positive review] Simplification of factorials and binomial coefficients is not very good symbolics sage-4.1.2 enhancement 07/27/09

Maple can simplify all but the first of the following examples:

%maple
print(simplify(binomial(n,2)+binomial(n+1,2)));
print(simplify(factorial(n)/factorial(n-2)/2 + factorial(n+1)/factorial(n-1)/2));
print(simplify(factorial(n+1)/factorial(n)));
print(simplify(binomial(n,k)*factorial(k)*factorial(n-k)));

returns

binomial(n,2)+binomial(n+1,2)
n^2
n+1
n!

Sage can simplify only the first:

var('n,k')
print (binomial(n,2) + binomial(n+1,2)).simplify_full()
print (factorial(n)/factorial(n-2)/2 + factorial(n+1)/factorial(n)/2).simplify_full()
print (factorial(n+1)/factorial(n)).simplify_full()
print (binomial(n,k)*factorial(k)*factorial(n-k)).simplify_full()

returns

n^2
1/2*(factorial(n - 2)*factorial(n + 1) + factorial(n)^2)/(factorial(n - 2)*factorial(n))
factorial(n + 1)/factorial(n)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jason/.sage/sage_notebook/worksheets/admin/10/code/49.py", line 11, in <module>
    exec compile(ur'print (binomial(n,k)*factorial(k)*factorial(n-k)).simplify_full()' + '\n', '', 'single')
  File "", line 1, in <module>
    
  File "expression.pyx", line 4837, in sage.symbolic.expression.Expression.simplify_full (sage/symbolic/expression.cpp:19979)
  File "expression.pyx", line 4864, in sage.symbolic.expression.Expression.simplify_trig (sage/symbolic/expression.cpp:20076)
  File "expression.pyx", line 418, in sage.symbolic.expression.Expression._maxima_ (sage/symbolic/expression.cpp:3415)
  File "sage_object.pyx", line 364, in sage.structure.sage_object.SageObject._interface_ (sage/structure/sage_object.c:3384)
  File "sage_object.pyx", line 451, in sage.structure.sage_object.SageObject._maxima_init_ (sage/structure/sage_object.c:5065)
  File "expression.pyx", line 443, in sage.symbolic.expression.Expression._interface_init_ (sage/symbolic/expression.cpp:3544)
  File "/home/jason/sage-4.0/local/lib/python2.6/site-packages/sage/symbolic/expression_conversions.py", line 214, in __call__
    return self.arithmetic(ex, operator)
  File "/home/jason/sage-4.0/local/lib/python2.6/site-packages/sage/symbolic/expression_conversions.py", line 497, in arithmetic
    args = ["(%s)"%self(op) for op in ex.operands()]
  File "/home/jason/sage-4.0/local/lib/python2.6/site-packages/sage/symbolic/expression_conversions.py", line 206, in __call__
    operator = ex.operator()
  File "expression.pyx", line 3088, in sage.symbolic.expression.Expression.operator (sage/symbolic/expression.cpp:15127)
RuntimeError: cannot find SFunction in table

#6756 Implement ``diff`` format symbolic derivative in new symbolics symbolics enhancement 08/15/09

Implement a diff format symbolic derivative in new symbolics as the second form of abstract derivative to be avialable in Sage. See this long thread

 http://groups.google.com/group/sage-devel/browse_thread/thread/ff10f99729a74eea/73308bf626ae06b3

for rationale behind it.

Implementation:

Instructions for installing these patches (sage-4.1.1)

(1) Pynac patch

(a) Get the pynac spkg

 http://sage.math.washington.edu/home/burcin/pynac/pynac-0.1.8.p2.spkg

(b) Apply the pynac patch implementing diff derivative from

 http://www.math.unb.ca/~ghossain/diff-derivative-pynac.patch

(c) install the patched spkg in Sage.

OR if you are feeling lazy, you can directly install my patched copy of pynac from here

 http://www.math.unb.ca/~ghossain/pynac-0.1.8.p2-with-diff.spkg

(2) Sage patch:

Apply the attached patch in Sage and build the changes ("sage -b"). If everything goes smoothly then you are ready for testing.

Testing:

Above, patches will provide two new user accessible functions

(a) set_diff_derivative_level

(b) symbolic_diff

Please see the docs for usage of these functions:

It would be good to thoroughly test the following features:

(1) Substitution of the function

(2) Derivative with or without chain rule

(3) Explicit evaluation of derivative even for some situation where chain rule has been applied and derivative is specified w.r.t. an expression

(4) Symbolic n-th derivative

(5) Typesetting

Please test diff implementation against some related bugs

#6376, #6523, #6480

as new diff implementation should avoid these.

Speed Test:

sage: f(x) = function('f',x);
sage: f(x).diff(x)
D[0](f)(x)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 124 µs per loop
sage: timeit('f(x).diff(x,100)')
125 loops, best of 3: 5.58 ms per loop

sage: set_diff_derivative_level(1)
sage: f(x).diff(x)
diff(f(x), x, 1)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 116 µs per loop
sage: timeit('f(x).diff(x,100)')
625 loops, best of 3: 1.01 ms per loop

sage: set_diff_derivative_level(2)
sage: f(x).diff(x)
diff(f(x), x, 1)
sage: timeit('f(x).diff(x)')
625 loops, best of 3: 130 µs per loop
sage: timeit('f(x).diff(x,100)')
125 loops, best of 3: 1.85 ms per loop

* This patch removes old "dummy_diff" from "calculus/calculus" as we now have a _real_ diff.


#6799 Speed up symbolic comparison symbolics enhancement 08/21/09

It takes too long to check whether x is in a list in new symbolics

sage: var('x,x1,x2,x3,x4')
(x, x1, x2, x3, x4)
sage: f = function('f')
sage: mylist = [x1,x2,x3,x4,f(x1),f(x2),f(x3),f(x4)]

sage: timeit('x in mylist')
5 loops, best of 3: 461 ms per loop

If we need to check it couple of more times then it becomes worse

sage: timeit('x in mylist')
5 loops, best of 3: 1.26 s per loop
sage: timeit('x in mylist')
5 loops, best of 3: 3.4 s per loop

For a comparison

sage: timeit('x1 in mylist')
625 loops, best of 3: 473 ns per loop

Reason for this huge discrepancy stems from the fact that except for last example, in all previous cases maxima is called to check the equality.

See this thread for more:

 http://groups.google.com/group/sage-devel/browse_thread/thread/d2275cb5b3d63317


#6802 define a real variable with var() symbolics sage-duplicate/invalid/wontfix enhancement 08/22/09

At this  sage-support thread, there is a request for var() to be able to define a "real" variable. Then one can do this

sage: a = var("a")
sage: conjugate(a)
a

As of Sage 4.1.1, we have this:

----------------------------------------------------------------------
| Sage Version 4.1.1, Release Date: 2009-08-14                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: a = var("a")
sage: conjugate(a)
conjugate(a)

#6803 Implement symbolic Kronecker delta and also make current signum (sgn) symbolic symbolics sage-4.3 enhancement 08/22/09

We should have a symbolic Kronecker delta in Sage.

Also, current implementation of signum (sgn) function returns wrong answer for symbolic input.

sage: sgn(x)
1
sage: sgn(-x)
1

So we should make sgn() symbolic aware. Given, implementation of these functions in new symbolics should be very similar to the existing generalized function Dirac delta and Heaviside, I am putting them together here.

Also, ticket #777 should be closed down as Sign is already in Sage and this ticket will further enhance it.

Patch:

Apart from implementing these two symbolic functions, attached patch slightly speeds up three other generalized functions by avoiding default __call__ method of PrimitiveFunction?. These functions take explicit value either 0,-1,1 so those checks are not needed.

Timing before the patches:

sage: timeit('dirac_delta(1.0)')
625 loops, best of 3: 179 µs per loop
sage: timeit('unit_step(1.0)')
625 loops, best of 3: 345 µs per loop
sage: timeit('heaviside(1.0)')
625 loops, best of 3: 344 µs per loop

Timing after the patches:

sage: timeit('dirac_delta(1.0)')
625 loops, best of 3: 159 µs per loop
sage: timeit('heaviside(1.0)')
625 loops, best of 3: 324 µs per loop
sage: timeit('unit_step(1.0)')
625 loops, best of 3: 323 µs per loop

Also, it does slight re-arrangements of references.


#6887 Implement elliptic curve isogenies (continued) elliptic curves sage-4.3.1 enhancement 09/04/09

Thanks mainly to Dan Shumow, 4.1.1 has some very useful code for constructing elliptic curve isogenies. Together with a summer student Jenny Cooley, I am implementing the following:

  1. For l=2,3,5,7,13 over any field, find all l-isogenies of a given elliptic curve. (These are the l for which X_0(l) has genus 0).
  1. For the remaining l for which l-isogenies exist over QQ, similarly.
  1. Given an elliptic curve over QQ, find the whole isogeny class (this currently exists by wrapping some eclib code, but that it not very robust -- what we are writing will be!)
  1. Testing if two curves are isogenous (at least over QQ; we can do something over other number fields but I am still working out how to make it rigorous.)

At the moment I am not planning anything over finite fields, where the situation is very different, though the generic code for l=2,3,5,7,13 will work (as it is right now, only as long as the characteristic is not 2, 3 or l, but eventually that will change).

Some of the methods we are implementing were worked out by Mark Watkins and me in an unfinished preprint c.2005.

As one major test of the code for curves over QQ, we are intending to check that the databases are closed under isogeny (as they should be! at least my own should be).


#6958 [with patch, positive review] prove_BSD function for elliptic curves over QQ elliptic curves sage-4.2 enhancement 09/18/09

Comments welcome!


#6961 provide wrapper for psi function of GiNaC symbolics sage-4.3.3 enhancement 09/19/09

From sage-support:

On Fri, 18 Sep 2009 15:47:45 -0700 (PDT)
The_Fool <masterfulet@yahoo.com> wrote:

> While working with the derivative of the Gamma function, the digamma
> function is obviously involved.  The sage "diff" function does show Γ
> '(x) == Γ(x)ψ(x) like it should, however, the digamma function (called
> psi in sage) is not defined whenever I try to do anything with it.  It
> seems as if only the output of "diff" can use this function.

psi() is defined in GiNaC, but we don't provide wrappers for it.

Defining a function psi, similar to the way arctan2 is defined in line 422 of sage/functions/trig.py should fix this.

The sage-support thread is here:

 http://groups.google.com/group/sage-support/browse_thread/thread/1ad313c921b7dbc0


#7155 Allow solving of inequalities symbolics sage-duplicate/invalid/wontfix enhancement 10/08/09

From a Maxima FAQ:

(%i1) load(fourier_elim)$

(%i2) fourier_elim([abs(x - abs(5-x)) < 1],[x]);
(%o2)                          [2<x,x<3]

(%i3) fourier_elim([x + y < 1, x - y > 9],[x,y]);
(%o3)                     [y+9<x,x<1-y,y<-4]

(%i4) fourier_elim([max(-x,x) < 7 * x + 1],[x]);
(%o4)                           [-1/8<x]

From pre-release codebase:

 (%i79) to_poly_solve((x-1)*(x-6) < 0,x);
 (%o79) %union([1 < x,x < 6])

 (%i80) to_poly_solve(min(x,1) < max(-5,x),x);
 (%o80) %union([1 < x],[x < -5])

 (%i81) to_poly_solve(min(x,1) # max(x,4),x);
 (%o81) %union([1 < x,x < 4],[4 < x],[x = 1],[x < 1],[x = 4])

 (%i82)  to_poly_solve((x+1)/(x-1) < 4,x);
 (%o82) %union([5/3 < x],[x < 1])

So it should not be too hard to wrap this, checking input/output for < or > or something. This is one of those basic things people want, but which we assume it's too hard to write from scratch (which it probably is!).


#7422 New Incidence Structure and Block Design constructions combinatorics enhancement 11/09/09

I have added two references; fixed the points() method to return points in lexicographic order so eq works properly; made is_simple() its own standalone method and call it from block_design_checker and added the following constructions: Derived at a Point, Residual at a Point, Derived at a Block, Residual at a Block, Complementary, Supplementary, Point Deletion and Extraction of Blocks by size.

Some relevant discussion is here:

 http://groups.google.com/group/sage-devel/browse_thread/thread/305158ab5d3181bc

Reviewers:

- Please think about my first item on the TODO list; is that a better way to proceed with derived_blck and residual_blck?

-I do not know whether this is "Minor" or "Major" (I am pretty sure it is not the others) so I have put "Major". Please tell me if I was wrong.

- I have no idea what to put in Milestone so I have left it blank.


#7642 Add an implementation of LCA to sage.combinat.words.suffix_trees combinatorics enhancement 12/09/09

I have implemented the linear time preprocessing, constant-time queries algorithm for the lowest common ancestor (LCA) in the context of the suffix trees for words.

The only thing I'm not very sure about is where to place the bit manipulation functions.


#7751 Kazhdan-Lusztig polynomials, Bruhat order, and related features combinatorics sage-4.3.3 enhancement 12/22/09

This patch includes algorithms for the Bruhat order, Kazhdan-Lusztig polynomials, improvements to the __repr__ method of WeylGroup? elements, and other enhancements.

Mike Hansen is working on an interface to coxeter3, which is be able to compute Kazhdan-Lusztig polynomials rather faster. However I think this patch still contains things that are needed.

For discussion see this thread:

 http://groups.google.com/group/sage-combinat-devel/browse_thread/thread/d324f6fcb6d2a436?hl=en

This patch depends on #7753 and #7754.


#7872 Adding coordinate transformations to plot3d graphics sage-4.3.4 enhancement 01/08/10

While developing a command called transform_plot3d, that generalized ploting in diferent coordinate systems, Jason Grout suggested to me that such a command would be better implemented within plot3d.

I agreed to that, so I propose an adition to plot3d's syntax: "plot3d(function,var1range,var2range,transformation=None,**kwds)" where transformation is a 4-tuple containing 3 functions of arity 3, and a variable which is to be interpreted as the function to be ploted. Like this (r*cos(fi),r*sin(fi),z,r), so the function will be ploted as r.

Examples can be found in  http://www.sagenb.org/home/pub/1328/.

I've just added a patch.


#8059 Update Singular spkg to release 3-1-1-4 packages sage-4.5.3 enhancement 01/25/10

The Singular team accepted most of our patches upstream. They are in the 3-1-0-9 release, which also is a first step to make things easier for library developers.

How to apply the patches to  sage-4.5.3.alpha0:


#9556 Dynamic attributes for symbolic expressions symbolics sage-5.0 enhancement 07/20/10

Let e be a symbolic expression. It may happen that e.operator() has a certain callable attribute, say, foo, that is not a method of Function. In this situation, one would like to use e.foo(), which is supposed to return e.operator().foo(*e.operands()) - apparently this is useful for working with hypergeometric functions.

Example

sage: from sage.symbolic.function import BuiltinFunction
sage: class ExampleBuiltin(BuiltinFunction):
...     def __init__(self):
...         BuiltinFunction.__init__(self, 'ex_func', nargs=0) #arbitrary no of args
...     def some_function_name(self, *args):
...         return len(args)
...
sage: ex_func = ExampleBuiltin()
sage: ex_func
ex_func

We obtain a symbolic expression by calling ex_func:

sage: e = ex_func(x,x+1, x+2)
sage: type(e)
<type 'sage.symbolic.expression.Expression'>

We add a callable and a non-callable attribute to ex_func:

sage: def some_function(slf, *L): print slf,'called with',L
...
sage: ex_func.foo_bar = some_function
sage: ex_func.bar_foo = 4

Now, both the new method and the callable attribute foo_bar of ex_func are available from e, but not the non-callable:

sage: e.some_function_name()
3
sage: e.foo_bar()
ex_func called with (x, x + 1, x + 2)
sage: e.bar_foo
Traceback (most recent call last):
...
AttributeError: <type 'sage.symbolic.expression.Expression'> has no attribute 'bar_foo'

Tab completion and introspection work:

sage: 'foo_bar' in dir(e)     # indirect doctest
True
sage: 'some_function_name' in dir(e)
True
sage: 'bar_foo' in dir(e)
False
sage: import sagenb.misc.support as s
sage: s.completions('e.some', globals(), system='python')
['e.some_function_name']

Problems

When I ran sage -testall, several doctests segfaulted:

        sage -t  -verbose "devel/sage/sage/functions/hyperbolic.py"
        sage -t  -verbose "devel/sage/sage/games/hexad.py"
        sage -t  -verbose "devel/sage/sage/matrix/tests.py"
        sage -t  -verbose "devel/sage/sage/misc/sage_eval.py"
        sage -t  -verbose "devel/sage/sage/plot/animate.py"
        sage -t  -verbose "devel/sage/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py"
        sage -t  -verbose "devel/sage/sage/rings/polynomial/polynomial_element.pyx"

I tried (using sage -t -verbose) to find out what exactly fails. When I ran some of these failing examples in an interactive session, no segfault occured. So, is there a nasty side effect?


#4453 elliptic curves -- heegner_index command gives nonsense when rank > 1 elliptic curves sage-4.5.3 defect 11/06/08

For any elliptic curve over QQ of rank >= 2 the heegner_index command must always give 0 as output. So the following 1 at the end is just wrong.

sage: E = EllipticCurve('389a')
sage: D = E.heegner_discriminants_list(1)[0]
sage: D
-7
sage: E.heegner_index(D)
1

#5065 elliptic curve torsion subgroup doesn't know its identity elliptic curves sage-duplicate/invalid/wontfix defect 01/23/09

The torsion subgroup of an elliptic curve appears to be quite broken -- it barfs when trying to coerce in 0,

sage: E = EllipticCurve(1)
sage: T = E.torsion_subgroup()
sage: T(0)
...
...
TypeError: Argument x (= 0) is of wrong type.

further, it returns a mysterious 1 when coercing in a 1

sage: a = T(1); a
1
sage: b = T.gens()[0]-T.gens()[0]; b
(0 : 1 : 0)
sage: a+b
TypeError: unsupported operand parent(s) for '+': 'Abelian group of points on Elliptic Curve defined by y^2 + x*y + y = x^3 - 19*x + 26 over Rational Field' and 'Torsion Subgroup isomorphic to Multiplicative Abelian Group isomorphic to C6 x C2 associated to the Elliptic Curve defined by y^2 + x*y + y = x^3 - 19*x + 26 over Rational Field'

Yet, it's all cool with the original curve.

sage: E(0)
(0 : 1 : 0)
sage: E(1)
...
...
TypeError: v (=(1,)) must have 3 components
sage: 

#6455 [with patch, with positive review] Bug in twisting for p_primary_bound on Tate-Shafarevich groups elliptic curves sage-4.2 defect 07/01/09

William Stein found a bug in p_primary_part, namely

sage: E = EllipticCurve([-19,34]); E.cremona_label()  # y^2 = x^3 - 19*x + 34
'944e1'
sage: S = E.sha(); S
Shafarevich-Tate group for the Elliptic Curve defined by y^2 = x^3 -
19*x + 34 over Rational Field
sage: E.ap(5)
-3
sage: factor(944)
2^4 * 59
sage: S.an_padic(5)
Traceback (most recent call last):
...
ValueError: can not twist a curve of conductor (=472) by the quadratic
twist (=-4).

The problem is at 2 and 3, we have to check if we are allowed to twist.

And John Cremona suggested

Is it possible to add a doctest illustrating the suggestion to "try an_padic instead"? That would be useful for the reference manual.


#6886 Elliptic curve isogeny checking can be expensive elliptic curves sage-4.2 defect 09/04/09

In #6384, code was introduced to check whether the kernel polynomial provided by the user was valid, by checking that it divides the appropriate division polynomial.

This can be too expensive! I have been working with isogenies of degree 163 over QQ, for which computing the 163-division polynomial takes many hours. So I want to introduce a check parameter to the isogeny construction, default True, so that users (or other code) can switch off this check (when they "know" they are right!).


#8325 Sphinx warning: 'Could not parse cython argspec' documentation sage-4.3.4 defect 02/21/10

Sphinx warnings from building the HTML reference manual include:

matrix/matrix_integer_dense.rst:6: (WARNING/2) error while formatting signature for sage.matrix.matrix_integer_dense.Matrix_integer_dense.LLL: Could not parse cython argspec
plot/plot3d/base.rst:6: (WARNING/2) error while formatting signature for sage.plot.plot3d.base.Graphics3d.export_jmol: Could not parse cython argspec

Related: #8244.


#261 a new matrix constructor: add lambda support linear algebra sage-4.4 enhancement 02/13/07

Kyle Schalm suggests:

 
 
here is a matrix constructor i would like to see:
 
Matrix(M, N, f):
   for i in range(1,M+1):
     for j in range(1,N+1):
       self[i][j] = f(i,j)   # or whatever the syntax is
 
 
i might use it like this:
 
A = Matrix(3, 3, lambda i,j: i+j)
 
i'd do it myself, but i don't have a development environment set up,
and don't wanna do that right now.
 
cheers,
kyle
 

#277 [with new patches, with positive review] Add generic_discrete_logarithm and order computation using Pollard's rho algorithm group_theory sage-2.10.3 enhancement 02/22/07

The computational cost of Shanks' Baby-Step Giant-Step algorithm and Pollard's rho and lambda algorithms are more or less the same, but the memory costs is much worse for Shanks' algorithm. It would be nice to have better discrete log algos and group structure computations, ala E. Teske, A Space Efficient Algorithm for Group Structure Computation (1998).


#3543 Unify jquery libraries in devel/sage and data/extcode build sage-4.5.3 enhancement 07/02/08

We currently ship two copies of the jquery javascript library:

  • jQuery 1.2.6 - New Wave Javascript - $Rev: 5685 $ in devel/sage-main/sage/dsage/web/static/jquery.js
  • jQuery 1.2.3 - New Wave Javascript - $Rev: 4663 $ in data/extcode/notebook/javascript/jquery/jquery.js

But we should on ship one copy.

Cheers,

Michael


#4264 change E.a_invariants() for an elliptic curve to return a tuple elliptic curves sage-4.2.1 enhancement 10/11/08

For consistency with b_invariants, etc., and to emphasize immutability, it would be good for E.a_invariants() to return a tuple. Changing this could change lots of doctests, etc., so this isn't trivial.

See trac #4262 for a related ticket


#3043 The SPKG.txt of the gfan spkg does not specify license exactly commutative algebra sage-4.3.2 defect 04/27/08

The gfan SPKG.txt says:

License

  • GPL

it does not say which version of the GPL it is.


abergeron (7 matches)

Ticket Summary Component Milestone Type Created
Description
#508 [with patch; positive review] problem with "sage -c" user interface sage-3.3 defect 08/29/07

Create any script, say test.sage. The following should work but doesn't:

  # sage -c "load test.sage"
Traceback (most recent call last):
  File "/home/was/s/local/bin/sage-eval", line 10, in <module>
    eval(compile(s,tmp_filename(),'exec'))
  File "/home/was/.sage//temp/sage/25215//tmp_0", line 1
    load test.sage
            ^
SyntaxError: invalid syntax

#4354 [with patch; positive review] loading a file with spaces in the filename doesn't work misc sage-3.3 defect 10/23/08

try it at home:

$ echo 'print "ok"' > 'test file.sage'
$ sage "test file.sage"

#4878 [with patch; positive review] Add a density_plot() function graphics sage-3.3 defect 12/24/08

As was requested a long time ago (in september!), I did the density_plot() function.

I've added as copyright-holders all the copyright-holders from contour_plot since over 80% of density_plot file is copy and paste from that.


#2770 [with patch; positive review] plot_region function graphics sage-3.3 enhancement 04/02/08

It would be great to have a plot_region function which would plot a region where a system of equations/inequalities were true.

Here is an initial version:

def plot_region(funcs, var1_range, var2_range, plot_points=400, **kwds):
    if not isinstance(funcs, (list, tuple)):
        funcs = [funcs]
    hvar, hmin, hmax = var1_range
    vvar, vmin, vmax = var2_range
    funcs = prod([f._fast_float_("%r"%hvar, "%r"%vvar) for f in funcs])
    return contour_plot(funcs, var1_range, var2_range, plot_points=plot_points,**kwds)

This uses an idea from cwitty (to use contour_plot) and the patch from #2768. A screenshot is attached below.


#4884 [with patch; positive review] Make colormap handling better graphics sage-3.3 enhancement 12/27/08

The colormap code is currently ad hoc and copied in all GraphicsPrimitive? subclasses that need it.

This patch fixes this by introducing a get_cmap() function in sage.plot.misc that the graphic primitives can call to make sense of what they are passed.

It also adds the option to specify a sequence of colors and use that as the colormap.

For the documentation I added a cmap_help() function which is imported in the global namespace that the docstrings can point to and that will explain what are the possible options, the valid names and everything since the names change rather often.


#4898 Add style and labels to contour_plot() graphics sage-4.2.1 enhancement 12/31/08

This patch add the option of styling lines, either individually or all at once, and adding contour level labels.

Another one is coming to support this in combination with #2770.


#3547 [with patch; positive review] create a polygon3d function graphics sage-3.3 enhancement 07/03/08

This should be the 3d analogue of the polygon function.


abmasse (4 matches)

Ticket Summary Component Milestone Type Created
Description
#8093 Adding of prefixes and palindrome prefixes iterators to the Words library combinatorics sage-4.3.3 enhancement 01/27/10

Adds three functions to iterate over prefixes and palindrome prefixes of finite and infinite words.


#8227 Improving iterated palindromic closure computation combinatorics sage-4.3.4 enhancement 02/10/10

There is a faster way to compute the iterated palindromic closure of a word than using the definition. The problem with the latter is that it needs to compute the longest f-palindromic suffix of the current word at each step, while it is possible to easily deduce this length only by looking at the directive word.
Here is an example:

sage: w = words.RandomWord(10)
sage: w.iterated_right_palindromic_closure(algorithm='definition')
word: 0010010001001000100100010010001001001000...
sage: timeit("print w.iterated_right_palindromic_closure(algorithm='definition').length()")
5 loops, best of 3: 211 ms per loop
sage: timeit("print w.iterated_right_palindromic_closure(algorithm='recursive').length()")
25 loops, best of 3: 9.46 ms per loop

The difference is particularly notable for longer words:

sage: w = words.RandomWord(15)
sage: timeit("print w.iterated_right_palindromic_closure(algorithm='definition').length()")
5 loops, best of 3: 3.73 s per loop
sage: timeit("print w.iterated_right_palindromic_closure(algorithm='recursive').length()")
25 loops, best of 3: 37.4 ms per loop

#8353 Adding height() and width() functions to square grid paths combinatorics sage-4.3.4 enhancement 02/24/10

When dealing with 2d word paths, it is very useful to know their height and their width.

In particular, one can compute a bounding box for a better displaying. The aim of this small ticket is to add those two functionalities.

By the way, while testing it, I noticed a strange behavior:

sage: Paths = WordPaths('abcABC')
sage: p = Paths('acABC')
sage: points = list(p.points())
sage: points
[(0, 0), (1, 0), (1/2, 1/2*sqrt3), (-1/2, 1/2*sqrt3), (-1, 0), (-1/2, -1/2*sqrt3)]
sage: y_coords = map(lambda (_,y):y, points)
sage: y_coords
[0, 0, 1/2*sqrt3, 1/2*sqrt3, 0, -1/2*sqrt3]
sage: max(y_coords)
-1/2*sqrt3

Shouldn't 1/2*sqrt3 be the highest element ? This doesn't make sense.


#8429 Split word.py file into 4 files combinatorics sage-4.4 enhancement 03/03/10

The file word.py is getting very huge and forces one to create new classes inside of it (see below for explanation) which will get the file word.py even more huge in the future...

If a file contains the following :

#file1.py
class A:
    #huge class
    pass
class C(A):
    #huge class
    pass

one can not create a new class between A and C in another file (because of loops of import) :

#file1.py
class A:
    #huge class
    pass
from file2 import B
class C(B):
    #huge class
    pass
#file2.py
from file1 import A
class B(A)
    #large intermediate class
    pass

So the solution is either to put everything in the same file or to put everything in different files. In this case, I choose the last solution because word.py is getting huge.

This ticket removes Word_class, FiniteWord_class and InfiniteWord_class from word.py and put them in new files called respectively abstrac_word.py, finite_word.py and infinite_word.py.


acleone (4 matches)

Ticket Summary Component Milestone Type Created
Description
#7996 Invisible Text With Dark Theme (White on White Text) notebook sage-4.3.2 defect 01/19/10

Editing cells with a dark theme makes the text invisible (white text on a white background).


#9090 Interactive matrix_viewer(...) notebook enhancement 05/29/10

Adds an interactive matrix viewer to the notebook.

Requires: #8758


#8758 Add a top-level /data with static.File(DATA) that serves files from the data directory notebook sage-4.5 enhancement 04/24/10

Instead of having /js, /css, etc, we should serve all static data files out of /data. For now this patch just adds /data using child_data = static.File(DATA), where static.File(path) is defined in twisted. It will serve files with the correct MIME type based on extension.

Eventually we should find all the /js and /css paths and change them to /data

At some point in the future we could even implement caching of all the static files easily by subclassing static.File(path), and making everything in /data cached.


#8759 Make the Sass css_dir be /data instead of /data/sage/css so that other components can use Sass notebook enhancement 04/24/10

Sass is the templating engine Sage uses for it's CSS.


agc (1 match)

Ticket Summary Component Milestone Type Created
Description
#206 Graphic.append() does not update xmin, xmax etc. packages sage-2.8.2 defect 01/22/07

If I add a bunch of graphics primitives to a Graphic object using the Graphic append() method, the __xmax, __xmin, __ymax, __ymin attributes are not updated. Therefore when I try to plot the graphic, nothing shows up. Code for the correct behaviour can be found in the Graphic.__add__() method.


aginiewicz (2 matches)

Ticket Summary Component Milestone Type Created
Description
#3710 [with spkg, positive review] Segfault in Tachyon on some latest GCC versions graphics sage-3.1.2 defect 07/22/08

Segfault confirmed on 32 bit linux with GCC 4.3.1 and GCC 4.2.4, versions prior to GCC 4.2.3 including should work, status of version 4.3.0 is still not known, also status of 64 bit builds is not known. This bug is bug in gcc or bug in Tachyon that showed up after some changes to GCC somewhere in between 2008-02-01 and 2008-05-19. Status of 64 bit version is unknown because I have no access to hardware with those compile versions.

When 32 bit threaded version of Tachyon is built using "make linux-thr" and used to render attached scene, it segfaults around 59%. Non threaded version works (one built with "make linux"), threaded version works when -fno-crossjumping -fno-reorder-blocks compilation flags are added.

Still working to get smaller test case and informations on gcc 4.3.0, there will hopefully be patch/spkg soon.

This ticket is follow-up of report from "Sage 3.0.6.alpha0 released" sage-devel thread.


#4057 [with patch, positive review] Underlines instead of headings in notebook version of docstring for R functions interfaces sage-3.2.1 defect 09/03/08

Things are different in notebook and console:

  • Because of underline trick, in notebook headings in docstring consists of only underline!

ahupfer (2 matches)

Ticket Summary Component Milestone Type Created
Description
#4414 Improve notebook responsiveness notebook sage-4.5.3 enhancement 10/31/08

Every user action should result in immediate feedback. If the feedback is not available some placeholder animation should be displayed during the calculation is done or until the feedback is received.


#4440 [with patch, positive work] Automatic Indentation notebook sage-3.3 enhancement 11/04/08

The patch provides automatic indentation for python after colons and same level identation. It works up to four levels of identation.


AlexanderDreyer (3 matches)

Ticket Summary Component Milestone Type Created
Description
#9536 python setup.py picks prefix from ~/.pydistutils.cfg build sage-4.5.3 defect 07/18/10

Hi, several packages do use python setup.py. This picks up the customized settings from ~/.pydistutils.cfg. This is bad, because it overrides the prefix setting.

For sage-main, I'll attach a patch: setup.cfg in the corresponding directory overrides the usere settings. Maybe there's a global solution.

Regards,

Alexander Dreyer


#9733 Parallel build of Singular 3-1-1-4-package fails in rare case build defect 08/12/10

It was discovered in #8059 , that the parallel build of the Singular 3-1-1-4 packages still breaks in rare cases (many CPU cores, slow hard disk).

There are two patches which should fix this issue upstream:  http://www.singular.uni-kl.de:8002/trac/ticket/250, see

svn diff -r 13112:13110 http://www.singular.uni-kl.de/svn/

#9768 Fix PolyBoRi's broken dynamic libraries algebra sage-4.6 defect 08/19/10

In #8830 we worked around PolyBoRi's broken dynamic libraries by removing them after build, hence using the static ones instead. The problem was caused by improper handling of a global variable which was fixed for upcoming PolyBoRi 0.7.

The package at  http://sage.math.washington.edu/home/dreyer/pb/polybori-0.6.4.p5.spkg backports this fix and reintroduces the dynamic libraries. The spkg is based on #9717 and assumes its sage-library patch to be applied. It installs, runs and passed testall on boxen.


AlexGhitza (5 matches)

Ticket Summary Component Milestone Type Created
Description
#5102 [with patch, positive review] eisenstein_series_qexp broken over finite fields modular forms sage-3.3 defect 01/25/09
sage: eisenstein_series_qexp(10, 15, GF(17))
15 + q + 3*q^2 + 15*q^3 + 7*q^4 + 13*q^5 + 11*q^6 + 11*q^7 + 15*q^8 + 7*q^9 + 5*q^10 + 7*q^11 + 2*q^12 + 12*q^13 + 12*q^14 + O(q^15)

is wrong, whereas

sage: eisenstein_series_qexp(10, 15).change_ring(GF(17))
15 + q + 3*q^2 + 15*q^3 + 7*q^4 + 13*q^5 + 11*q^6 + 11*q^7 + 15*q^8 + 7*q^9 + 5*q^10 + 7*q^11 + 3*q^12 + 14*q^13 + 16*q^14 + O(q^15)

is right. We tracked this down to a change in the polynomials over finite fields constructor when check=False. We'll quickly fix this at the cost of making it slower; better fix will come soon.


#7940 real_mpfr: fix docstring so ref manual builds algebra sage-4.3.1 defect 01/15/10

A triple quote """ in real_mpfr.pyx needs to be converted to r""". This patch does that. Otherwise, the reference manual fails to build.


#8666 Bug in cyclotomic linear algebra algebra sage-4.4 defect 04/09/10

David Loeffler ran into this bug:

sage: K.<zeta4> = CyclotomicField(4) 
sage: m = matrix(K, [186]) 
sage: n = matrix(K, [125]) 
sage: m * n 
[-23087] 

(See  http://groups.google.com/group/sage-devel/browse_thread/thread/4f8633d6acf1c4ef# for the full thread.)

The issue is that the bound for what modulus the entries can be computed modulo is off by a factor of 2, because it doesn't take the sign into consideration. (Amusingly, this was basically the same fix as in #4823.)


#8730 cddlib makefile looks for gmp in /usr/local, should be $SAGE_LOCAL packages sage-4.4 defect 04/20/10

The current problem with this spkg is that gmp must be in SAGE_LOCAL, and not in /usr/local This stops the thing building on Solaris, see  http://groups.google.com/group/sage-release/msg/35b0c600a5ef250f and other messages in this thread. And gmpdir=/usr/local is hardwired in Makefile.am.


#9765 matrix2.pyx: replace "x < 1e-15" by "abs(x) < 1e-15" algebra sage-4.5.3 defect 08/18/10

In matrix2.pyx, there is a doctest (line 6406):

            sage: all(imag(e) < 1.1e-15 for e in eigs)

We should replace "imag(e)" by "abs(imag(e))".

The attached patch depends on #9760.


1 2 3 4 5 6 7 8 9 10 11
Note: See TracReports for help on using and creating reports.