|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.ru/lib_na/cat/am_htm_p/ammjr_p.htm
Дата изменения: Thu Dec 3 13:57:36 2015 Дата индексирования: Sun Apr 10 03:48:46 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий ammjr_p.zip , ammje_p.zip |
Тексты тестовых примеров tammjr_p.zip , tammje_p.zip |
Численное умножение прямоугольных разреженных матриц, заданных в формате RR (C) U .
Описание формата RR (C) U приведено в описании подпрограммы AMTSR .
Пусть в формате RR (C) U заданы матрица A размеров p на q и матрица B размеров q на r. Пусть известен также портрет результирующей матрицы C = A * B в формате RR (C) U, полученный, например, предварительно при помощи подпрограммы AMMIR. Подпрограмма AMMJR вычисляет ненулевые элементы матрицы C посредством алгоритма, изложенного в описании подпрограммы AMMIR .
С.Писсанецки. Технология разреженных матриц. - М.: Мир, 1988.
procedure AMMJR(var IA :Array of Integer; var JA :Array of Integer;
var AN :Array of Real; var IB :Array of Integer;
var JB :Array of Integer; var BN :Array of Real;
var IC :Array of Integer; var JC :Array of Integer;
NP :Integer; NQ :Integer; NR :Integer;
var CN :Array of Real; var X :Array of Real);
Параметры
|
IA, JA - AN | заданные портрет и ненулевые элементы матрицы A в формате RR (C) U; |
|
IB, JB - BN | заданные портрет и ненулевые элементы матрицы B в формате RR (C) U; |
| IC, JC - | заданный портрет результирующей матрицы C в формате RR (C) U; |
| NP - | заданное число строк матрицы A (тип: целый); |
| NQ - | заданное число столбцов матрицы A и строк матрицы B (тип: целый); |
| NR - | заданное число столбцов матрицы B (тип: целый); |
| CN - | вещественный одномерный массив, в котором помещаются вычисленные ненулевые элементы матрицы C согласно портрету IC, JC; |
| X - | вещественный одномерный массив длины NR, используемый в подпрограмме в качестве рабочего. |
Версии
| AMMJE - | численное умножение прямоугольных разреженных матриц, заданных в формате RR (C) U, в режиме расширенной (Extended) точности; при этом параметры AN, BN, CN и X должны иметь тип Extended. |
Вызываемые подпрограммы нет
Замечания по использованию нет
Unit TAMMJR_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AMMJR_p;
function TAMMJR: String;
implementation
function TAMMJR: String;
var
NP,NQ,NR,_i :Integer;
CN :Array [0..3] of Real;
X :Array [0..2] of Real;
const
IA :Array [0..4] of Integer = ( 1,4,4,6,7 );
JA :Array [0..5] of Integer = ( 1,5,4,4,2,1 );
IB :Array [0..5] of Integer = ( 1,2,4,6,6,7 );
JB :Array [0..5] of Integer = ( 2,2,1,2,1,2 );
IC :Array [0..4] of Integer = ( 1,2,2,4,5 );
JC :Array [0..3] of Integer = ( 2,2,1,2 );
AN :Array [0..5] of Real = ( 1.0,1.0,1.0,1.0,1.0,1.0 );
BN :Array [0..5] of Real = ( 1.0,1.0,1.0,1.0,1.0,1.0 );
begin
Result := '';
{ ТЕСТ ДЛЯ ПОДПРОГРАММЫ AMMJR }
NP := 4;
NQ := 5;
NR := 3;
AMMJR(IA,JA,AN,IB,JB,BN,IC,JC,NP,NQ,NR,CN,X);
Result := Result + Format('%s',[' CN=']);
Result := Result + #$0D#$0A;
for _i:=0 to 3 do
begin
Result := Result + Format('%20.16f ',[CN[_i]]);
if ( ((_i+1) mod 4)=0 )
then Result := Result + #$0D#$0A;
end;
Result := Result + #$0D#$0A;
UtRes('TAMMJR',Result); { вывод результатов в файл TAMMJR.res }
exit;
end;
end.
Результаты: CN = ( 2, 1, 1, 1 )