Текст подпрограммы и версий ame3r_p.zip , ame3e_p.zip |
Тексты тестовых примеров tame3r_p.zip , tame3e_p.zip |
Копирование разреженной матрицы, заданной в произвольном строчном формате.
Подпрограмма AME3R выполняет копирование разреженной матрицы A с NR строками, заданной в произвольном строчном представлении, в массивы, определяющие то же самое строчное представление матрицы B.
procedure AME3R(var IA :Array of Integer; var JA :Array of Integer; var AN :Array of Real; NR :Integer; var IB :Array of Integer; var JB :Array of Integer; var BN :Array of Real);
Параметры
IA, JA - AN | заданные портрет и ненулевые элементы разреженной матрицы A в произвольном строчном формате; |
NR - | число строк матриц A и B (тип: целый); |
IB, JB - BN | заданные портрет и массив для ненулевых элементов матрицы B в том же самом строчном формате. |
Версии:
AME3E - | копирование разреженной матрицы, заданной в произвольном строчном формате, в режиме расширенной (Extended) точности; при этом параметры AN и BN должны иметь тип Extended. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
Unit TAME3R_p; interface uses SysUtils, Math, { Delphi } LStruct, Lfunc, UtRes_p, AME3R_p; function TAME3R: String; implementation function TAME3R: String; var NR,_i :Integer; IB :Array [0..4] of Integer; JB :Array [0..5] of Integer; BN :Array [0..5] 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 ); AN :Array [0..5] of Real = ( 1.0,1.0,1.0,1.0,1.0,1.0 ); begin Result := ''; { ТЕСТ ДЛЯ ПОДПРОГРАММЫ AME3R } NR := 4; AME3R(IA,JA,AN,NR,IB,JB,BN); Result := Result + Format('%s',[' IB=']); Result := Result + #$0D#$0A; for _i:=0 to 4 do begin Result := Result + Format('%5d ',[IB[_i]]); if ( ((_i+1) mod 5)=0 ) then Result := Result + #$0D#$0A; end; Result := Result + #$0D#$0A; Result := Result + Format('%s',[' JB=']); Result := Result + #$0D#$0A; for _i:=0 to 5 do begin Result := Result + Format('%5d ',[JB[_i]]); if ( ((_i+1) mod 6)=0 ) then Result := Result + #$0D#$0A; end; Result := Result + #$0D#$0A; Result := Result + Format('%s',[' BN=']); Result := Result + #$0D#$0A; for _i:=0 to 5 do begin Result := Result + Format('%20.16f ',[BN[_i]]); if ( ((_i+1) mod 6)=0 ) then Result := Result + #$0D#$0A; end; Result := Result + #$0D#$0A; UtRes('TAME3R',Result); { вывод результатов в файл TAME3R.res } exit; end; end. Результаты: IB = ( 1, 4, 4, 6, 7 ) JB = ( 1, 5, 4, 4, 2, 1 ) BN = ( 1, 1, 1, 1, 1, 1 )