Les jeudi sages à Bordeaux (autour de Sage, PARI/GP, et plus)

les jeudis 10h à 12h en salle 74 VISIO du LaBRI ou/et sur zoom ou/et sur zulip #thursdaysbdx

Nous nous réunissons les jeudi au LaBRI pour discuter et programmer autour des logiciels de calculs formels. Les journées restent centrées sur Sage et PARI/GP mais elles sont ouvertes à tous/toutes. Le principe est que si vous avez des questions vous venez les poser et si vous savez des choses vous venez les partager. Certains jeudi seront centrés sur des thématiques sous forme de mini-cours ou démonstration.

Pour être tenu informé vous pouvez vous abonner à la liste de diffusion.

Débutants

Développeurs

Mot clé pour trac: thursdaysbdx

Idées et Projets en cours:

Compte-rendus

jeudi 10 février 2022

Jana, Pascal, Xavier, Sébastien

jeudi 3 février 2022

Une dizaine de participants aujourd'hui.

jeudi 27 janvier 2022

Projets pour Steffania qui a fait un cours sur les elliptic curves avec Xavier Caruso:

Installation de Sage sur MacOSX avec l'aide de Samuel Lelièvre:

​​​----- Mail transféré -----
​​​​De: "Samuel Lelièvre"

​​​​​Pascal,

Ça marcherait pareil quel que soit l'endroit où on l'installe,
à mon avis. Voici une version avec ce choix en plus.

```
INSTALL_LOCATION=$HOME  # or your choice of location
SITE='https://github.com'
DIRS='isuruf/sagemath-forge/releases/latest/download'
FILE="sagemath-forge-$(uname)-$(uname -m).sh"
cd $INSTALL_LOCATION
curl -L -O $SITE/$DIRS/$FILE
bash $FILE
```

Pour ce qui est de trouver Sage, j'ai oublié une indication.

Une fois sagemath-forge installé, on a en fait installé une
distribution Conda. On peut activer ou désactiver Conda.
Lorsqu'il est activé, le PATH est modifié pour que tout ce
qui a été installé via Conda soit accessible.

Donc pour utiliser la version de Sage installée via Conda:
```
$ conda activate  # on active Conda

$ which sage
/chemin/vers/sagemath-forge/bin/sage

$ sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.4, Release Date: 2021-08-22                     │
│ Using Python 3.8.12. Type "help()" for help.                       │
└────────────────────────────────────────────────────────────────────┘
sage: %colors Linux
sage: quit
Exiting Sage (CPU time 0m0.12s, Wall time 0m16.08s).

$ conda deactivate  # pour désactiver Conda
```

Si on veut que Conda soit toujours activé, ajouter dans un fichier
exécuté au lancement du shell (dans `$HOME/.bash_profile` par
exemple, si on utilise bash) une commande qui l'active:
```
conda activate
```

Amitiés,  --Samuel

Voir aussi: https://doc.sagemath.org/html/en/installation/conda.html

juillet 2021 à janvier 2022

On a eu plusieurs réunions dont on a pas parlé ici.

Séance introduction 10 juin 2021

* pdf de présentation (Vincent Delecroix)

jeudi 8 avril 2021

Suggestion de Vincent Delecroix à Pascal Weil:

Inversion of a group homomorphism on the free group:

Free group in SageMath:

sage: F = FreeGroup(["a", "b"])
sage: a, b = F.gens()
sage: phi = libgap.GroupHomomorphismByImages(F, F, [a*b, b])
sage: phi.Inverse()
[ a*b, b ] -> [ a, b ]
sage: libgap.Inverse(phi)  # alternative for the above (what is actually called in GAP)
[ a*b, b ] -> [ a, b ]
sage: phi.Inverse().Image(a)
a*b^-1
sage: libgap.Image(phi.Inverse(), a)  # alternative for the above
a*b^-1
sage: libgap.Image(phi.Inverse(), b)
b

Or to get the inverse image in their “SageMath version”:

sage: F(libgap.Image(phi.Inverse(), a))
a*b^-1
sage: F(libgap.Image(phi.Inverse(), b))
b

Conversion to and from words:

sage: F(a*a*b*a**-1*b*b*b).Tietze()
(1, 1, 2, -1, 2, 2, 2)
sage: F((1,2,-1,-1))
a*b*a^-2

