La dernière version du code (master commit 57fd41 du 12/11/2022) est compatible Python3/GSL2.x
Les tests unitaires passent tous, avec régression parfois mais sans erreur du code, à l'exception de la fonction Phi(a,tau) de l'espace infini (cf. erreur ci-dessous) :
loic@desktop-qtn6tp1:~/codes$ python3
Python 3.6.9 (default, Jun 29 2022, 11:45:57)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyarty
>>> pyarty.INF.Phi(0.5,1e-3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<decorator-gen-26>", line 2, in Phi
File "/home/loic/codes/pyarty/extensions.py", line 403, in _trace
return f(*args, **kwds)
File "<decorator-gen-25>", line 2, in Phi
File "/home/loic/codes/pyarty/extensions.py", line 70, in _checkInput
return f(*args, **kwds)
File "<decorator-gen-24>", line 2, in Phi
File "/home/loic/codes/pyarty/extensions.py", line 573, in _getParMethode
return f(*args, **kwds)
File "<decorator-gen-23>", line 2, in Phi
File "/home/loic/codes/pyarty/extensions.py", line 488, in _storeGeneral
f.stored[arg] = res = f(*args, **kwds)
File "/home/loic/codes/pyarty/pp_infini.py", line 38, in Phi
int1 = integration_gexpvn(a_, tau, n=-1, **options)
File "/home/loic/codes/pyarty/calculs.py", line 553, in integration_gexpvn
return integrationGenerale(integrand, xmin=0, xmax=1, fpar=None, precision=precision, work=work, **options)
File "<decorator-gen-2>", line 2, in integrationGenerale
File "/home/loic/codes/pyarty/extensions.py", line 403, in _trace
return f(*args, **kwds)
File "/home/loic/codes/pyarty/calculs.py", line 361, in integrationGenerale
flag, result, error = qags(integ, xmin, xmax, precision, precision, work, w)
File "/usr/local/lib/python3.6/dist-packages/pygsl/integrate.py", line 228, in qags
limit, workspace._ptr)
TypeError: in method 'gsl_integration_qags', argument 4 of type 'double'
L'erreur provient de l'utilisation de la fonction de calcul integration_gexpvn(a,tau,n=-1). Pourtant, le calcul se passe bien si j'utilise directement cette fonction de calcul (cf. ci-dessous).
>>> from pyarty import *
>>> integration_gexpvn(0.5,1e-3,n=-1)
6.614045589638048
Je ne comprends pas cette erreur, qui est constatée sur un PC Ubuntu 18.04.6 LTS (Python 3.6.9, pygsl 2.3.2, GSL 2.4).
On se rend compte que le problème semble venir des options automatiques, car si je les supprime dans cette fonction Phi, à la fois pour l'intégration, le calcul de k(a) et de R(a), le calcul se passe bien et je retrouve la valeur attendue à la précision machine.
Diff:
Diff: