30 Mars 2005 By LPX  
 

Néant

Nettoyage classe Mathématiques :

- 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, ...)

Nettoyage classe Matr2 Matr3 Vect2 Vect3 SymMatr2 SymMatr3:

- 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

Liaison Blas :

- 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,...)

Importation des classes math de base dans Python :

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 !!!

Added Files :

Removed Files :

/oofelie/oeMtk/oeMpinv.cpp
/oofelie/oeMtk/oeRoutqr.cpp
/oofelie/oeMtk/oeSVDcmp.cpp
/oofelie/oeMtk/oeWithProduct.h/cpp

 

 

Conséquence des modif Oofelie sur Metafor :

Suivit des modifs Oofelies

Optimisation de Jacobi 2D/3D

Désallocation propre de "detJInitialMass" (VolumeMetaElement)

Interpréteur Python & SWIG :

- 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 !!!

Tru64 :

Installation-uniformisation de la version actuelle des blas-lapack dec/compaq/hp cxml (aussi connu comme dxml)

Installation swig 1.3.24

X86-64-Linux :

Installation de la version 2.5 des BLAS-LAPACK-SCALAPACK & modif du profile

Installation swig 1.3.24

Divers :

Modifications mineurs d'options de compilation (suppression des options obsoletes -arch ev56, ...)

Added Files :

Removed Files :

Added tests :

Modified pgm :

N'oubliez pas d'updater SWIG !!! (indispensable)

 

 

Back to Metafor web server
created :13 Janvier 2005   modified : 30 Janvier 2005
contact :L.Papeleux@ulg.ac.be