janvier 2020 à mars 2021

Nous avons continué les séances sans en faire de résumé ici.

jeudi 16 janvier 2020

Présents: Sébastien, Jennifer, Pascal, Casey

Aujourd'hui, on a revu les différences en Python2 et Python3. On trouvera ici un résumé des changements dans le passage à Python 3:

https://docs.python.org/3.0/whatsnew/3.0.html

https://stackoverflow.com/questions/5031625/python-3-syntax-changes

On a aidé Pascal à faire fonctionner sage-9.0 sur OSX. Les nouvelles versions de OSX ont des contraintes de sécurité contraignantes empêchant d'ouvrir Sage comme répondu ici par Sylvain:

https://ask.sagemath.org/question/49572/sage-90-installation-issues-on-macos-10152-catalina/

Finalement, Casey et Jennifer ont testé la nouvelle interface jupyterlab que l'on peut installer comme suit:

sage –pip install jupyterlab

et ouvrir comme suit:

sage –n jupyterlab

Tel que rappelé ici sur ask, rappelons que quelques commandes sont nécessaires après l'installation d'une version brute de SageMath avant de pouvoir utiliser pip et installer un package comme jupyterlab:

cd $SAGE_ROOT
./sage -i openssl && ./sage -f python3 && make ssl
sage –pip install jupyterlab

jeudi 9 janvier 2020

SageMath vient de passer à Python 3, version 3.7.3:

┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.0, Release Date: 2020-01-01                     │
│ Using Python 3.7.3. Type "help()" for help.                        │
└────────────────────────────────────────────────────────────────────┘
sage:

jeudi 14 nov 2019

Présents: Sébastien, Jennifer, Pascal

On a parlé de mutabilité, de fonctions de hash et structures de données en Python.

Passage à Python 3: voir ce message de mars 2005 de Guido van Rossum au sujet de map, filter, lambda, reduce.

Sébastien corrige les problèmes associé à la méthode hash dans son package slabbe. En effet, le nouveau comportement de hash en Python 3 est expliqué ci-bas:

fichier.py content:
r"""
New Hash behavior in Python 3

This works in python2::

    $ python2 fichier.py
    8743430846773
    20
    25

But it does not work in Python3::

    $ python3 fichier.py
    8759442356870
    20
    Traceback (most recent call last):
    File "fichier.py", line 16, in <module>
        print(hash(Fraise(25)))
    TypeError: unhashable type: 'Fraise'

The reason is to keep the principle "if A = B implies hash(A) == hash(B)"
valid. In Python 3, the default is that objects are hashable by their id
(class Vegetable in the example below).  But as soon as the equality
`__eq__` is defined (class Fruit in the example below), one must define the
`__hash__` method. And this is the case even if it is defined in the parent
(class Fruit in the example below).

"""

class Vegetable(object):
    def __init__(self, a):
        self._a = a

class Fruit(object):
    def __init__(self, a):
        self._a = a
    def __hash__(self):
        return hash(self._a)

class Fraise(Fruit):
    def __eq__(self, other):
        return self._a == other._a

print(hash(Vegetable(10)))

print(hash(Fruit(20)))

print(hash(Fraise(25)))

jeudi 7 nov 2019

Présents: Sébastien, Casey, Jennifer, Sebastian, Pascal, Julien Leroy

Pascal nous a présenté son package stallings_graphs

31 octobre au 3 novembre 2019

Conférence PyCON à Bordeaux: https://www.pycon.fr/2019/

jeudi 23 mai 2019

Présents: Sébastien, Vincent K, Pascal

Sébastien: création d'un fichier de test (en rst) contenant le code contenu dans l'article http://arxiv.org/abs/1802.03265 pour assurer la reproducibilité des résultats à long terme.

Vincent K:

jeudi 16 mai 2019

Présents: Sébastien, Vincent K, Pascal, Adrien

jeudi 9 mai 2019

Présents: Sébastien, Vincent K, Pascal

Sébastien:

jeudi 2 mai 2019

Présents: Sébastien, Vincent K, Xavier

Sébastien: amélioration de la documentation et du README de slabbe pour corriger le bug d'affichage sur PyPI. Il y a une nouvelle ligne long_description_content_type à mettre dans le fichier setup. Voir ici: making a PyPI friendly README.

jeudi 11 avril 2019

Présents: Pascal, Vincent K

