Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super
Arrivato sul mercato italiano a fine marzo, la serie Boox Go 10.3 (Gen II) offre Android 15, penna da 4096 livelli e retroilluminazione opzionale (nel modello da noi provato, Lumi, presente). La serie si compone di due tablet ePaper che fanno da e-reader, blocco note digitale e persino browser, tutto a un prezzo che fa dimenticare i prodotti di brand più blasonati
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2008, 12:16   #1
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[c/c++] funzioni per matrici

mi servirebbero delle funzioni per lavorare con delle matrici quadrate e che mi permettano di calcolare determinanti. matrice inversa e moltiplicazioni fra matrici...
esistono?? sapete dove posso trovarle??
grazie mille
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 12:26   #2
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Ci sono molte librerie che consentono di operare con matrici in C++, Newmat è facile da usare, compatibile con diversi compilatori e relativamente completa.

Quote:
It supports matrix types: Matrix (rectangular matrix); UpperTriangularMatrix; LowerTriangularMatrix; DiagonalMatrix; SymmetricMatrix; BandMatrix; UpperBandMatrix; LowerBandMatrix; SymmetricBandMatrix; IdentityMatrix; RowVector; ColumnVector.

Only one element type (float or double) is supported.

The library includes the operations *, +, -, *=, +=, -=, Kronecker product, Schur product, concatenation, inverse, transpose, conversion between types, submatrix, determinant, Cholesky decomposition, QR triangularisation, singular value decomposition, eigenvalues of a symmetric matrix, sorting, fast Fourier and trig. transforms, printing and an interface with Numerical Recipes in C.

It is intended for matrices in the range 10 x 10 to the maximum size your machine will accommodate in a single array. The package works for very small matrices but becomes rather inefficient.

A lazy evaluation approach to evaluating matrix expressions is used to improve efficiency and reduce use of temporary storage.

I have tested the library with Borland (Builder 5,6), Microsoft (VC++ 6,7,8), Open Watcom (1.4), Intel 9 on a PC; Gnu G++ (3.3), Sun C++ on a Sun and Gnu G++ (3.4,4,4.1) and Intel 9 C++ under Linux.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:18   #3
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[edit] mhh ma funziona solo per le 10x10 al massimo?? non si puo usare per matrici piu grandi??

Ultima modifica di mamo139 : 19-01-2008 alle 13:21.
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:24   #4
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Clicca su questo link.

Quote:
ma funziona solo per le 10x10 al massimo?? non si puo usare per matrici piu grandi??
Che significa la frase "in the range 10 x 10 to the maximum size your machine will accommodate in a single array"?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:26   #5
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Clicca su questo link.



Che significa la frase "in the range 10 x 10 to the maximum size your machine will accommodate in a single array"?
eheh... avevo letto veloce
grazie
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:50   #6
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Come ti dicevo è molto facile da usare, ho scritto un programmino di esempio:

Codice:
#include <iostream>
#include <ctime>
#include "newmat.h"

using namespace std;

void PrintMatrix(const Matrix& X);

int main(void){
	int i,j;
	Matrix A(3, 3);
	Matrix B(3, 3);
	Matrix C(3, 3);
	srand((unsigned int)time(NULL));
	// Inizializza le matrici (nota gli indici 1-based)
	for (i = 1; i <= 3; ++i)
	for (j = 1; j <= 3; ++j)
	{
		A(i,j) = rand() % 10;
		B(i,j) = rand() % 10;
	}
	Real detA = A.determinant();
	Real detB = determinant(B);
	PrintMatrix(A);
	PrintMatrix(B);
	cout << "Det A = " << detA << endl;
	cout << "Det B = " << detB << endl;
	C = A+B;
	cout << "A+B: ";
	PrintMatrix(C);
	C = A*B;
	cout << "A*B: ";
	PrintMatrix(C);
	return 0;
}

void PrintMatrix(const Matrix& X)
{
	cout << "\nMatrix type: " << X.Type().Value() << " (";
	cout << X.Nrows() << ", ";
	cout << X.Ncols() << ")\n\n";
	if (X.IsZero()) { cout << "All elements are zero\n" << flush; return; }
	int nr=X.Nrows(); int nc=X.Ncols();
	for (int i=1; i<=nr; i++)
	{
		for (int j=1; j<=nc; j++)  cout << X(i,j) << "\t";
		cout << "\n";
	}
	cout << flush;
}
questo è l'output:

Codice:
Matrix type: Rect  (3, 3)

7       1       7
4       3       2
4       6       1

Matrix type: Rect  (3, 3)

4       7       6
2       0       6
3       0       0
Det A = 25
Det B = 126
A+B:
Matrix type: Rect  (3, 3)

11      8       13
6       3       8
7       6       1
A*B:
Matrix type: Rect  (3, 3)

51      49      48
28      28      42
31      28      60
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:56   #7
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
grazie mille, ora provo a fare quello che volevo e se ho problemi faccio vedere...
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 14:09   #8
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
ma questa libreria consente anche di fare operazioni matriciali e matrice vettore come le moltiplicazioni?
La libreria è ben documentata...
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 16:17   #9
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
è una domanda, non c'è bisogno di mettere ste faccine.
E quali faccine dovrei mettere se non queste? Hai formulato una domanda che trova una risposta ampia, esauriente e completa nella documentazione ufficiale... Non parliamo di un segreto di stato o di funzionalità non documentate, basta un pizzico di buona volontà nel leggere la documentazione, o no?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 16:52   #10
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Non vedo perché continui a lamentarti, ti ho risposto con una indicazione precisa: per verificare se la libreria soddisfa o meno le tue specifiche esigenze devi studiare la documentazione. Anche perché non hai precisato quali "operazioni matriciali" ti servono, bastano le classiche somme/prodotti/calcolo del determinante o hai bisogno del prodotto di Kronecker e della diagonalizzazione di Jordan?

