Skip to content

Commit

Permalink
Merge branch 'develop' into public/algebras/fp_algebras
Browse files Browse the repository at this point in the history
* develop: (101 commits)
  Updated Sage version to 6.1.beta2
  fix latex
  fix documentation
  minor typography
  Trac 13101: mark doctest as "long time"
  trac 13101 better doctest
  Trac 13101: Fix bug in enumerate_totallyreal_fields_all
  sagemath#9706: review patch.
  trac 9706: Propose new class structure
  Symbolic Chebyshev polynomials: reviewer patch
  trac 9706: Collective patch. Bugfixes, extensions, optimizations, documentation, doctests for chebyshev_T, chebyshev_U and base class for ortho polys
  Fixing Whitespace errors
  Use bash as SHELL for build/Makefile
  allow numpy arrays in list_plot, line, points
  Trac sagemath#12322: Add a doctest for the correct behavior introduced in trac sagemath#12737.
  Trac sagemath#14186 coerce_binop errors with keyword arguments
  trac sagemath#15553: Broken links in the doc of graph/ and numerical/
  Improve handling of make targets sage, csage, extcode, scripts
  Reorded all.py to match original (so fewer changes).
  Fixed minor typo in cobminat/crystals/letters.pyx.
  ...
  • Loading branch information
Travis Scrimshaw committed Dec 23, 2013
2 parents 21b71a6 + 036984d commit 7741424
Show file tree
Hide file tree
Showing 133 changed files with 10,723 additions and 3,415 deletions.
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Sage version 6.1.beta1, released 2013-12-21
Sage version 6.1.beta2, released 2013-12-23
36 changes: 20 additions & 16 deletions build/deps
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,10 @@ all-sage: \
$(INST)/$(NCURSES) \
$(INST)/$(ZLIB) \
$(INST)/$(ZNPOLY) \
scripts \
sage \
csage \
extcode
$(INST)/sage \
$(INST)/csage \
$(EXTCODE) \
$(SCRIPTS)

# TOOLCHAIN consists of dependencies determined by build/install,
# including for example the GCC package.
Expand All @@ -133,7 +133,7 @@ toolchain-deps:

# Everything needed to start up Sage using "./sage". Of course, not
# every part of Sage will work. It does not include Maxima for example.
SAGERUNTIME = scripts sage $(INST)/$(SAGENB) $(INST)/$(IPYTHON) $(INST)/$(GAP)
SAGERUNTIME = $(SCRIPTS) $(INST)/sage $(INST)/$(SAGENB) $(INST)/$(IPYTHON)

###############################################################################
# Building the base system
Expand Down Expand Up @@ -308,7 +308,7 @@ $(INST)/$(SQLITE): $(INST)/$(READLINE)
+$(PIPE) "$(SAGE_SPKG) $(SQLITE) 2>&1" "tee -a $(SAGE_LOGS)/$(SQLITE).log"

# To build SageTeX, you just need Python, but to test (SAGE_CHECK=yes)
# SageTeX, you actually need to run sage, produce plots,...
# SageTeX, you actually need to run Sage, produce plots,...
$(INST)/$(SAGETEX): $(INST)/$(PYTHON) \
$(SAGERUNTIME) $(INST)/$(MAXIMA) $(INST)/$(SCIPY) \
$(INST)/$(MATPLOTLIB) $(INST)/$(PIL) $(INST)/$(TACHYON)
Expand Down Expand Up @@ -418,7 +418,7 @@ $(INST)/$(PYGMENTS): $(INST)/$(PYTHON) $(INST)/$(SETUPTOOLS)
# on the one hand, programs needed for the build/install process of the
# Sage library (e.g. JINJA2), and on the
# other hand all dependencies for Cython files (e.g. PARI, NTL, MPIR).
sage: \
$(INST)/sage: \
$(INST)/$(ATLAS) \
$(INST)/$(CEPHES) \
$(INST)/$(CLIQUER) \
Expand Down Expand Up @@ -456,21 +456,25 @@ sage: \
$(INST)/$(SINGULAR) \
$(INST)/$(SYMMETRICA) \
$(INST)/$(ZNPOLY) \
csage
$(PIPE) '{ if [ -z "$(SAGE_INSTALL_FETCH_ONLY)" ]; then cd $(SAGE_SRC) && . ./bin/sage-env && time python setup.py install; fi; } 2>&1' 'tee -a $(SAGE_LOGS)/sage-$(SAGE_VERSION).log'

