Из найденных на диске исходных текстов стандартной математической библиотеки АЛГОЛА-60 (библиотечные процедуры хранились в текстовом виде, по-видимому, в силу каких-то особенностей автора системы, и в кодировке, в точности совпадающей с кодировкой перфокарт, т. е. с битом четности, что было довольно неочевидно при поиске интересностей во всех возможных кодировках), одна содержит довольно забавную диагностику об ошибке. Сейчас в такой манере вычислительные библиотеки с пользователями не общаются.
_REAL _PRОCEDURE ЛАГРАНЖ2(A,Х,У,Х1,Х2,P,П,П1);
_REAL Х1,Х2;_INTEGER P,П,П1;_ARRAУ A,Х,У;
_BEGIN _REAL S,Z,Z1;_INTEGER I,J,J1,К;
_ARRAУ S1[0:20];
_INTEGER Я,Я1;
_IF Х2ПРИ ОБРАЩЕНИИ К ПРОЦЕДУРЕ ЛАГРАНЖ2 АРГУМЕНТ=’,
‘E’,Z,‘T’,
‘ВЫШЕЛ ЗА ПРЕДЕЛЫ ТАБЛИЦЫ. РАЗБЕРИСЬ В ЧЕМ ДЕЛО, А Я ПРЕРЫВАЮ СЧЕТ. ДО ВСТРЕЧИ!’);
ОUTPUT(‘×’);
S:=S/0;
М:_IF I≤П-P_THEN J:=I_ELSE J:=П-P;
_IF J1>П1-P_THEN J1:=П1-P;
Я1:=J1;
_FOR Я:=
_STEP 1_UNTIL P_DО _BEGIN
S:=0;
_FOR I:=0_STEP 1_UNTIL P_DО _BEGIN
Z:=Z1:=1;
_FOR К:=0_STEP 1_UNTIL P_DО _BEGIN
_IF К≠I_THEN Z:=Z×(Х1-Х[К+J])/(Х[I+J]-Х[К+J]);
_END ;
S:=S+У[I+J+(J1-1)×П]×Z;_END ;
S1[Я]:=S;J1:=J1+1;_END ;
S:=0;
_FOR I:=0_STEP 1_UNTIL P_DО _BEGIN
Z:=Z1:=1;
_FOR К:=0_STEP 1_UNTIL P_DО _BEGIN
_IF К≠I_THEN Z:=Z×(Х2-A[К+Я1])/(A[I+Я1]-A[К+Я1]);
_END ;
S:=S+S1[I]×Z;_END ;
ЛАГРАНЖ2:=S;
_END
Необходимое примечание: Название процедуры ЛАГРАНЖ2 вряд ли имеет отношение к точке Лагранжа L2, по направлению к которой сейчас летит телескоп имени Уэбба.
This entry was originally posted at
https://spamsink.dreamwidth.org/1238339.html. Please comment there using
OpenID.