Vincent K:

jeudi 4 avril 2019

Présents: Adrien, Pascal, Vincent K

jeudi 21 mars 2019

Présents: Adrien, Sébastien, Vincent K, Xavier

jeudi 14 mars 2019

Présents: Sébastien, Vincent K, Pascal, Jean-Philippe Labbé

Pascal et Sébastien:

JP:

Vincent:

jeudi 7 mars 2019

Présents: Sébastien, Vincent K, Pascal, Adrien

Pascal et Sébastien:

jeudi 28 février 2019

Présents: Sébastien, Vincent K

Jeudi sage éclair : Discussion d'une demi-heure environ sur les tickets #25614 et #26592

Sébastien:

Vincent K:

jeudi 21 février 2019

Pause.

jeudi 14 février 2019

Présents: Vincent K, Pascal

CONFERENCE, Free Computational Mathematics, Calcul mathématique libre, CIRM Luminy, 11 - 15 February 2019

jeudi 7 février 2019

Présents: Sébastien, Vincent K

jeudi 31 janvier 2019

Présents: Sébastien, Vincent K, Adrien, Pascal

Sébastien:

Vincent K:

jeudi 24 janvier 2019

Présents: Sébastien, Vincent K, Adrien

Comment installer et utiliser RISE, une extension du Jupyter Notebook pour faire des présentations éditables. Il ne suffit pas de l'installer il faut aussi recopier les css au bon endroit. Il suffit de faire:

sage -pip install rise
sage -sh
jupyter-nbextension install rise --py --sys-prefix

Après on peut consulter ce démo sur youtube et la doc est ici.

jeudi 17 janvier 2019

jeudi 10 janvier 2019

Présents: Sébastien, Vincent K, Pascal, Xavier

Sébastien

Vincent

jeudi 20 décembre 2018

Présents: Sébastien, Vincent K, Pascal, Adrien

Sébastien:

Vincent:

et parent commun.

jeudi 13 décembre 2018

Présents: Sébastien, Vincent K, Pascal, Xavier, Adrien, Florent

10h-10h20: un exposé de Florent Hivert, Expérimentations haute performance en combinatoire algébrique et énumérative

Sébastien:

jeudi 29 novembre 2018

Présents: Sébastien, Vincent K, Pascal

Sébastien:

jeudi 22 novembre 2018

Présents: Adrien, Vincent K.

Vincent K:

jeudi 15 novembre 2018

Présents: Adrien, Vincent K., Sébastien, Pascal, Xavier, Ilya

Avec Ilya, nous avons trouvé trois lignes de code pour que les .plot() ouvre des pdf plutôt que des png:

sage: from sage.repl.rich_output import get_display_manager
sage: dm = get_display_manager()
sage: dm.preferences.graphics = 'vector'  # value must be unset (None) or one of ('disable', 'vector', 'raster')

All tests passed in the package of Pascal!

Vincent K:

Sortie de la dernière version de gmpy2:

jeudi 8 novembre 2018

Présents: Adrien, Vincent K., Sébastien, Pascal, Xavier

Sébastien, Pascal: création d'un package Python sur les Finitely generated subgroups

Adrien: finalisation des corrections sur les polyominos paralélogrammes #16110

Vincent K.:

Xavier: Coder les piecewise affine function dans Sage

jeudi 1 novembre 2018

vacances de la Toussaint

jeudi 25 octobre 2018

Présents: Adrien, Vincent K., Sébastien, Andrew.

Sébastien: Création d'un package pour glucose dans Sage: #26552

jeudi 18 octobre 2018

Présents: Pascal, Adrien, Vincent K., Sébastien.

Sébastien: Discussion avec Pascal sur son projet de Stallings graphs. Création de #26502

jeudi 11 octobre 2018

Présents: Pascal, Adrien, Vincent K.

Sébastien (au Québec) a fait la revue de #26486 (clean distances_all_pairs.pyx) et #26348 (3 other internet doctests failing in findstat.py) et a bossé sur: #26473 (py3: fix doctests failures of sage/combinat/words/word_*datatype*)

jeudi 4 octobre 2018

Présents: Pascal, Adrien, Vincent K.

Sébastien (au Québec): #25378 (I/O operation on closed file when sage -t --optional=sage,external --logfile is_provided.log)

Jeudi 5 juillet 2018