scripts: $(SCRIPT_TARGETS)

extcode: $(EXTCODE_TARGETS)

csage: $(INST)/$(SCONS) \
$(INST)/csage
if [ -z "$$SAGE_INSTALL_FETCH_ONLY" ]; then \
cd $(SAGE_SRC) && source bin/sage-env && \
$(PIPE) 'time python setup.py install 2>&1' 'tee -a $(SAGE_LOGS)/sage-$(SAGE_VERSION).log' && \
touch $@; \
fi

$(INST)/csage: $(INST)/$(SCONS) \
$(INST)/$(MPIR) \
$(INST)/$(NTL) \
$(INST)/$(PARI) \
$(INST)/$(POLYBORI) \
$(INST)/$(PYNAC) \
$(INST)/$(PYTHON)
$(PIPE) '{ if [ -z "$(SAGE_INSTALL_FETCH_ONLY)" ]; then cd $(SAGE_SRC)/c_lib && . ../bin/sage-env && time scons -Q install; fi; } 2>&1' 'tee -a $(SAGE_LOGS)/csage-$(SAGE_VERSION).log'
if [ -z "$$SAGE_INSTALL_FETCH_ONLY" ]; then \
cd $(SAGE_SRC) && source bin/sage-env && cd c_lib && \
$(PIPE) 'time scons -Q install 2>&1' 'tee -a $(SAGE_LOGS)/csage-$(SAGE_VERSION).log' && \
touch $@; \
fi

$(INST)/ccache: $(BASE) $(INST)/$(ZLIB)
+$(PIPE) "$(SAGE_SPKG) ccache 2>&1" "tee -a $(SAGE_LOGS)/ccache.log"
Expand Down
9 changes: 7 additions & 2 deletions build/install
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,11 @@ cat >&3 <<EOF
EOF

# Use bash as shell for the Makefile (bash obviously exists, since
# this build/install script runs under bash).
echo >&3 "SHELL = `command -v bash`"
echo >&3

# If the user (or the Makefile) has set SAGE_PARALLEL_SPKG_BUILD=no,
# then turn off parallel building: disable just building multiple
# packages at the same time. Individual packages can still be built
Expand Down Expand Up @@ -490,7 +495,7 @@ for file in "$SAGE_SRC/bin/"*; do
echo >&3 " \$(SAGE_SRC)${file#$SAGE_SRC} \\"
done
echo >&3
echo >&3 'SCRIPT_TARGETS = \'
echo >&3 'SCRIPTS = \'
for file in "$SAGE_SRC/bin/"*; do
echo >&3 " \$(SAGE_LOCAL)${file#$SAGE_SRC} \\"
done
Expand All @@ -500,7 +505,7 @@ for file in `find "$SAGE_SRC"/ext -type f`; do
echo >&3 " \$(SAGE_SRC)${file#$SAGE_SRC} \\"
done
echo >&3
echo >&3 'EXTCODE_TARGETS = \'
echo >&3 'EXTCODE = \'
for file in `find "$SAGE_SRC"/ext -type f`; do
echo >&3 " \$(SAGE_EXTCODE)${file#$SAGE_SRC/ext} \\"
done
Expand Down
2 changes: 1 addition & 1 deletion src/bin/sage-banner
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
┌────────────────────────────────────────────────────────────────────┐
│ Sage Version 6.1.beta1, Release Date: 2013-12-21
│ Sage Version 6.1.beta2, Release Date: 2013-12-23
│ Type "notebook()" for the browser-based notebook interface. │
│ Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
Expand Down
4 changes: 2 additions & 2 deletions src/bin/sage-version.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sage version information for shell scripts
# This file is auto-generated by the sage-update-version script, do not edit!
SAGE_VERSION='6.1.beta1'
SAGE_RELEASE_DATE='2013-12-21'
SAGE_VERSION='6.1.beta2'
SAGE_RELEASE_DATE='2013-12-23'
17 changes: 17 additions & 0 deletions src/doc/en/reference/combinat/rc_bijections.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Rigged Configuration Bijections
===============================

