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,