Текст подпрограммы и версий
sf31r_p.zip , sf31e_p.zip
Тексты тестовых примеров
tsf31r_p.zip , tsf31e_p.zip

Функция:  SF31R (модуль SF31R_p)

Назначение

Вычисление значений интегрального косинуса.

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

Функция SF31R вычисляет значение интегрального косинуса

                    x
     Ci (x) = ∫ cos t / t dt
                  

для вещественных значений аргумента  x.

J.F.Hart, E.W.Cheney, C.L.Lawson, Computer Approximations, Wiley, New York, 1968.

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

function SF31R(X :Real; var IERR :Integer): Real;

Параметры

X - заданное значение аргумента  x (тип: вещественный);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
IERR=65 - когда аргумент принимает значение меньшее или pавное 0.; значение функции полагается равным 3.4E38.

Версии

SF31E - вычисление значений интегрального косинуса с расширенной (Extended) точностью.

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

UTSF10 - подпрограмма выдачи диагностических сообщений при работе функции SF31R.
UTSF11 - подпрограмма выдачи диагностических сообщений при работе функции SF31E.

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

  Для функции SF31E параметр X имеет тип Extended. Если значение аргумента X меньше или pавно 0, значение IERR полагается равным 65, а значение функции равным 1.7E308.

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

Unit tsf31r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF31R_p;

function tsf31r: String;

implementation

function tsf31r: String;
var
IERR :Integer;
X,Y :Real;
begin
Result := '';  { результат функции }
X := 3.141592653589/2;
Y := SF31R(X,IERR);
Result := Result + Format('%s',[' X=']);
Result := Result + Format('%20.16f ',[X]);
Result := Result + Format('%s',['  Y=']);
Result := Result + Format('%20.16f ',[Y]) + #$0D#$0A;
Result := Result + Format('%s',[' IERR=']);
Result := Result + Format('%5d ',[IERR]) + #$0D#$0A;
UtRes('tsf31r',Result);  { вывод результатов в файл tsf31r.res }
exit;
end;

end.


Результаты:

       Y  =  0.472000651432,    IERR  =  0