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

Подпрограмма:  AMTCR (модуль AMTCR_p)

Назначение

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

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

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

Данная подпрограмма по портрету исходной матрицы A вычисляет портрет транспонированной матрицы AT и представляет его в формате RR (C) O .

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

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

procedure AMTCR(var IA :Array of Integer; var JA :Array of Integer;
                N :Integer; M :Integer; var IAT :Array of Integer;
                var JAT :Array of Integer); 

Параметры

IA, JA - заданный портрет транспонируемой прямоугольной матрицы A в формате RR (C) U;
N - заданное число строк транспонируемой матрицы A (тип: целый);
M - заданное число столбцов транспонируемой матрицы A (тип: целый);
IAT -
JAT  
вычисленный портрет транспонированной матрицы A в формате RR (C) O .

Версии: нет

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

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

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

Unit TAMTCR_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AMTCR_p;

function TAMTCR: String; 

implementation

function TAMTCR: String;
var
N,M,_i :Integer;
IАТ :Array [0..6] of Integer;
JАТ :Array [0..12] of Integer;
const
IA :Array [0..5] of Integer = ( 1,4,6,8,11,14 );
JA :Array [0..12] of Integer = ( 5,6,3,4,1,3,4,4,3,1,2,6,5 );
begin
Result := '';

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

N := 5;
M := 6;
AMTCR(IA,JA,N,M,IAT,JAT);
Result := Result + Format('%s',[' IAT=']);
Result := Result + #$0D#$0A;
for _i:=0 to 6 do
 begin
  Result := Result + Format('%5d ',[IAT[_i]]);
  if ( ((_i+1) mod 15)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
Result := Result + Format('%s',[' JAT=']);
Result := Result + #$0D#$0A;
for _i:=0 to 12 do
 begin
  Result := Result + Format('%5d ',[JAT[_i]]);
  if ( ((_i+1) mod 15)=0 )
   then Result := Result + #$0D#$0A;
 end;
Result := Result + #$0D#$0A;
UtRes('TAMTCR',Result);  { вывод результатов в файл TAMTCR.res }
exit;
end;

end.

Результаты: 

      IAT  =  (1, 3, 4, 7, 10, 12, 14) 
      JAT  =  (2, 4, 5, 1, 3, 4, 2, 3, 4, 1, 5, 1, 5)