Math
Документация по проекту: Реализация библиотеки math.h
Глава I: Введение
В данном проекте предусмотрена разработка собственной версии стандартной библиотеки
на языке программирования C. Целью проекта является реализация базовых математических операций, аналогичных тем, что предоставляются стандартной библиотекой C. Этот проект позволит ознакомиться с основами вычислительных методов, а также закрепить подходы структурного программирования и разработку статических библиотек.
Глава II: Информация
Математические операции в языке C включают функции, работающие с числами с плавающей запятой. Эти функции используются в различных вычислительных задачах и являются стандартной частью библиотеки C. В данном проекте будет реализован ограниченный набор функций из стандартной библиотеки
, включающий следующие:
Обзор функций
No. | Function | Description |
---|---|---|
1 |
| Вычисляет абсолютное значение целого числа. |
2 |
| Вычисляет арккосинус. |
3 |
| Вычисляет арксинус. |
4 |
| Вычисляет арктангенс. |
5 |
| Возвращает ближайшее целое число, не меньшее заданного значения. |
6 |
| Вычисляет косинус. |
7 |
| Возвращает значение , возведенное в заданную степень. |
8 |
| Вычисляет абсолютное значение числа с плавающей точкой. |
9 |
| Возвращает ближайшее целое число, не превышающее заданное значение. |
10 |
| Остаток операции деления с плавающей точкой. |
11 |
| Вычисляет натуральный логарифм. |
12 |
| Возводит число в заданную степень. |
13 |
| Вычисляет синус. |
14 |
| Вычисляет квадратный корень. |
15 |
| Вычисляет тангенс. |
Функции, работающие с углами, используют радианы в качестве единицы измерения.
Глава III: Реализация
Part 1. Реализация функций библиотеки math.h
Требования:
-
Язык программирования и стандарты:
- Библиотека должна быть разработана на языке C стандарта C11 с использованием компилятора
.gcc - Код библиотеки должен находиться в папке
в веткеsrc
.develop
- Библиотека должна быть разработана на языке C стандарта C11 с использованием компилятора
-
Кодирование:
- Не использовать устаревшие или выведенные из употребления конструкции языка и библиотечные функции. Ориентироваться на стандарт POSIX.1-2017.
- Следовать стилю кода Google Style.
- Реализовать библиотеку как статическую библиотеку с заголовочным файлом
.s21_math.h - Использовать префикс
перед каждой функцией.s21_ - Исключить дублирование кода и придерживаться принципов структурного программирования.
-
Тестирование:
- Подготовить полное покрытие unit-тестами функций библиотеки с помощью библиотеки Check.
- Unit-тесты должны проверять результаты работы вашей реализации путем сравнения с реализацией стандартной библиотеки
.math.h - Unit-тесты должны покрывать не менее 80% каждой функции.
- В цели
должен формироваться отчетgcov_report
в виде HTML-страницы. Для этого unit-тесты должны запускаться с флагамиgcov
.gcov
-
Сборка:
- Предусмотреть
для сборки библиотеки и тестов с целямиMakefile
,all
,clean
,test
,s21_math.a
.gcov_report
- Предусмотреть
-
Ограничения:
- Запрещено копирование реализации и использование стандартной библиотеки
везде, кроме unit-тестов.math.h - Необходимо соблюсти логику работы стандартной библиотеки (в части проверок, работы с памятью и поведения в нештатных ситуациях — здесь помогут тесты).
- Общая проверяемая точность — 16 значащих цифр.
- Проверяемая точность дробной части — максимум 6 знаков после запятой.
- Запрещено копирование реализации и использование стандартной библиотеки
Эта документация предоставляет описание и требования для реализации собственной версии библиотеки
, включая подробности по реализации, тестированию и сборке.