-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!.POSTED!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 19:14:28 +0100
Organization: http://onet.pl
Lines: 137
Message-ID: <iic6vp$ll2$1@news.onet.pl>
References: <iic1t4$umq$1@news.onet.pl> <iic3cj$4sn$1@news.onet.pl>
<iic3k6$5n8$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 1296670521 22178 95.160.75.158 (2 Feb 2011 18:15:21 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 2 Feb 2011 18:15:21 +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: <iic3k6$5n8$1@news.onet.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:188552
[ ukryj nagłówki ]> Pokaz caly program, wraz z wywolywaniem tej procedury.
Wedle życzenia:
Wariant 1:
program test;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
type
TMatrix = array of array of double;
procedure NewMatrix(N, M:integer; var T:TMatrix);
begin
SetLength(T, N, M);
end;
procedure RndMatrix(N, M:integer; var T:TMatrix);
var
i, j:integer;
begin
for i := 0 to N-1 do
for j := 0 to M-1 do T[i, j] := random(N * M);
end;
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;
const
N = 2000;
M = 300;
var
A, B, C:TMatrix;
T1, T2, F:int64;
begin
randomize;
NewMatrix(N, M, A);
NewMatrix(M, N, B);
NewMatrix(N, N, C);
RndMatrix(N, M, A);
RndMatrix(M, N, B);
QueryPerformanceFrequency(F);
QueryPerformanceCounter(T1);
MulMatrix(N, M, N, A, B, C);
QueryPerformanceCounter(T2);
Writeln('Time = ' + FloatToStr((T2 - T1) / F));
end.
i wariant 2:
program test;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
type
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 RndMatrix2A(N, M:integer; var T:TA);
var
i, j:integer;
begin
for i := 0 to N-1 do
for j := 0 to M-1 do T[i, j] := random(N * M);
end;
procedure RndMatrix2B(N, M:integer; var T:TB);
var
i, j:integer;
begin
for i := 0 to N-1 do
for j := 0 to M-1 do T[i, j] := random(N * M);
end;
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;
const
N = 2000;
M = 300;
var
A:TA;
B:TB;
C:TC;
T1, T2, F:int64;
begin
randomize;
RndMatrix2A(N, M, A);
RndMatrix2B(M, N, B);
QueryPerformanceFrequency(F);
QueryPerformanceCounter(T1);
MulMatrix2(N, M, N, A, B, C);
QueryPerformanceCounter(T2);
Writeln('Time = ' + FloatToStr((T2 - T1) / F));
end.
Pozdrawiam,
Fil.
Następne wpisy z tego wątku
- 02.02.11 18:14 Fil
- 02.02.11 18:20 Fil
- 02.02.11 18:40 Grzegorz Krukowski
- 02.02.11 19:05 Fil
- 02.02.11 19:15 Grzegorz Krukowski
- 02.02.11 19:30 Fil
- 02.02.11 19:51 Grzegorz Krukowski
- 02.02.11 19:55 Fil
- 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
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
Najnowsze wątki
- 2025-05-08 Usługi, rozliczanie płatności z karty i blika
- 2025-05-08 Lublin => Delphi Programmer <=
- 2025-05-08 Lublin => Programista Delphi <=
- 2025-05-08 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-08 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-07 Wielki smog w Watykanie
- 2025-05-07 Polscy czołgiści najlepsi w międzynarodowych zawodach na Łotwie!!!
- 2025-05-07 Znaki wewnętrzne
- 2025-05-07 Czujnik nacisku
- 2025-05-07 Wielki smog w Watykanie Nadal palą węglem w piecach
- 2025-05-07 Kraków => Business Development Manager - Network and Network Security
- 2025-05-07 Białystok => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-05-07 Białystok => Team Lead Data Engineer (Snowflake) <=
- 2025-05-07 Warszawa => IT Recruiter <=
- 2025-05-07 Żerniki => Dyspozytor Międzynarodowy <=