Se entri da un panettiere chiedendo della carne è normale che il panettiere ti indirizzi verso il macellaio più vicino, o ti sembra una cosa tanto strana? Volendo potrebbe darti quella che ha nel frigo, ma di sicuro dal macellaio troverai tutta la carne che desideri.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 18:57   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dai su...non andiamo oltre
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 18:29   #12
Corgan_
Junior Member
 
Iscritto dal: Apr 2008
Messaggi: 1
Librerie per matrici "avanzate"

Salve ragazzi,
sto lavorando ad un'applicazione che riguarda il face recognition in C++ in ambiente windows ed al punto in cui mi trovo sono obbligato a lavorare con le matrici.
Inizialmente mi sono dato da fare con le librerie che voi stessi avete consigliato, purtroppo però devo effettuare una particolare operazione che non è prevista.
L'operazione in questione è il calcolo degli autovettori a partire da una matrice. Nelle newmatt l'unico caso previsto è quello di matrici simmetriche, in realtà il calcolo di cui io mi devo occupare riguarda una matrice quadrata generica. Sapreste dirmi se esiste qualche libreria che prevede questo tipo di operazione ? Ringrazio anticipatamente chiunque volesse aiutarmi...ci sto sbattendo la testa già da un bel po'...

Ultima modifica di Corgan_ : 30-04-2008 alle 18:32.
Corgan_ è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2010, 17:47   #13
gabriWWW
Junior Member
 
Iscritto dal: Dec 2006
Messaggi: 18
salve a tutti ,

rimmetto in luce questo post, poiche ho un problema con il file ke consigliavate.

uso visual c++ express edition 2008

ho compilato il file seguendo le istruzioni risultato funziona il main si avvia e non mi da errori.

il problema che vorrei creare una libreria affinche la possa includere su un altro progetto.

ho seguito la guida ma vc mi dà errore : file non presente in directory...

qlc1 puo aiutarmi
gabriWWW è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2010, 20:43   #14
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
che operazioni devi implementare??
perchè se ti limiti a quelle piu elementari io ho scritto una piccola classe in c++ per gestirle.
la trovi qui: http://mamo139.altervista.org/index....classi&id=2000
se hai pretese in piu invece non so aiutarti, perchè non mi sono piu interessato all'argomento
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2010, 09:18   #15
gabriWWW
Junior Member
 
Iscritto dal: Dec 2006
Messaggi: 18
ok vanno bene....il problema che mi dà errore

c:matrici.cpp(31) : warning C4101: 'y': variabile locale senza riferimenti

1>c:\documents and settings\***\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(103) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> c:\programmi\microsoft visual studio 9.0\vc\include\stdio.h(237): vedere la dichiarazione di 'fopen'

1>c:\documents and settings\***\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(157) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> c:\programmi\microsoft visual studio 9.0\vc\include\stdio.h(237): vedere la dichiarazione di 'fopen'
1>c:\documents and settings\****\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(173) : warning C4101: 'y': variabile locale senza riferimenti

1>c:\documents and settings\***\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(369) : error C2668: 'pow': chiamata ambigua a funzione in overload

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(575): potrebbe essere 'long double pow(long double,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(527): o 'float pow(float,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(489): o 'double pow(double,int)'

1> durante la ricerca di corrispondenza con l'elenco di argomenti '(int, long)'

1>c:\documents and settings\****\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(393) : error C2668: 'pow': chiamata ambigua a funzione in overload

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(575): potrebbe essere 'long double pow(long double,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(527): o 'float pow(float,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(489): o 'double pow(double,int)'

1> durante la ricerca di corrispondenza con l'elenco di argomenti '(int, long)'



1>EKFLocal - 2 errore/i, 4 avviso/i
gabriWWW è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2010, 09:24   #16
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
colpa mia, non ho aggiornato il sito, quella versione si compila solo con dev-c++...

ora l'ho aggiornata, ho messo quella che si compila anche con vc++

la trovi sempre allo stesso link, ho sostituito i sorgenti!!
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2010, 09:46   #17
gabriWWW
Junior Member
 
Iscritto dal: Dec 2006
Messaggi: 18
Quote:
Originariamente inviato da mamo139 Guarda i messaggi
che operazioni devi implementare??
perchè se ti limiti a quelle piu elementari io ho scritto una piccola classe in c++ per gestirle.
la trovi qui: http://mamo139.altervista.org/index....classi&id=2000
se hai pretese in piu invece non so aiutarti, perchè non mi sono piu interessato all'argomento
ok funziona!!!!!


grazie
gabriWWW è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
Un chip nel cervello gli restituisce la ...
NVIDIA svela la tecnologia che trasforma...
iPhone del 20° anniversario e AirPods co...
Non solo Prime: ecco le 13 offerte su Am...
Xreal Aura apre le prenotazioni: gli occ...
Snap presenta i nuovi Specs: gli occhial...
Google rilascia Wear OS 7: basato su And...
Microsoft chiude la porta ai Surface da ...
Sedie gaming e da ufficio in offerta: a ...
Viltrox porta il suo 28mm f/4.5 pancake ...
Jensen Huang è andato a zappare l...
Prime Day in anticipo - giorno 3: ci son...
AMD EPYC e Instinct: accordo per fornire...
Amazon spinge Fire TV Stick 4K Select, R...
Ryzen 10000 Olympic Ridge desktop: addio...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:31.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v