- •1. Описание использования комплекса и входящих в него компонент.
- •2. Описание интерфейсов программирования.
- •2.1 Общее описание.
- •2.2.5 Специальные типы.
- •2.3 Используемые константы.
- •2.4 Вспомогательные функции.
- •2.4.1 Вычисление значения интеграла методом Симпсона.
- •2.4.2 Вычисление функции плотности и её первой производной одномерного нормального распределения.
- •2.4.3 Вычисление функции плотности двухмерного нормального распределения.
- •2.5 Вычисление функции одномерного нормального распределения.
- •2.6 Вычисление квантили одномерного нормального распределения.
- •2.7 Вычисление функций нецентральных распределений.
- •2.8 Вычисление квантили нецентральных распределений.
- •2.9 Вычисление функции многомерного нормального распределения.
- •2.10 Вычисление радиуса доверительного шара.
- •2.11 Пример использования комплекса.
1. Описание использования комплекса и входящих в него компонент.
Комплекс представляет собой библиотеку функций, написанных на языке C++. Поэтому применение данного программно-аппаратного комплекса возможно на платформах, где имеется соответствующий компилятор. Основные функции комплекса реализованы в виде стандартных функций языка “C”. Это связано с тем, что использование объектно-ориентированного программирования не дает в данном конкретном случае никаких преимуществ, а скорость вычислений хотя и незначительно, но снижается. Объектно-ориентированное программирование потребовалось при реализации полинома специального вида, требующегося в итерационных методах вычисления квантили. При этом использовалась инкапсуляция данных, возможность создания нескольких объектов одновременно и удобство реализации взаимодействия между ними. Все это позволило в значительной степени упростить разработку методов вычисления квантили.
При использовании комплекса в целом, требуется установить все заголовочные файлы и файл библиотеки функций комплекса в произвольный каталог на диске. При компиляции необходимо указать путь к заголовочным файлам комплекса, а при сборке – файл библиотеки функций.
Если требуется использовать одну или несколько вполне определенных функций, можно взять файлы с соответствующими исходными текстами и включить их в свой проект. Это позволит более гибко настраивать комплекс для специфичных приложений.
Комплекс в целом имеет следующую структуру. Исходный текст функций, относящихся к одной проблеме, находятся в отдельном файле с расширением ”.cpp”. Для каждого файла с исходными текстами имеется файл заголовков с расширением ”.h”. Кроме этого, имеется набор общих для всего комплекса файлов заголовков. Эти файлы обязательны при использовании как всего комплекса в целом, так и отдельных частей.
2. Описание интерфейсов программирования.
2.1 Общее описание.
Данный комплекс представляет собой библиотеку функций, написанных на языке C++. Выбор языка программирования был определен его широким распространением и удобством в применении. Компиляторы для языка C++ имеются практически на всех платформах. Принимая во внимание также то, что данный комплекс написан без применения платформенно-зависимых расширений, перенос комплекса будет заключаться в простой перекомпиляции исходный текстов.
На данный момент комплекс оформлен в виде статической библиотеки. В этом виде комплекс может применяться на любой платформе. Но в случае необходимости имеется возможность оформить данный комплекс в виде динамической библиотеки (”.dll”). При этом будут экономиться ресурсы компьютера, но библиотека становиться платформенно-зависимой.
Определения функций находятся в файлах с расширением cpp. Интерфейсы функций находятся в файлах с расширением ”.h”. Для использования функций комплекса необходимо включить с помощью директивы языка C++ ”#include” файл с определениями интерфейсов функций ”fpq.h”. Путь к местоположению файлов интерфейсов комплекса должен быть известен компилятору.
При сборке (линковке) программы компилятору необходимо указать библиотеку ”fpq.lib”. Путь к местоположению библиотеки функций комплекса должен быть известен компилятору.
Пример программы, использующей функции данного комплекса и применяющейся для тестирования комплекса находиться в Приложении.
2.2 Используемые типы данных.
2.2.1 Общее описание.
Для упрощения переноса комплекса на другие платформы, а также для снижения потенциальных ошибок в комплексе используются унифицированные типы данных. При необходимости изменения типа данных, необходимо изменить соответствующее переопределение типа в файле ”fpq_type.h” и перекомпилировать весь комплекс.
2.2.2 Вещественные типы.
Все вещественные числа имеют тип REAL – тип вещественное число с двойной точностью. Данный тип определен в файле ”fpq_type.h” и по желанию может быть изменен.
2.2.3 Целочисленные типы.
Все целые числа имеют тип INTEGER – тип целое 32-х битное число. Данный тип определен в файле ”fpq_type.h” и по желанию может быть изменен.
2.2.4 Типизированные указатели.
Для универсализации функций, входящих в комплекс, применяются типизированные указатели.
Используются следующие типизированные указатели:
FPQ_Integral_Func – тип указатель на функцию, имеющую следующий прототип:
REAL FPQ_Integral_Func(
REAL fi,
REAL * pFuncConst
)
Функция данного типа используется при вычислении подынтегрального выражения и задается пользователем как входной параметр функции численного интегрирования методом Симпсона.
Функция имеет следующие параметры:
fi – переменная интегрирования.
pFuncConst – массив неизменяемых параметров; задается пользователем как входной параметр функции численного интегрирования методом Симпсона.
FPQ_UniQtFunc – тип указатель на функцию, имеющую следующий прототип:
REAL FPQ_UniQtFunc(
REAL x,
REAL * pArg
)
Функция данного типа используется при вычислении квантили нецентральных распределений и задается пользователем как входной параметр функции вычисления квантили.
Функция имеет следующие параметры:
x – переменная интегрирования.
pArg – массив неизменяемых параметров; задается пользователем как входной параметр функции вычисления квантили.