{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)
| 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:
Apart from solving this bug it introduces couple of new features (by moving it into new symbolics' SFunction sub-class)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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:
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:
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.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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; \
(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 \
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):
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?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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')
... Comment by Burcin Erocal on sage-devel (25/06/2006):
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
(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
(2) Sage patch:
Testing: Above, patches will provide two new user accessible functions
Please see the docs for usage of these functions: It would be good to thoroughly test the following features:
Please test diff implementation against some related bugs 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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:
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:
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
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. 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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,
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
