[sagemath] 01/02: Temporarily disable giac as a standard package.
Tobias Hansen
thansen at moszumanska.debian.org
Sat Jan 21 22:31:58 UTC 2017
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch experimental
in repository sagemath.
commit 33ec547c78a281edf57dd372cec979ad5add8466
Author: Tobias Hansen <thansen at debian.org>
Date: Sat Jan 21 22:16:01 2017 +0000
Temporarily disable giac as a standard package.
---
debian/patches/dt-disable-giac.patch | 817 +++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 818 insertions(+)
diff --git a/debian/patches/dt-disable-giac.patch b/debian/patches/dt-disable-giac.patch
new file mode 100644
index 0000000..ae8a288
--- /dev/null
+++ b/debian/patches/dt-disable-giac.patch
@@ -0,0 +1,817 @@
+Description: Disable giac as a standard package
+ This is just temporarily reverting the commits of https://trac.sagemath.org/ticket/22011
+ until we have a giac package.
+Author: Tobias Hansen <thansen at debian.org>
+
+--- a/sage/build/pkgs/giac/spkg-install
++++ b/sage/build/pkgs/giac/spkg-install
+@@ -39,14 +39,7 @@
+ # --disable-ao (avoid libao deps)
+ # --disable-lapack (avoid lapack and blas deps because they could be from the base system)
+
+-# On OS X (10.12) the built in intl is broken
+-DISABLENLS=""
+-if [ "$UNAME" = "Darwin" ]; then
+- echo "OS X Building without Native Language Support"
+- DISABLENLS="--disable-nls"
+-fi
+-
+-./configure --prefix="$SAGE_LOCAL" --disable-gui --disable-ao --disable-lapack "$DISABLENLS"
++./configure --prefix="$SAGE_LOCAL" --disable-gui --disable-ao --disable-lapack
+
+ if [ $? -ne 0 ]; then
+ exit 1
+--- a/sage/build/pkgs/giac/type
++++ b/sage/build/pkgs/giac/type
+@@ -1 +1 @@
+-standard
++optional
+--- a/sage/src/sage/calculus/calculus.py
++++ b/sage/src/sage/calculus/calculus.py
+@@ -553,7 +553,7 @@
+
+ An example of this summation with Giac::
+
+- sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')
++ sage: symbolic_sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac') # optional - giac
+ (pi*e^(2*pi) - pi*e^(-2*pi))/(e^(2*pi) + e^(-2*pi) - 2)
+
+ SymPy can't solve that summation::
+--- a/sage/src/sage/interfaces/giac.py
++++ b/sage/src/sage/interfaces/giac.py
+@@ -1,10 +1,9 @@
+ r"""
+-Pexpect Interface to Giac
+-(You should prefer the cython interface: giacpy_sage and its libgiac command)
++Interface to Giac
+
+ (adapted by F. Han from William Stein and Gregg Musiker maple's interface)
+
+-You must have the Giac interpreter installed
++You must have the optional Giac interpreter installed
+ and available as the command ``giac`` in your PATH in
+ order to use this interface. You need a giac version
+ supporting "giac --sage" ( roughly after 0.9.1 ). In this case you do not have
+@@ -27,22 +26,22 @@
+
+ EXAMPLES::
+
+- sage: giac('3 * 5')
++ sage: giac('3 * 5') # optional - giac
+ 15
+- sage: giac.eval('ifactor(2005)')
++ sage: giac.eval('ifactor(2005)') # optional - giac
+ '5*401'
+- sage: giac.ifactor(2005)
++ sage: giac.ifactor(2005) # optional - giac
+ 2005
+- sage: l=giac.ifactors(2005) ; l; l[2]
++ sage: l=giac.ifactors(2005) ; l; l[2] # optional - giac
+ [5,1,401,1]
+ 401
+- sage: giac.fsolve('x^2=cos(x)+4', 'x','0..5')
++ sage: giac.fsolve('x^2=cos(x)+4', 'x','0..5') # optional - giac
+ [1.9140206190...
+- sage: giac.factor('x^5 - y^5')
++ sage: giac.factor('x^5 - y^5') # optional - giac
+ (x-y)*(x^4+x^3*y+x^2*y^2+x*y^3+y^4)
+- sage: R.<x,y>=QQ[];f=(x+y)^5;f2=giac(f);(f-f2).normal()
++ sage: R.<x,y>=QQ[];f=(x+y)^5;f2=giac(f);(f-f2).normal() #optional - giac
+ 0
+- sage: x,y=giac('x,y'); giac.int(y/(cos(2*x)+cos(x)),x) # random
++ sage: x,y=giac('x,y'); giac.int(y/(cos(2*x)+cos(x)),x) #random; optional - giac
+ y*2*((-(tan(x/2)))/6+(-2*1/6/sqrt(3))*ln(abs(6*tan(x/2)-2*sqrt(3))/abs(6*tan(x/2)+2*sqrt(3))))
+
+
+@@ -75,7 +74,7 @@
+
+ ::
+
+- sage: giac('factor(x^5-1)')
++ sage: giac('factor(x^5-1)') # optional - giac
+ (x-1)*(x^4+x^3+x^2+x+1)
+
+ Notice, there is no need to use a semicolon.
+@@ -87,7 +86,7 @@
+
+ ::
+
+- sage: giac('(x^5-1)').factor()
++ sage: giac('(x^5-1)').factor() # optional - giac
+ (x-1)*(x^4+x^3+x^2+x+1)
+
+ where ``expression.command()`` means the same thing as
+@@ -97,7 +96,7 @@
+
+ ::
+
+- sage: giac('(x^12-1)/(x-1)').normal()
++ sage: giac('(x^12-1)/(x-1)').normal() # optional - giac
+ x^11+x^10+x^9+x^8+x^7+x^6+x^5+x^4+x^3+x^2+x+1
+
+
+@@ -112,12 +111,12 @@
+
+ ::
+
+- sage: giac('(x^12-1)').factor( )
++ sage: giac('(x^12-1)').factor( ) # optional - giac
+ (x-1)*(x+1)*(x^2+1)*(x^2-x+1)*(x^2+x+1)*(x^4-x^2+1)
+
+ ::
+
+- sage: giac('(x^28-1)').factor( )
++ sage: giac('(x^28-1)').factor( ) # optional - giac
+ (x-1)*(x+1)*(x^2+1)*(x^6-x^5+x^4-x^3+x^2-x+1)*(x^6+x^5+x^4+x^3+x^2+x+1)*(x^12-x^10+x^8-x^6+x^4-x^2+1)
+
+ Another important feature of giac is its online help. We can
+@@ -142,12 +141,12 @@
+
+ ::
+
+- sage: alpha = giac((1+sqrt(5))/2)
+- sage: beta = giac(1-sqrt(5))/2
+- sage: f19 = alpha^19 - beta^19/sqrt(5)
+- sage: f19
++ sage: alpha = giac((1+sqrt(5))/2) # optional - giac
++ sage: beta = giac(1-sqrt(5))/2 # optional - giac
++ sage: f19 = alpha^19 - beta^19/sqrt(5) # optional - giac
++ sage: f19 # optional - giac
+ (sqrt(5)/2+1/2)^19-((-sqrt(5)+1)/2)^19/sqrt(5)
+- sage: (f19-(5778*sqrt(5)+33825)/5).normal()
++ sage: (f19-(5778*sqrt(5)+33825)/5).normal() # optional - giac
+ 0
+
+ Let's say we want to write a giac program now that squares a
+@@ -165,10 +164,10 @@
+
+ ::
+
+- sage: mysqcu = giac('proc(x) if x > 0 then x^2 else x^3 fi end')
+- sage: mysqcu(5)
++ sage: mysqcu = giac('proc(x) if x > 0 then x^2 else x^3 fi end') # optional - giac
++ sage: mysqcu(5) # optional - giac
+ 25
+- sage: mysqcu(-5)
++ sage: mysqcu(-5) # optional - giac
+ -125
+
+ More complicated programs should be put in a separate file and
+@@ -214,20 +213,20 @@
+
+ ::
+
+- sage: l=giac('normal((y+sqrt(2))^4)'); l
++ sage: l=giac('normal((y+sqrt(2))^4)'); l # optional - giac
+ y^4+4*sqrt(2)*y^3+12*y^2+8*sqrt(2)*y+4
+- sage: f=giac('(u,v)->{ if (u<v){ [u,v] } else { [v,u] }}');f(1,2),f(3,1)
++ sage: f=giac('(u,v)->{ if (u<v){ [u,v] } else { [v,u] }}');f(1,2),f(3,1) # optional - giac
+ ([1,2], [1,3])
+
+ The output of the giac command is a Giac object, and it can be used for another giac command.
+
+ ::
+
+- sage: l.factors()
++ sage: l.factors() #optional - giac
+ [y+sqrt(2),4]
+- sage: giac('(x^12-1)').factor( )
++ sage: giac('(x^12-1)').factor( ) # optional - giac
+ (x-1)*(x+1)*(x^2+1)*(x^2-x+1)*(x^2+x+1)*(x^4-x^2+1)
+- sage: giac('assume(y>0)'); giac('y^2=3').solve('y')
++ sage: giac('assume(y>0)'); giac('y^2=3').solve('y') #optional - giac
+ y
+ ...[sqrt(3)]
+
+@@ -235,19 +234,19 @@
+
+ ::
+
+- sage: x,y,z=giac('x,y,z');type(y)
++ sage: x,y,z=giac('x,y,z');type(y) # optional - giac
+ <class 'sage.interfaces.giac.GiacElement'>
+- sage: I1=(1/(cos(2*y)+cos(y))).integral(y,0,pi/4).simplify()
+- sage: (I1-((-2*ln((sqrt(3)-3*tan(1/8*pi))/(sqrt(3)+3*tan(1/8*pi)))*sqrt(3)-3*tan(1/8*pi))/9)).normal()
++ sage: I1=(1/(cos(2*y)+cos(y))).integral(y,0,pi/4).simplify() #optional - giac
++ sage: (I1-((-2*ln((sqrt(3)-3*tan(1/8*pi))/(sqrt(3)+3*tan(1/8*pi)))*sqrt(3)-3*tan(1/8*pi))/9)).normal() # optional - giac
+ 0
+- sage: ((y+z*sqrt(5))*(y-sqrt(5)*z)).normal()
++ sage: ((y+z*sqrt(5))*(y-sqrt(5)*z)).normal() # optional - giac
+ y^2-5*z^2
+
+ Polynomials or elements of SR can be evaluated directly by the giac interface.
+
+ ::
+
+- sage: R.<a,b>=QQ[];f=(2+a+b);p=giac.gcd(f^3+5*f^5,f^2+f^5);p;R(p);
++ sage: R.<a,b>=QQ[];f=(2+a+b);p=giac.gcd(f^3+5*f^5,f^2+f^5);p;R(p); #optional - giac
+ a^2+2*a*b+4*a+b^2+4*b+4
+ a^2 + 2*a*b + b^2 + 4*a + 4*b + 4
+
+@@ -255,7 +254,7 @@
+
+ ::
+
+- sage: a=sqrt(2);giac('Digits:=30;a:=5');a,giac('a'),giac(a),giac(a).evalf()
++ sage: a=sqrt(2);giac('Digits:=30;a:=5');a,giac('a'),giac(a),giac(a).evalf() # optional - giac
+ 30
+ (sqrt(2), 5, sqrt(2), 1.41421356237309504880168872421)
+
+@@ -267,7 +266,7 @@
+
+ EXAMPLES::
+
+- sage: giac == loads(dumps(giac))
++ sage: giac == loads(dumps(giac)) # optional - giac
+ True
+ """
+ Expect.__init__(self,
+@@ -286,12 +285,12 @@
+ """
+ EXAMPLES::
+
+- sage: giac._function_class()
++ sage: giac._function_class() # optional - giac
+ <class 'sage.interfaces.giac.GiacFunction'>
+
+ ::
+
+- sage: type(giac.diff)
++ sage: type(giac.diff) # optional - giac
+ <class 'sage.interfaces.giac.GiacFunction'>
+ """
+ return GiacFunction
+@@ -324,17 +323,17 @@
+
+ EXAMPLES::
+
+- sage: giac._read_in_file_command('test')
++ sage: giac._read_in_file_command('test') # optional - giac
+ 'read "test"'
+
+ ::
+
+- sage: filename = tmp_filename()
+- sage: f = open(filename,'w')
+- sage: f.write('xx := 22;\n')
+- sage: f.close()
+- sage: giac.read(filename)
+- sage: giac.get('xx').strip()
++ sage: filename = tmp_filename() # optional - giac
++ sage: f = open(filename,'w') # optional - giac
++ sage: f.write('xx := 22;\n') # optional - giac
++ sage: f.close() # optional - giac
++ sage: giac.read(filename) # optional - giac
++ sage: giac.get('xx').strip() # optional - giac
+ '22'
+ """
+ return 'read "%s"'%filename
+@@ -343,17 +342,17 @@
+ """
+ EXAMPLES::
+
+- sage: giac._quit_string()
++ sage: giac._quit_string() # optional - giac
+ '@d'
+
+ ::
+
+- sage: m = Giac()
+- sage: a = m(2)
+- sage: m.is_running()
++ sage: m = Giac() # optional - giac
++ sage: a = m(2) # optional - giac
++ sage: m.is_running() # optional - giac
+ True
+- sage: m.quit()
+- sage: m.is_running()
++ sage: m.quit() # optional - giac
++ sage: m.is_running() # optional - giac
+ False
+ """
+ return '@d'
+@@ -397,13 +396,13 @@
+
+ EXAMPLES::
+
+- sage: m = Giac()
+- sage: m.expect() is None
++ sage: m = Giac() # optional - giac
++ sage: m.expect() is None # optional - giac
+ True
+- sage: m._start()
+- sage: m.expect()
++ sage: m._start() # optional - giac
++ sage: m.expect() # optional - giac
+ Giac with PID ... running .../giac --sage
+- sage: m.quit()
++ sage: m.quit() # optional - giac
+ """
+ return self._expect
+
+@@ -434,8 +433,8 @@
+
+ EXAMPLES::
+
+- sage: c = giac.completions('cas')
+- sage: 'cas_setup' in c
++ sage: c = giac.completions('cas') # optional - giac
++ sage: 'cas_setup' in c # optional - giac
+ True
+ """
+ if self._expect is None:
+@@ -461,10 +460,10 @@
+
+ EXAMPLES::
+
+- sage: c = giac._commands()
+- sage: len(c) > 100
++ sage: c = giac._commands() # optional - giac
++ sage: len(c) > 100 # optional - giac
+ True
+- sage: 'Psi' in c
++ sage: 'Psi' in c # optional - giac
+ True
+ """
+ try:
+@@ -486,10 +485,10 @@
+
+ EXAMPLES::
+
+- sage: c = giac._tab_completion(use_disk_cache=False, verbose=False)
+- sage: len(c) > 100
++ sage: c = giac._tab_completion(use_disk_cache=False, verbose=False) # optional - giac
++ sage: len(c) > 100 # optional - giac
+ True
+- sage: 'factors' in c
++ sage: 'factors' in c # optional - giac
+ True
+ """
+ try:
+@@ -522,13 +521,13 @@
+
+ EXAMPLES::
+
+- sage: t = giac.cputime()
+- sage: t # random
++ sage: t = giac.cputime() # optional - giac
++ sage: t # random; optional - giac
+ 0.02
+- sage: x = giac('x')
+- sage: giac.diff(x^2, x)
++ sage: x = giac('x') # optional - giac
++ sage: giac.diff(x^2, x) # optional - giac
+ 2*x
+- sage: giac.cputime(t) # random
++ sage: giac.cputime(t) # random; optional - giac
+ 0.0
+ """
+ if t is None:
+@@ -541,11 +540,11 @@
+ """
+ EXAMPLES::
+
+- sage: giac._eval_line('2+2')
++ sage: giac._eval_line('2+2') # optional - giac
+ '4'
+
+- sage: A=matrix([range(280)])
+- sage: GA=giac(A)
++ sage: A=matrix([range(280)]) # optional - giac
++ sage: GA=giac(A) # optional - giac
+ """
+ with gc_disabled():
+ z = Expect._eval_line(self, line, allow_use_file=allow_use_file,
+@@ -568,17 +567,17 @@
+
+ EXAMPLES::
+
+- sage: giac.eval("2+2;\n3")
++ sage: giac.eval("2+2;\n3") #optional - giac
+ '4,3'
+- sage: giac.eval("2+2;\n3",False)
++ sage: giac.eval("2+2;\n3",False) # optional - giac
+ '4\n3'
+- sage: s='g(x):={\nx+1;\nx+2;\n}'
+- sage: giac(s)
++ sage: s='g(x):={\nx+1;\nx+2;\n}' # optional - giac
++ sage: giac(s) # optional - giac
+ (x)->{
+ x+1;
+ x+2;
+ }
+- sage: giac.g(5)
++ sage: giac.g(5) # optional - giac
+ 7
+ """
+ #we remove \n to enable multiline code in the notebook magic mode %giac
+@@ -595,8 +594,8 @@
+
+ EXAMPLES::
+
+- sage: giac.set('xx', '2')
+- sage: giac.get('xx')
++ sage: giac.set('xx', '2') # optional - giac
++ sage: giac.get('xx') # optional - giac
+ '2'
+ """
+ cmd = '%s:=%s:;'%(var,value) #if giac is not in maple mode ( maple_mode(0))
+@@ -611,8 +610,8 @@
+
+ EXAMPLES::
+
+- sage: giac.set('xx', '2')
+- sage: giac.get('xx')
++ sage: giac.set('xx', '2') # optional - giac
++ sage: giac.get('xx') # optional - giac
+ '2'
+ """
+ s = self.eval('%s'%var)
+@@ -629,8 +628,8 @@
+
+ ::
+
+- sage: m = giac(2)
+- sage: type(m)
++ sage: m = giac(2) # optional - giac
++ sage: type(m) # optional - giac
+ <class 'sage.interfaces.giac.GiacElement'>
+ """
+ return GiacElement
+@@ -646,8 +645,8 @@
+
+ ::
+
+- sage: two = giac(2)
+- sage: type(two.gcd)
++ sage: two = giac(2) # optional - giac
++ sage: type(two.gcd) # optional - giac
+ <class 'sage.interfaces.giac.GiacFunctionElement'>
+ """
+ return GiacFunctionElement
+@@ -658,10 +657,10 @@
+
+ EXAMPLES::
+
+- sage: giac._equality_symbol()
++ sage: giac._equality_symbol() # optional - giac
+ '=='
+
+- sage: giac(2) == giac(2)
++ sage: giac(2) == giac(2) # optional - giac
+ True
+ """
+ return '=='
+@@ -677,7 +676,7 @@
+
+ ::
+
+- sage: giac(2) == giac(2)
++ sage: giac(2) == giac(2) # optional - giac
+ True
+ """
+ return '1'
+@@ -729,11 +728,11 @@
+
+ EXAMPLES::
+
+- sage: giac.set('xx', '2')
+- sage: giac.get('xx')
++ sage: giac.set('xx', '2') # optional - giac
++ sage: giac.get('xx') # optional - giac
+ '2'
+- sage: giac.clear('xx')
+- sage: giac.get('xx')
++ sage: giac.clear('xx') # optional - giac
++ sage: giac.get('xx') # optional - giac
+ 'xx'
+ """
+ self.eval('purge(%s)'%var)
+@@ -744,7 +743,7 @@
+
+ EXAMPLES::
+
+- sage: giac.version()
++ sage: giac.version() # optional - giac
+ "giac...
+
+ """
+@@ -772,7 +771,7 @@
+
+ EXAMPLES::
+
+- sage: two = giac(2)
++ sage: two = giac(2) # optional - giac
+ sage: two.gcd._sage_doc_() # not tested; output may vary LANG
+ "...gcd - greatest common divisor of polynomials...
+ """
+@@ -785,9 +784,9 @@
+
+ EXAMPLES::
+
+- sage: float(giac(1/2))
++ sage: float(giac(1/2)) # optional - giac
+ 0.5
+- sage: type(_)
++ sage: type(_) # optional - giac
+ <type 'float'>
+ """
+ return float(giac.eval('evalf(%s)' % self.name()))
+@@ -798,11 +797,11 @@
+
+ EXAMPLES::
+
+- sage: f=giac('y^3+1+t')
+- sage: g=(f.unapply('y,t'))
+- sage: g
++ sage: f=giac('y^3+1+t') # optional - giac
++ sage: g=(f.unapply('y,t')) # optional - giac
++ sage: g # optional - giac
+ (y,t)->y^3+1+t
+- sage: g(1,2)
++ sage: g(1,2) # optional - giac
+ 4
+ """
+ return giac('unapply(%s,%s)'%(self,var))
+@@ -817,8 +816,8 @@
+
+ EXAMPLES::
+
+- sage: m = giac('x^2+y^2')
+- sage: hash(m) # random
++ sage: m = giac('x^2+y^2') # optional - giac
++ sage: hash(m) # random; optional - giac
+ 4614285348919569149
+ """
+ return hash(giac.eval('string(%s);'%self.name()))
+@@ -833,33 +832,33 @@
+
+ EXAMPLES::
+
+- sage: a = giac(5)
+- sage: b = giac(5)
+- sage: a == b
++ sage: a = giac(5) # optional - giac
++ sage: b = giac(5) # optional - giac
++ sage: a == b # optional - giac
+ True
+- sage: a == 5
++ sage: a == 5 # optional - giac
+ True
+
+ ::
+
+- sage: c = giac(3)
+- sage: a == c
++ sage: c = giac(3) # optional - giac
++ sage: a == c # optional - giac
+ False
+- sage: a < c
++ sage: a < c # optional - giac
+ False
+- sage: a < 6
++ sage: a < 6 # optional - giac
+ True
+- sage: c <= a
++ sage: c <= a # optional - giac
+ True
+
+ ::
+
+ TESTS::
+
+- sage: x = var('x')
+- sage: t = giac((x+1)^2)
+- sage: u = giac(x^2+2*x+1)
+- sage: u == t
++ sage: x = var('x') # optional - giac
++ sage: t = giac((x+1)^2) # optional - giac
++ sage: u = giac(x^2+2*x+1) # optional - giac
++ sage: u == t # optional - giac
+ False
+ """
+ P = self.parent()
+@@ -894,8 +893,8 @@
+ """
+ EXAMPLES::
+
+- sage: a = giac(2)
+- sage: 'sin' in a._tab_completion()
++ sage: a = giac(2) # optional - giac
++ sage: 'sin' in a._tab_completion() # optional - giac
+ True
+ """
+ return self.parent()._tab_completion()
+@@ -905,7 +904,7 @@
+ """
+ EXAMPLES::
+
+- sage: len(giac([1,2,3]))
++ sage: len(giac([1,2,3])) # optional - giac
+ 3
+ """
+ return int(self.size())
+@@ -914,8 +913,8 @@
+ """
+ EXAMPLES::
+
+- sage: l = giac([1,2,3])
+- sage: list(iter(l))
++ sage: l = giac([1,2,3]) # optional - giac
++ sage: list(iter(l)) # optional - giac
+ [1, 2, 3]
+ """
+ for i in range(len(self)): # zero-indexed if giac is maple_mode(0)
+@@ -928,11 +927,11 @@
+
+ EXAMPLES::
+
+- sage: a = giac(2)
+- sage: a.__del__()
+- sage: a
++ sage: a = giac(2) # optional - giac
++ sage: a.__del__() # optional - giac
++ sage: a # optional - giac
+ 2
+- sage: del a
++ sage: del a # optional - giac
+ sage: a
+ Traceback (most recent call last):
+ ...
+@@ -950,12 +949,12 @@
+ EXAMPLES::
+
+ sage: x = var('x')
+- sage: giac(x)
++ sage: giac(x) # optional - giac
+ x
+- sage: giac(5)
++ sage: giac(5) # optional - giac
+ 5
+- sage: M = matrix(QQ,2,range(4))
+- sage: giac(M)
++ sage: M = matrix(QQ,2,range(4)) # optional - giac
++ sage: giac(M) # optional - giac
+ [[0,1],[2,3]]
+ """
+ self._check_valid()
+@@ -967,7 +966,7 @@
+
+ EXAMPLES::
+
+- sage: print(latex(giac('(x^4 - y)/(y^2-3*x)')))
++ sage: print(latex(giac('(x^4 - y)/(y^2-3*x)'))) # optional - giac
+ "\frac{(x^{4}-y)}{(y^{2}-3\cdot x)}"
+
+ """
+@@ -982,17 +981,17 @@
+
+ EXAMPLES::
+
+- sage: R.<x,y>=QQ[]
+- sage: M=giac('matrix(4,4,(k,l)->(x^k-y^l))'); M
++ sage: R.<x,y>=QQ[] # optional - giac
++ sage: M=giac('matrix(4,4,(k,l)->(x^k-y^l))'); M # optional - giac
+ matrix[[0,1-y,1-y^2,1-y^3],[x-1,x-y,x-y^2,x-y^3],[x^2-1,x^2-y,x^2-y^2,x^2-y^3],[x^3-1,x^3-y,x^3-y^2,x^3-y^3]]
+- sage: M.eigenvals() # random
++ sage: M.eigenvals() # random; optional - giac
+ 0,0,(x^3+x^2+x-y^3-y^2-y+sqrt(x^6+2*x^5+3*x^4-14*x^3*y^3+2*x^3*y^2+2*x^3*y+6*x^3+2*x^2*y^3-14*x^2*y^2+2*x^2*y+5*x^2+2*x*y^3+2*x*y^2-14*x*y+4*x+y^6+2*y^5+3*y^4+6*y^3+5*y^2+4*y-12))/2,(x^3+x^2+x-y^3-y^2-y-sqrt(x^6+2*x^5+3*x^4-14*x^3*y^3+2*x^3*y^2+2*x^3*y+6*x^3+2*x^2*y^3-14*x^2*y^2+2*x^2*y+5*x^2+2*x*y^3+2*x*y^2-14*x*y+4*x+y^6+2*y^5+3*y^4+6*y^3+5*y^2+4*y-12))/2
+- sage: Z=matrix(R,M);Z
++ sage: Z=matrix(R,M);Z # optional - giac
+ [ 0 -y + 1 -y^2 + 1 -y^3 + 1]
+ [ x - 1 x - y -y^2 + x -y^3 + x]
+ [ x^2 - 1 x^2 - y x^2 - y^2 -y^3 + x^2]
+ [ x^3 - 1 x^3 - y x^3 - y^2 x^3 - y^3]
+- sage: parent(Z)
++ sage: parent(Z) # optional - giac
+ Full MatrixSpace of 4 by 4 dense matrices over Multivariate Polynomial Ring in x, y over Rational Field
+ """
+ v = self.dim()
+@@ -1015,14 +1014,14 @@
+
+ EXAMPLE::
+
+- sage: m = giac('x^2 + 5*y')
+- sage: m.sage()
++ sage: m = giac('x^2 + 5*y') # optional - giac
++ sage: m.sage() # optional - giac
+ x^2 + 5*y
+
+ ::
+
+- sage: m = giac('sin(2*sqrt(1-x^2)) * (1 - cos(1/x))^2')
+- sage: m.trigexpand().sage()
++ sage: m = giac('sin(2*sqrt(1-x^2)) * (1 - cos(1/x))^2') # optional - giac
++ sage: m.trigexpand().sage() # optional - giac
+ 2*cos(sqrt(-x^2 + 1))*cos(1/x)^2*sin(sqrt(-x^2 + 1)) - 4*cos(sqrt(-x^2 + 1))*cos(1/x)*sin(sqrt(-x^2 + 1)) + 2*cos(sqrt(-x^2 + 1))*sin(sqrt(-x^2 + 1))
+
+ """
+@@ -1055,16 +1054,16 @@
+
+ EXAMPLES::
+
+- sage: y=giac('y');f=(sin(2*y)/y).integral(y).simplify(); f
++ sage: y=giac('y');f=(sin(2*y)/y).integral(y).simplify(); f # optional - giac
+ Si(2*y)
+- sage: f.diff(y).simplify()
++ sage: f.diff(y).simplify() # optional - giac
+ sin(2*y)/y
+
+ ::
+
+- sage: f = giac('exp(x^2)').integral('x',0,1) ; f
++ sage: f = giac('exp(x^2)').integral('x',0,1) ; f # optional - giac
+ 1.46265174...
+- sage: x,y=giac('x'),giac('y');integrate(cos(x+y),'x=0..pi').simplify()
++ sage: x,y=giac('x'),giac('y');integrate(cos(x+y),'x=0..pi').simplify() # optional - giac
+ -2*sin(y)
+ """
+ if min is None:
+@@ -1094,7 +1093,7 @@
+
+ EXAMPLES::
+
+- sage: giac('1/(1+k^2)').sum('k',-oo,+infinity).simplify()
++ sage: giac('1/(1+k^2)').sum('k',-oo,+infinity).simplify() # optional - giac
+ (pi*exp(pi)^2+pi)/(exp(pi)^2-1)
+ """
+ if min is None:
+@@ -1147,8 +1146,8 @@
+ EXAMPLES::
+
+ sage: from sage.interfaces.giac import __doctest_cleanup
+- sage: m = giac(2)
+- sage: giac.is_running()
++ sage: m = giac(2) # optional - giac
++ sage: giac.is_running() # optional - giac
+ True
+ sage: __doctest_cleanup()
+ sage: giac.is_running()
+--- a/sage/src/sage/matrix/matrix1.pyx
++++ b/sage/src/sage/matrix/matrix1.pyx
+@@ -170,20 +170,20 @@
+ EXAMPLES::
+
+ sage: M = matrix(ZZ,2,range(4))
+- sage: giac(M)
++ sage: giac(M) # optional - giac
+ [[0,1],[2,3]]
+
+ ::
+
+ sage: M = matrix(QQ,3,[1,2,3,4/3,5/3,6/4,7,8,9])
+- sage: giac(M)
++ sage: giac(M) # optional - giac
+ [[1,2,3],[4/3,5/3,3/2],[7,8,9]]
+
+ ::
+
+ sage: P.<x> = ZZ[]
+ sage: M = matrix(P, 2, [-9*x^2-2*x+2, x-1, x^2+8*x, -3*x^2+5])
+- sage: giac(M)
++ sage: giac(M) # optional - giac
+ [[-9*x^2-2*x+2,x-1],[x^2+8*x,-3*x^2+5]]
+ """
+ s = str(self.rows()).replace('(','[').replace(')',']')
+--- a/sage/src/sage/modules/free_module_element.pyx
++++ b/sage/src/sage/modules/free_module_element.pyx
+@@ -835,21 +835,21 @@
+ """
+ EXAMPLES::
+
+- sage: v = vector(ZZ, 4, range(4))
+- sage: giac(v)+v
++ sage: v = vector(ZZ, 4, range(4)) # optional - giac
++ sage: giac(v)+v # optional - giac
+ [0,2,4,6]
+
+ ::
+
+- sage: v = vector(QQ, 3, [2/3, 0, 5/4])
+- sage: giac(v)
++ sage: v = vector(QQ, 3, [2/3, 0, 5/4]) # optional - giac
++ sage: giac(v) # optional - giac
+ [2/3,0,5/4]
+
+ ::
+
+- sage: P.<x> = ZZ[]
+- sage: v = vector(P, 3, [x^2 + 2, 2*x + 1, -2*x^2 + 4*x])
+- sage: giac(v)
++ sage: P.<x> = ZZ[] # optional - giac
++ sage: v = vector(P, 3, [x^2 + 2, 2*x + 1, -2*x^2 + 4*x]) # optional - giac
++ sage: giac(v) # optional - giac
+ [x^2+2,2*x+1,-2*x^2+4*x]
+ """
+ return self.list()
+--- a/sage/src/sage/symbolic/expression.pyx
++++ b/sage/src/sage/symbolic/expression.pyx
+@@ -11547,7 +11547,7 @@
+
+ Use Giac to perform this summation::
+
+- sage: (sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')).factor()
++ sage: (sum(1/(1+k^2), k, -oo, oo, algorithm = 'giac')).factor() # optional - giac
+ pi*(e^(2*pi) + 1)/((e^pi + 1)*(e^pi - 1))
+
+ Use Maple as a backend for summation::
diff --git a/debian/patches/series b/debian/patches/series
index 67fbbd9..8199308 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -69,3 +69,4 @@ dt-version-glpk-4.60-extra-hacky-fixes.patch
dt-r-no-readline.patch
dt-more-fix-test-cases.patch
dt-work-around-doc-common-conf.patch
+dt-disable-giac.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/sagemath.git
More information about the debian-science-commits
mailing list