Copiato il codice per generale matrici dal progetto di Calcolo Scientifico
riletto
Ho scritto lo scheletro delle subroutine
Ho scritto l'essenziale...
Manca da scrivere il programma principale, ovvero quello che si occupa della gestione della sperimentazione, le subroutine EstMlt e LagIt, alcune condizioni degli IF, la parte che riguarda dim=1 o 2, il calcolo di (12), (13) e (14).
Ho pulito il codice
ho scritto molto altro codice...
cose che mancano:
1) scrivere la parte in cui si calcolano gli autovalori di un problema di dimensione 1 o 2.
2) capire cosa passare nella ricorsione (dim, n, n/2, etc)
3) scrivere il programma principale, che si occupa di allocare memoria e di interpretare i risultati
Ho riscontrato un problema "a prescindere" nella ricorsione, anche senza averla capita: devo fare molta attenzione nel salvare in Eigenvalues(j, numCol). Infatti il "j" che uso dipende dalla chiamata ricorsiva; ne faccio due per volta...
Ho capito la ricorsione!!!
Bastava osservare il fatto che (\hatT,\hatS) e` una pensil diagonale
a blocchi, e dunque devo semplicemente fare l'unione (e poi
riordinare) degli autovalori delle pensil (T0,S0) e (T1,S1).
Ho modificato la modalita` di salvataggio degli atovalori.
Rimane da scrivere l'ordinamento alla fine della subroutine ed
il calcolo degli autovalori del caso dim=1 o 2...
ho iniziato a scrivere il quick sort su Eigenvalues
(vedi p. 282 del libro "Il Linguaggio Fortran 90/95")
Ho trascritto il quick sort ed ho scritto il caso dim=0.
Per il caso dim=1, cioe` matrici 2x2, risolvo a mano
e poi trascrivo i risultati :D
"finita" la parte sui casi particolari non resta che scrivere il
contenuto del programma principale.
Non ho ancora compilato nulla: tremo all'idea di farlo...
Ho iniziato a scrivere il programma principale
(manca la scrittura di un programma esterno per generale le matrici T ed S)
Ho finito di scrivere tutto il codice...
O meglio: ho scritto la versione 0.1, quella ancora da compilare.
Tremo all'idea di compilare tutte queste righe (dove ho anche
usato il GOTO) ma non potevo fare altrimenti.

Ho notato che il numero "numCol" richiede una particolare attenzione.
Ho eliminato tutti gli errori di battitura tranne uno:
la chiamata a quick sort.

Il problema e` passare una colonna di Eigenvalues ad una
subroutine che vuole in input un array.
Penso di risolverlo utilizzando i puntatori.
Ho risolto, senza usare i puntatori!!!
Ho modificato il vecchio file generoMatrici.f90 e mi preparo
a sperimentare :)
(ho modificato em=n+1 in em=n)
La prova con matrici 2x2, entraqmbe identita`
e` andata a buon fine.
Ho cambiato il modo di risolvere il problema
con pencil 2x2 (adesso e` piu` efficiente).
Ho trovato una coppia (T,S) che fornisce come
autovalori un numero e zero...
Penso ci sia qualche cosa che non va.