Текст подпрограммы и версий
ama7r_p.zip
Тексты тестовых примеров
tama7r_p.zip

Подпрограмма:  AMA7R (модуль AMA7R_p)

Назначение

Символическое сложение двух прямоугольных разреженных матриц, заданных в формате RR (C) U.

Математическое описание

Описания форматов RR (C) U и RR (C) O приведено в описании подпрограммы AMTSR .

Пусть заданы прямоугольные разреженные матрицы A и B размеров N на M в формате RR (C) U. Подпрограмма AMA7R вычисляет портрет матрицы C, равной A + B, формируемый в формате RR (C) U, даже если матрицы A и B заданы в формате RR (C) O.

С.Писсанецки. Технология разреженных матриц. - М.: Мир, 1988.

Использование

procedure AMA7R(var IA :Array of Integer; var JA :Array of Integer;
                var IB :Array of Integer; var JB :Array of Integer;
                N :Integer; M :Integer; var IC :Array of Integer;
                var JC :Array of Integer; var IX :Array of Integer);
                

Параметры

IA, JA - заданный портрет матрицы A в формате RR (C) U;
IB, JB - заданный портрет матрицы B в формате RR (C) U;
N - заданное число строк матриц A и B (тип: целый);
M - заданное число столбцов матриц A и B (тип: целый).
IC, JC - полученный портрет матрицы C = A + B в формате RR (C) U;
IX - целый массив длины M, используемый в подпрограмме в качестве рабочего.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

Unit TAMA7R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AMA7R_p;

function TAMA7R: String; 

implementation

function TAMA7R: String;
var
N,M,_i :Integer;
IC :Array [0..4] of Integer;
JC :Array [0..14] of Integer;
IX :Array [0..5] of Integer;
const
IA :Array [0..4] of Integer = ( 1,3,7,9,11 );
JA :Array [0..9] of Integer = ( 5,3,4,3,1,5,1,6,4,2 );
IB :Array [0..4] of Integer = ( 1,4,5,8,10 );
JB :Array [0..8] of Integer = ( 1,6,3,5,4,2,1,2,3 );
begin
Result := '';

{      ТЕСТ ДЛЯ ПОДПРОГРАММЫ AMA7R }

N := 4;
M := 6;
AMA7R(IA,JA,IB,JB,N,M,IC,JC,IX);
Result := Result + Format('%s',[' IC=']);
Result := Result + #$0D#$0A;
for _i:=0 to 4 do
 begin
  Result := Result + Format('%4d ',[IC[_i]]);
  if ( ((_i+1) mod 15)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
Result := Result + Format('%s',[' JC=']);
Result := Result + #$0D#$0A;
for _i:=0 to 14 do
 begin
  Result := Result + Format('%4d ',[JC[_i]]);
  if ( ((_i+1) mod 15)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
UtRes('TAMA7R',Result);  { вывод результатов в файл TAMA7R.res }
exit;
end;

end.

Результаты:

      IC = ( 1, 5, 9, 13, 16 )
      JC = ( 5, 3, 1, 6, 4, 3, 1, 5, 1, 6, 4, 2, 4, 2, 3 )