.. toctree::
:maxdepth: 1

../sage/combinat/rigged_configurations/bijection
../sage/combinat/rigged_configurations/bij_abstract_class
../sage/combinat/rigged_configurations/bij_type_A
../sage/combinat/rigged_configurations/bij_type_B
../sage/combinat/rigged_configurations/bij_type_C
../sage/combinat/rigged_configurations/bij_type_D
../sage/combinat/rigged_configurations/bij_type_A2_odd
../sage/combinat/rigged_configurations/bij_type_A2_even
../sage/combinat/rigged_configurations/bij_type_A2_dual
../sage/combinat/rigged_configurations/bij_type_D_twisted

7 changes: 2 additions & 5 deletions src/doc/en/reference/combinat/rigged_configurations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Rigged Configurations
=====================

.. toctree::
:maxdepth: 2
:maxdepth: 1

../sage/combinat/rigged_configurations/rigged_configurations
../sage/combinat/rigged_configurations/rigged_configuration_element
Expand All @@ -15,8 +15,5 @@ Rigged Configurations

../sage/combinat/rigged_configurations/rigged_partition

../sage/combinat/rigged_configurations/bijection
../sage/combinat/rigged_configurations/bij_abstract_class
../sage/combinat/rigged_configurations/bij_type_A
../sage/combinat/rigged_configurations/bij_type_D
rc_bijections

2 changes: 1 addition & 1 deletion src/doc/en/thematic_tutorials/linear_programming.rst
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ change !) filename is joined.

* A compiled version of the library
* CPLEX : ``libcplex.a``
* GUROBI : ``libgurobi45.so``
* GUROBI : ``libgurobi55.so`` (or more recent)

* The library file
* CPLEX : ``cplex.h``
Expand Down
12 changes: 12 additions & 0 deletions src/doc/fr/tutorial/afterword.rst
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,18 @@ Aussi, Sage se comporte différemment de Python à plusieurs égards.
sage: "3^2"
'3^2'

Le ou exclusif bit à bit est quant à lui noté ``^^``, et l'opération en
place ``^^=`` fonctionne comme on s'y attend :

::

sage: 3^^2
1
sage: a = 2
sage: a ^^= 8
sage: a
10

- **Division entière :** L'expression Python ``2/3`` ne se comporte pas
de la manière à laquelle s'attendraient des mathématiciens. En Python, si
``m`` et ``n`` sont de type int, alors ``m/n`` est aussi de type int, c'est
Expand Down
1 change: 1 addition & 0 deletions src/doc/fr/tutorial/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ __ http://creativecommons.org/licenses/by-sa/3.0/
tour
interactive_shell
interfaces
latex
programming
sagetex
afterword
Expand Down
80 changes: 79 additions & 1 deletion src/doc/fr/tutorial/interactive_shell.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ Une session est la suite des entrées et sorties qui interviennent entre
le moment où vous démarrez Sage et celui où vous le quittez. Sage
enregistre un journal de toutes les entrées via IPython. Si vous
utilisez le shell interactif (par opposition à l'interface *notebook*),
vous pouvez taper ``%hist`` à n'importe quel moment pour obtenir la
vous pouvez taper ``%history`` (ou ``%hist``) à n'importe
quel moment pour obtenir la
liste de toutes les lignes de commandes entrées depuis le début de la
session. Tapez ``?`` à l'invite de commande Sage pour plus
d'informations sur IPython. Par exemple : « IPython fournit des invites
Expand Down Expand Up @@ -376,6 +377,83 @@ la machine ``sage.math.washington.edu``). Mais en raison du surcoût de
l'interface pexpect, la comparaison avec Sage, qui est le plus rapide,
n'est pas vraiment équitable.

