![]() |
|||||
![]() |
30 Mars 2005 | By LPX | |||
- Suppression de fonctions traduites en f2c et remplacement par l'usage des blas-lapack (pseudo-inverse - decomposition svd)
=> suppression de oeMpinv.cpp oeRoutqr.cpp oeSVDcmp.cpp
- Suppression de "tentatives de routines" commentarisés
- Suppression des variables MATH définies dans oeMath.h (M_E,M_LOG2E, ...)
- Suppression de toutes les fonctions non utilisées dans Metafor dans ces classes
- Ajout de "const" quand nécessaire / possible
- Réorganisation des fichiers .h
- Organisation des import swig
- Suppression des dernières fonctions f1,f2,f3
- Application des normes d'écriture des fonctions (norm (ou length dans ceertains cas) -> getNorm())
- Suppression des fonctions print au profit de l'opérateur "<<" et de la fonction write
- Nettoyage du fichier de liaison avec les blas fortran
- Modification des appels "oofelie" aux fonctions BLAS pour qu'elles correspondent a l'appel C des blas ACML (blas AMD) qui ne sont que les appels fortran avec passage par valeurs quand c'est possible.
- Appels Lapack : ajout de l'appel a "dgesvd" et allocation du tableau temporaire uniquement pour les appels blas fortran.
(Si vous utiliser les mkl intel, ajouter la lib mkl_lapack.lib dans votre projet. Vous avez donc besoin de mkl_def.lib (ou mkl_p3.lib ou mkl_p5.lib ou ...), mkl_c.lib, mkl_lapack.lib)
Pour utiliser l'interface "C - AMD" des blas (pas possible d'utiliser l'interface fortran sur pc windows pq ces cons ont définit les noms de fonctions en Majuscule => faudrait encore un fichier de traduction des noms min->MAJ. Sous linux, il est possible d'utiliser l'interface que l'on veut):
1. définir la directive de programmation "CBLAS_ACML" dans le projet
2. installer les blas ACML (version 2.5 ou +)
3. définir le repertoire d'include (pour trouver le fichier acml.h : qqch du genre "C:\Program Files\AMD\acml2.5.0\win32\include")
4. définir le repertoire avec les libs (qqch du genre : "C:\Program Files\AMD\acml2.5.0\win32\lib")
5. définir la lib avec laquelle linker "libacml_dll.lib"
L'interface fortran et l'utilisations de blas fortran est tjrs possible sous pc (blas intel,...)
Les opérations mathématiques sur les objets de taille prédéfinies (Matr2/3, Vect2/3, SymMatr2/3) sont dorenavant importes dans python. Une serie de fichier de test des operations a été créé (reste à mettre au point la methode de validation batterie).
Attention si l'on utilise les opérations math dans les test, bien penser que les variables python sont des références!!!
exemple : si on définit une Matr2 m2 et un Vect2 v2 et que l'on fait m2 *= v2 => m2 référencie alors vers un Vect2 !!!
/oofelie/oeMtk/oeMpinv.cpp
/oofelie/oeMtk/oeRoutqr.cpp
/oofelie/oeMtk/oeSVDcmp.cpp
/oofelie/oeMtk/oeWithProduct.h/cpp
Suivit des modifs Oofelies
Optimisation de Jacobi 2D/3D
Désallocation propre de "detJInitialMass" (VolumeMetaElement)
- Utilisation de la nouvelle version de swig (1.3.24) & modification de qq variables
AVANTAGE : bien meilleure prise en compte des fonctions surdéfinies & définies avec des arguments par défaut
(Vérification du typage des arguments par python : par exemple il est maintenant impossible de passer "nx/4.0" comme paramètre entier à la fonction mesh)
INCONVENIENT : La taille des fichiers _wrap a quasi double !!!
Installation-uniformisation de la version actuelle des blas-lapack dec/compaq/hp cxml (aussi connu comme dxml)
Installation swig 1.3.24
Installation de la version 2.5 des BLAS-LAPACK-SCALAPACK & modif du profile
Installation swig 1.3.24
Modifications mineurs d'options de compilation (suppression des options obsoletes -arch ev56, ...)
N'oubliez pas d'updater SWIG !!! (indispensable)
![]() |
![]() |
|||
created :13 Janvier 2005 | modified : 30 Janvier 2005 | |||
contact :L.Papeleux@ulg.ac.be | ||||