comment ================== 34010 =================
;
real procedure VECVEC(L, U, SHIFT, A, B);
value L, U, SHIFT;
integer L, U, SHIFT;
array A, B;
begin;
integer K;
real S;
S := 0;
for K := L step 1 until U do
S := A[K] × B[SHIFT + K] + S;
VECVEC := S;
end VECVEC;
comment ================== 34011 =================
;
real procedure MATVEC(L, U, I, A, B);
value L, U, I;
integer L, U, I;
array A, B;
begin;
integer K;
real S;
S := 0;
for K := L step 1 until U do
S := A[I, K] × B[K] + S;
MATVEC := S;
end MATVEC;
comment ================== 34012 =================
;
real procedure TAMVEC(L, U, I, A, B);
value L, U, I;
integer L, U, I;
array A, B;
begin;
integer K;
real S;
S := 0;
for K := L step 1 until U do
S := A[K, I] × B[K] + S;
TAMVEC := S;
end TAMVEC;
comment ================== 34013 =================
;
real procedure MATMAT(L, U, I, J, A, B);
value L, U, I, J;
integer L, U, I, J;
array A, B;
begin;
integer K;
real S;
S := 0;
for K := L step 1 until U do
S := A[I, K] × B[K, J] + S;
MATMAT := S;
end MATMAT;
comment ================== 34014 =================
;
real procedure TAMMAT(L, U, I, J, A, B);
value L, U, I, J;
integer L, U, I, J;
array A, B;
begin;
integer K;
real S;
S := 0;
for K := L step 1 until U do
S := A[K, I] × B[K, J] + S;
TAMMAT := S;
end TAMMAT;
comment ================== 34015 =================
;
real procedure MATTAM(L, U, I, J, A, B);
value L, U, I, J;
integer L, U, I, J;
array A, B;
begin;
integer K;
real S;
S := 0;
for K := L step 1 until U do
S := A[I, K] × B[J, K] + S;
MATTAM := S;
end MATTAM;
comment ================== 34016 =================
;
real procedure SEQVEC(L, U, IL, SHIFT, A, B);
value L, U, IL, SHIFT;
integer L, U, IL, SHIFT;
array A, B;
begin;
real S;
S := 0;
for L := L step 1 until U do
begin;
S := A[IL] × B[L + SHIFT] + S;
IL := IL + L;
end;
SEQVEC := S;
end SEQVEC;
comment ================== 34017 =================
;
real procedure SCAPRD1(LA, SA, LB, SB, N, A, B);
value LA, SA, LB, SB, N;
integer LA, SA, LB, SB, N;
array A, B;
begin;
real S;
integer K;
S := 0;
for K := 1 step 1 until N do
begin;
S := A[LA] × B[LB] + S;
LA := LA + SA;
LB := LB + SB;
end;
SCAPRD1 := S;
end SCAPRD1;
comment ================== 34018 =================
;
real procedure SYMMATVEC(L, U, I, A, B);
value L, U, I;
integer L, U, I;
array A, B;
begin;
integer K, M;
real procedure VECVEC(L, U, SHIFT, A, B); code 34010;
real procedure SEQVEC(L, U, IL, SHIFT, A, B); code 34016;
M := if L > I then L else I;
K := M × (M - 1) // 2;
SYMMATVEC := VECVEC(L, if I ≤ U then I - 1 else U, K, B, A) + SEQVEC(M, U, K + I, 0, A, B);
end SYMMATVEC;
comment ================== 31500 =================
;
procedure FULMATVEC(LR, UR, LC, UC, A, B, C);
value LR, UR, LC, UC, B;
integer LR, UR, LC, UC;
array A, B, C;
begin;
real procedure MATVEC(L, U, I, A, B); code 34011;
for LR := LR step 1 until UR do
C[LR] := MATVEC(LC, UC, LR, A, B);
;
end FULMATVEC;
comment ================== 31501 =================
;
procedure FULTAMVEC(LR, UR, LC, UC, A, B, C);
value LR, UR, LC, UC, B;
integer LR, UR, LC, UC;
array A, B, C;
begin;
real procedure TAMVEC(L, U, I, A, B); code 34012;
for LC := LC step 1 until UC do
C[LC] := TAMVEC(LR, UR, LC, A, B);
;
end FULTAMVEC;
comment ================== 31502 =================
;
procedure FULSYMMATVEC(LR, UR, LC, UC, A, B, C);
value LR, UR, LC, UC, B;
integer LR, UR, LC, UC;
array A, B, C;
begin;
real procedure SYMMATVEC(L, U, I, A, B); code 34018;
for LR := LR step 1 until UR do
C[LR] := SYMMATVEC(LC, UC, LR, A, B);
end FULSYMMATVEC;
comment ================== 31503 =================
;
procedure RESVEC(LR, UR, LC, UC, A, B, C, X);
value LR, UR, LC, UC, X;
integer LR, UR, LC, UC;
real X;
array A, B, C;
begin;
real procedure MATVEC(L, U, I, A, B); code 34011;
for LR := LR step 1 until UR do
C[LR] := MATVEC(LC, UC, LR, A, B) + C[LR] × X;
end RESVEC;
comment ================== 31504 =================
;
procedure SYMRESVEC(LR, UR, LC, UC, A, B, C, X);
value LR, UR, LC, UC, X;
integer LR, UR, LC, UC;
real X;
array A, B, C;
begin;
real procedure SYMMATVEC(L, U, I, A, B); code 34018;
for LR := LR step 1 until UR do
C[LR] := SYMMATVEC(LC, UC, LR, A, B) + C[LR] × X;
end SYMRESVEC;
comment ================== 34214 =================
;
real procedure RNK1MIN(N, X, G, H, FUNCT, IN, OUT);
value N;
integer N;
array X, G, H, IN, OUT;
real procedure FUNCT;
begin;
integer I, IT, N2, CNTL, CNTE, EVL, EVLMAX;
Boolean OK;
real F, F0, FMIN, MU, DG, DG0, GHG, GS, NRMDELTA, ALFA, MACHEPS, RELTOL, ABSTOL, EPS, TOLG,