Newsgroup: it.comp.lang.c++
Titolo: Matematica ed algebra lineare in c++

QUalcuno di voi ha esperienza diretta di confronto di prestazioni nel campo
del calcolo numerico fra Fortran e C++?
Per l'algebra lineare quale libreria mi consigliate?
Blitz++
Lapack++
Blas++
Matrix template Library
Numerical Template Toolkit? (a che stadio di sviluppo e'? e' vero che
integra e migliora tutte le precedenti)
--
Hai recensioni nel cassetto di musica, cinema, letteratura,fumetti??
Ascolta e pentiti e se hai tempo vergognati
http://tonysuper.altervista.org
Ascolta e pentiti il forum:
http://www.forumcommunity.net/index.php?c=4461&s=


Blas e LaPack erano un martello al corso di calcolo scientifico.
Ma non saprei dare un gidizio 'esteso'.


secondo la documentazione ufficiale
Lapack++ ingloba Blas++ che a sua volta e' un'interfaccia a Blas (scritte in
Fortran)
il problema e' che le due librerie sono ferme al 2001 e dice lo sviluppatore
che tutto dovrebbe convogliare in TNT
il problema e' che TNT ha una documentazione che non si capisce nulla e ha
un numero di versione minore di uno
http://math.nist.gov/tnt/


 integra e migliora tutte le precedenti)
boost?
Non che l'abbia provata, ma se qualcuno l'ha fatto mi interesserebbe un
parere.
 bye
	av.

 integra e migliora tutte le precedenti)
Afaik, Lapack++ e Blas++ sono meri wrapper sulle vecchie librerie Fortran,
l'accesso alle quali si preferisce farlo tramite altri linguaggi lasciando
alle vecchie implementazioni la parte "di calcolo". TNT, a meno di recenti
versioni, è il superset di Lapack++ il cui progetto ha lasciato il posto
al più recente fratello maggiore; allo stato delle cose dunque anche TNT
dovrebbe essere un semplice wrapper che NON reimplementa nulla ma dà
semplicemente un interfaccia all'incasinatissima gerarchia di funzioni
del Lapack.
Stesso identico discorso per Blas, base - come dice il nome - di routine
per le librerie di algebra lineare.
Diciamo che - non per mia personale considerazione ma del mio relatore -
il Fortran ha una modalità di gestione della memoria "un po' più pulita"
rispetto al C o al C++, d'altra parte programmare in Fortran non è molto
dissimile in termini di costrutti disponibili rispetto al C.
Tuttavia la scelta di certi linguaggi è direttamente dipendente alla
loro espressività in funzione di quello che si deve fare: voglio dire
che se devi lavorare sempre e solo su matrici e devi fare routines *veloci*,
tanto vale utilizzare un linguaggio con compilatori "granitici";
non che C e C++ non abbiano buoni compilatori - anzi, certo è però che in
ambito accademico si fa spesso riferimento ad ambienti GNU e con sw open
source e diciamocelo, il gcc o f77 non sono proprio "il massimo della vita";
inoltre pare che i matematici siano particolarmente affezionati al Fortran,
dunque la disponibilità di "*buoni* pacchatti di algebra lineare" scritti in
C++ e con sorgente disponibile è con buona approssimazione nulla: io sono
della personale convinzione che oggi come oggi una buona libreria scritta
in C o C++ fa "un mazzo tanto" alla stessa libreria ben implementata in
Fortran, ma tant'è...
Ci sono ottimi lavori di a.l. in ambito distribuito, tipo Scalapack e altri
se ti interessano le prestazioni.
Se conosci qualcosa in C++ (o in C) che mi è sfuggito dillo anche a me visto
che per la mia tesi devo utilizzare un'implementazione di un algoritmo
ciclico con grande occupazione di memoria per variarne la paginazione
ed in ambito di a.l. ce ne sono un fottio...
...tutti in Fortran! :-(
SiMoStro

 ...tutti in Fortran! :-(
http://oonumerics.org


 
http://oonumerics.org
Grazie, questo sito non lo conoscevo, tuttavia gran parte delle
librerie che si trovano qui (come IML++, Lapack++, SparseLib++)
sono wrapper per Lapack che ho già visto e scartato.
a me serve (serviva, visto che qualcosa ho trovato) una libreria
con sorgenti che, indipendentemente dalle strutture dati, fornisse
algoritmi *iterativi* come il QR o il calcolo di autovalori/autovettori
oppure l'implementazione del metodo iterativo di Jacobi (o simili)
per i sistemi di equazioni lineari a matrici sparse.
L'algoritmo mi serviva "implementato da altri" per ragioni di
"ufficialità", non è un problema scrivere una libreria "ad hoc" ma
dato che la tesi verte in realtà sugli algoritmi di paginazione
scriversi anche l'implementazione dell'algoritmo poteva puzzare
di "le cose vanno meglio perché hai scritto l'algoritmo apposta"...
:-) ...dunque mi serviva roba scritta da altri per modificarla
(leggermente) e vedere come vanno le cose in funzione degli
algoritmi di rimpiazzamento scelti.
Cmq grazie ancora.
SiMoStro