Je sais que ca n est pas forcement tres interessant de poser une question sur un programme precis ici, mais je me lance quand meme :
J ai besoin dans un prog de faire un tas ( voire un gros tas) de SVD de matrices 3x3. Je voulais donc utiliser jama sur tnt (http://math.nist.gov/tnt/), qui si j ai bien compris doit etre une des prochaines librairies relativement standard en algebre lineaire.
Mais en regardant la doc, je suis tombe sur ca :
Code :
SVD (const Array2D< Real > &Arg)
qui me surprend un peu comme design quand on le compare a ce que peut faire gsl :
http://www.gnu.org/software/gsl/ma [...] ition.html . Jama est la version c++ d un truc java dans lequel le design d algo = objet etait potentiellement justifiable, mais ca me pose des problemes d un point de vue performance.
La SVD d'une matrice 3x3 va creer deux matrices 3x3 et un vecteur, sans compter la memoire de travail. Les gars qui ont fait TNT/JAMA ne sont surement pas des guignols et j en viens a me demander si je peux esperer que le compilo fasse un truc magique qui va annuler le cout d allocations repetees de memoire.
le compilo va-t-il faire un truc magique ? Ou bien dois-je m orienter vers une autre librairie pour avoir un prog qui tournera vite.
edit : ou bien vu que le code est ouvert, je trafique le truc pour en faire un foncteur qui est responsable de sa memoire de travail, et je change le constructeur en methode
Marsh Posté le 28-01-2008 à 14:51:51
Bonjour,
Je sais que ca n est pas forcement tres interessant de poser une question sur un programme precis ici, mais je me lance quand meme :
J ai besoin dans un prog de faire un tas ( voire un gros tas) de SVD de matrices 3x3. Je voulais donc utiliser jama sur tnt (http://math.nist.gov/tnt/), qui si j ai bien compris doit etre une des prochaines librairies relativement standard en algebre lineaire.
Mais en regardant la doc, je suis tombe sur ca :
qui me surprend un peu comme design quand on le compare a ce que peut faire gsl :
http://www.gnu.org/software/gsl/ma [...] ition.html .
Jama est la version c++ d un truc java dans lequel le design d algo = objet etait potentiellement justifiable, mais ca me pose des problemes d un point de vue performance.
La SVD d'une matrice 3x3 va creer deux matrices 3x3 et un vecteur, sans compter la memoire de travail. Les gars qui ont fait TNT/JAMA ne sont surement pas des guignols et j en viens a me demander si je peux esperer que le compilo fasse un truc magique qui va annuler le cout d allocations repetees de memoire.
le compilo va-t-il faire un truc magique ? Ou bien dois-je m orienter vers une autre librairie pour avoir un prog qui tournera vite.
edit : ou bien vu que le code est ouvert, je trafique le truc pour en faire un foncteur qui est responsable de sa memoire de travail, et je change le constructeur en methode
Merci
Message édité par chewif le 28-01-2008 à 18:14:31