Trucs et astuces IPython
========================

Comme signalé plus haut, Sage utilise l'interpréteur de commandes IPython, et
met donc à votre disposition toutes les commandes et fonctionnalités de
celui-ci. Vous voudrez peut-être consulter la `documentation complète de IPython
<http://ipython.scipy.org/moin/Documentation>`_. Voici en attendant quelques
astuces utiles -- qui reposent sur ce que IPython appelle des « commandes
magiques » :

- La commande magique ``%bg`` lance une commande en arrière-plan. Le résultat
sera ensuite accessible à travers l'objet ``jobs``, comme dans l'exemple
ci-dessous. (Les commentaires « not tested » sont là parce que ``%bg`` ne
fonctionne pas correctement dans l'infrastructure de test automatisé de Sage,
mais si vous reproduisez l'exemple, il devrait fonctionner comme indiqué.
Naturellement, ``%bg`` est surtout utile pour les commandes dont l'exécution
prend beaucoup de temps.)

::

sage: def quick(m): return 2*m
sage: %bg quick(20) # not tested
Starting job # 0 in a separate thread.
sage: jobs.status() # not tested
Completed jobs:
0 : quick(20)
sage: jobs[0].result # the actual answer, not tested
40

Attention, les tâches lancées en arrière-plan ignorent le préprocesseur Sage
(voir section :ref:`section-mathannoy`). Une manière (certes pas très
commode) de contourner le problème est la suivante ::

sage: %bg eval(preparse('quick(20)')) # not tested

Mais il est plus simple et plus sûr de réserver ``%bg`` aux commandes en pur
Python, qui ne font pas appel au préprocesseur.

- Lorsque l'on souhaite saisir un morceau de code complexe, on peut utiliser
``%edit`` (ou ``%ed``, ou ``ed``) pour ouvrir un éditeur de texte.
Assurez-vous que la variable d'environnement :envvar:`EDITOR` est réglée à
votre éditeur favori au démarrage de Sage (en plaçant si nécessaire quelque
chose du genre ``export EDITOR=/usr/bin/emacs`` ou encore ``export
EDITOR=/usr/bin/vim`` dans un fichier de configuration convenable, par
exemple ``.profile``). La commande ``%edit`` à l'invite de Sage ouvrira
l'éditeur sélectionné. Vous pouvez alors par exemple saisir une définition de
fonction::
def some_function(n):
return n**2 + 3*n + 2

puis enregistrer le fichier et quitter l'éditeur. La fonction
``some_function`` est désormais disponible dans votre session Sage, et vous
pouvez la modifier en saisissant ``edit some_function`` à l'invite de
commande.

- Si vous souhaitez reprendre une version modifiée du résultat d'un calcul dans
une nouvelle commande, tapez ``%rep`` après avoir fait le calcul. Cela
récupère le texte du résultat et le place sur la ligne de commande, prêt à
être modifié. ::

sage: f(x) = cos(x)
sage: f(x).derivative(x)
-sin(x)

Ainsi, après les commandes ci-dessus, la commande ``%rep`` fournit un nouvel
invite de commande pré-rempli avec le texte ``-sin(x)`` et le curseur en fin
de ligne.

Pour plus d'information, entrez la commande ``%quickref`` pour un résumé des
possibilités de IPython. Au moment où cette documentation est écrite
(avril 2011), Sage emploie IPython 0.9.1. La `documentation des commandes
magiques
<http://ipython.org/ipython-doc/dev/interactive/tutorial.html#magic-functions>`_
est disponible en ligne, et divers aspects un peu plus avancés de leur
fonctionnement sont décrits `ici <http://ipython.org/ipython-doc/stable/interactive/reference.html#magic-command-system>`_.

Erreurs et exceptions
=====================

