-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
STED!not-for-mail
From: Fil <f...@p...onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: Porównanie szybkości mnożenia macierzy w CPP i PASCAL
Date: Wed, 02 Feb 2011 20:55:00 +0100
Organization: http://onet.pl
Lines: 89
Message-ID: <iiccql$fqk$1@news.onet.pl>
References: <iic1t4$umq$1@news.onet.pl> <iic7ao$n0e$1@news.onet.pl>
NNTP-Posting-Host: 095160075158.kielce.vectranet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Trace: news.onet.pl 1296676501 16212 95.160.75.158 (2 Feb 2011 19:55:01 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 2 Feb 2011 19:55:01 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.13) Gecko/20101207
Thunderbird/3.1.7
In-Reply-To: <iic7ao$n0e$1@news.onet.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:188560
[ ukryj nagłówki ]Jeszcze raz - ostatni test i podsumowanie:
PASCAL wariant 1 kompilator DELPHI: 8,2s
PASCAL wariant 2 kompilator DELPHI: 5,2s
CPP wariant 1 kompilator BUILDER: 4,5s
CPP wariant 2 kompilator BUILDER: 4,0s
CPP wariant 1 kompilator VISUAL: 1,4s
CPP wariant 2 kompilator VISUAL: 1,2s
I tyle w temacie :)
PS. Użyłem Visuala 2010 Ultimate.
Tablice źródłowe 2000 wierszy i 300 kolumn.
Tablica wynikowa 2000 wierszy i kolumn
Poniżej wklejam jeszcze raz procedury:
PASCAL wariant 1:
TMatrix = array of array of double;
procedure MulMatrix(N, Q, M:integer; T1, T2:TMatrix; var T3:TMatrix);
var
i, j, k:integer;
begin
for i := 0 to N-1 do
for j := 0 to M-1 do begin
T3[i, j] := 0;
for k := 0 to Q-1 do T3[i, j] := T3[i, j] + T1[i, k] * T2[k, j];
end;
end;
PASCAL wariant 2:
TA=array[0..1999,0..299] of double;
TB=array[0..299,0..1999] of double;
TC=array[0..1999,0..1999] of double;
procedure MulMatrix2(N, Q, M:integer; var T1:TA; var T2:TB; var T3:TC);
var
i, j, k:integer;
begin
for i := 0 to N-1 do
for j := 0 to M-1 do begin
T3[i, j] := 0;
for k := 0 to Q-1 do T3[i, j] := T3[i, j] + T1[i, k] * T2[k, j];
end;
end;
CPP wariant 1:
void MulTab(int N, int Q, int M, double** A, double** B, double** C)
{
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j) {
C[i][j] = 0;
for (int k = 0; k < Q; ++k) C[i][j] += A[i][k] * B[k][j];
}
}
CPP wariant 2:
void MulTab2(int N, int Q, int M, double** A, double** B, double** C)
{
int _M, _Q;
double R;
double** Ai;
double** Bj;
double* Aik;
double* Bjk;
double* Cij;
while (N--) {
Ai = A++;
Bj = B;
Cij = *C++;
_M = M;
while (_M--) {
Aik = *Ai;
Bjk = *Bj++;
R = 0;
_Q = Q;
while (_Q--) R += *Aik++ * *Bjk++;
*Cij++ = R;
}
}
}
Pozdrawiam,
Fil.
Następne wpisy z tego wątku
- 02.02.11 19:56 Fil
- 02.02.11 20:03 Grzegorz Krukowski
- 02.02.11 20:50 Fil
- 02.02.11 20:57 Mariusz Marszałkowski
- 02.02.11 20:58 Grzegorz Krukowski
- 02.02.11 21:00 Mariusz Marszałkowski
- 02.02.11 21:40 Fil
- 02.02.11 21:44 Mariusz Marszałkowski
- 02.02.11 22:08 Fil
- 02.02.11 22:09 Wojciech Muła
- 02.02.11 22:38 Fil
- 02.02.11 22:56 Fil
- 02.02.11 23:00 Wojciech Muła
- 03.02.11 02:37 Mariusz Marszałkowski
- 03.02.11 08:13 Tomasz Kaczanowski
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-09-30 Rozprawa zdalna brak komputera
- 2024-09-30 Zielona Góra => Spedytor międzynarodowy <=
- 2024-09-30 Hackowanie SS7
- 2024-09-30 Seba strikes back
- 2024-09-30 MĂźnchen => DevOps Engineeer (Azure) <=
- 2024-09-30 MĂźnchen => DevOps Engineer (Azure) <=
- 2024-09-30 Gdańsk => Frontend Developer (Angular area) <=
- 2024-09-30 Warszawa => Spedytor Międzynarodowy <=
- 2024-09-30 Marki => Senior PHP Symfony Developer <=
- 2024-09-30 Warszawa => Technical Leader (Java Background) <=
- 2024-09-30 Warszawa => Key Account Manager <=
- 2024-09-30 Warszawa => Key Account Manager <=
- 2024-09-30 Białystok => Full Stack .Net Engineer <=
- 2024-09-30 Kraków => Ruby Backend Developer <=
- 2024-09-30 dziki wschod