Présents: Sébastien, Vincent K.

Sébastien:

Jeudi 28 juin 2018

Présents: Pascal, Milton, Vincent K.

Milton nous as présenté ses travaux sur les fractions continues multidimensionnelles.

Vincent K. :

Jeudi 21 juin 2018

Présents: Vincent K, Sébastien, Nicolas, Mélodie, Milton

Sébastien:

Jeudi 14 juin 2018

Présents: Pascal, Vincent K.

Jeudi 7 juin 2018

Présents: Pascal, Sebastien, Vincent D., Vincent K., Elise Vandomme ... (à compléter)

Jeudi 31 mai 2018

Présents : Pascal, Milton, Vincent K

Jeudi 24 mai 2018

Présents : Sébastien, Pascal, Milton, Vincent K, Andrew

Sébastien:

Jeudi 17 mai 2018

Présents : Sébastien, Pascal, Milton, Vincent K, Vincent D, Mélodie, Nadia, David, Yvan, Michael

Utilisation de code C dans un fichier externe dans une cellule Jupyter grâce à Cython

Contenu du fichier test.c:

int my_function(int x)
{
    return x*x;
}

Contenu du fichier test.h:

int my_function(int x);

Contenu d'une cellule Jupyter dans le même répertoire que les fichiers test.h et test.c:

%%cython
# distutils: sources = test.c
cdef extern from "test.h":
    int my_function(int)
def my_function_wrapper(int a):
    return my_function(a)

Contenu d'une autre cellule normale:

my_function_wrapper(10)

Vincent D:

Sébastien:

Mélodie:

Jeudi 10 mai 2018

Congé.

Jeudi 3 mai 2018

Présents : Sébastien, Pascal, Milton

Jeudi 26 avril 2018

Présents : Vincent K, Sébastien, Pascal

Jeudi 19 avril 2018

Présents : Vincent K, Vincent D, Milton, Pascal

Jeudi 12 avril 2018

Présents : Sebastien Labbé et Vincent Klein

Jeudi 5 avril 2018

Présents : Sebastien Labbé, Milton et Vincent Klein

Jeudi 29 Mars 2018

Pause, trop d'absent.

Jeudi 22 Mars 2018

Présents : Sebastien Labbé, Pascal Weil, Milton et Vincent Klein

Jeudi 15 Mars 2018

Jeudi 8 Mars 2018

Jeudi 8 Février 2018

9 participants!

Jeudi 1er Février 2018

Jeudi 25 janvier 2018

Présents : Sebastien Labbé, Milton et Vincent Klein

Vincent K.

Jeudi 18 janvier 2018

Présents : Pascal Weil, Sebastien Labbé et Vincent Klein

Vincent K.

Jeudi 21 décembre 2017

Jeudi 14 décembre 2017

Sébastien Labbé et Pascal Weil:

Jeudi 30 Novembre 2017

Vincent D

Sébastien et Vincent D:

Vincent K

Jeudi 16 Novembre 2017

Vincent K :

Jeudi 19 octobre 2017

Jeudi 12 octobre 2017

Jeudi 21 septembre 2017

Jeudi 14 septembre 2017

Sébastien:

Vincent D:

Vincent K:

Jeudi 29 juin 2017

Vincent K.

Jeudi 22 juin 2017

Sylvain L. est venu nous présenter Wali (la suite de Vaucanson)! Intégration dans Sage en prévision... à suivre!

Vincent D.

Vincent K.

Jeudi 15 juin 2017

Sébastien L is reviewing:

Vincent K

Vincent D

Mardi 13 juin 2017

Vincent K

jeudi 1 juin 2017

Adrien is working on ticket #16110 of Parallelogram polyominoes.

Vincent K

jeudi 18 mai 2017

Sébastien is reviewing the following tickets and making sure they work on OSX:

Vincent D & K

jeudi 11 mai 2017

Sébastien a reviewé:

Vincent D a finalisé (needs review) #22970: use flint fmpq_mat for rational dense matrices

Vincent K a travaillé sur #22928: Conversions/coercions between gmpy2 and Sage

jeudi 13 avril 2017

Finalement, on a plutôt travaillé dans le grand bureau de Vincent K qui offrait du réseau.

Autour de gmpy2 et pplpy

thursdaysbdx (last edited 2022-12-15 09:19:11 by vdelecroix)