Expand Down
39 changes: 16 additions & 23 deletions src/doc/fr/tutorial/interfaces.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. linkall
**********
Interfaces
**********
Expand Down Expand Up @@ -105,8 +107,6 @@ Commençons par créer une liste PARI à partir d'une liste Python.
En Sage, les objets PARI sont de type ``py_pari.gen``. Le type PARI de
l'objet sous-jacent est donné par la méthode ``type``.

.. link
::

sage: v.type()
Expand All @@ -117,8 +117,6 @@ Pour créer une courbe elliptique en PARI, on utiliserait
``ellinit`` devient une méthode qui peut être appelée sur n'importe quel
objet PARI, par exemle notre ``t_VEC v``.

.. link
::

sage: e = v.ellinit()
Expand All @@ -130,8 +128,6 @@ objet PARI, par exemle notre ``t_VEC v``.
À présent que nous disposons d'une courbe elliptique, faisons quelques
calculs avec.

.. link
::

sage: e.elltors()
Expand Down Expand Up @@ -163,7 +159,7 @@ installer séparément comme décrit plus bas.
Group( [ (1,2,3)(4,5), (3,4) ] )
sage: G.Center()
Group( () )
sage: G.IdGroup() # nécessite le paquet facultatif database_gap (optional)
sage: G.IdGroup() # optional - database_gap
[ 120, 34 ]
sage: G.Order()
120
Expand All @@ -176,7 +172,7 @@ l'interface GAP comme suit :
sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]])
sage: G.center()
Subgroup of (Permutation Group with generators [(3,4), (1,2,3)(4,5)]) generated by [()]
sage: G.group_id() # nécessite le paquet facultatif database_gap (optional)
sage: G.group_id() # optional - database_gap
[120, 34]
sage: n = G.order(); n
120
Expand Down Expand Up @@ -217,8 +213,6 @@ fournie par Sage (n'entrez pas les ``...``) :
Maintenant que nous avons défini :math:`f`, affichons-le puis
factorisons-le.

.. link
::

sage: f
Expand Down Expand Up @@ -253,19 +247,18 @@ Singular (Sage y fera tout de même appel en coulisses pour le calcul).
Maxima
======

Le système de calcul formel Maxima est fourni avec Sage accompagné de
clisp, une version du langage Lisp, et d'openmath, un programme de tracé
de courbes en Tcl/Tk utilisé par Maxima. En revanche, gnuplot (que
Maxima utilise par défaut pour tracer des graphiques) n'est distribué
que comme paquet optionnel de Sage. Maxima fournit notamment des
routines de calcul sur des expressions formelles. Il permet de calculer
des dérivées, primitives et intégrales, de résoudre des équations
différentielles d'ordre 1 et souvent d'ordre 2, et de résoudre par
transformée de Laplace les équations différentielles linéaires d'ordre
quelconque. Maxima dispose aussi d'un grand nombre de fonctions
spéciales, permet de tracer des graphes de fonctions via gnuplot, et de
manipuler des matrices (réduction en lignes, valeurs propres, vecteurs
propres...) ou encore des équations polynomiales.
Le système de calcul formel Maxima est fourni avec Sage accompagné d'une
implémentation du langage Lisp. Le logiciel gnuplot (que Maxima utilise
par défaut pour tracer des graphiques) est disponible comme paquet
optionnel. Maxima fournit notamment des routines de calcul sur des
expressions formelles. Il permet de calculer des dérivées, primitives et
intégrales, de résoudre des équations différentielles d'ordre 1 et
souvent d'ordre 2, et de résoudre par transformée de Laplace les
équations différentielles linéaires d'ordre quelconque. Maxima dispose
aussi d'un grand nombre de fonctions spéciales, permet de tracer des
graphes de fonctions via gnuplot, et de manipuler des matrices
(réduction en lignes, valeurs propres, vecteurs propres...) ou encore
des équations polynomiales.

Utilisons par exemple l'interface Sage/Maxima pour construire
la matrice dont le coefficient d'indice :math:`i,j` vaut :math:`i/j`,
Expand Down
Loading

0 comments on commit 7741424

Please sign in to comment.