Следите за новостями GitVerse в нашем телеграм-канале

Math

Форк
0

5 месяцев назад
5 месяцев назад
README.md

Документация по проекту: Реализация библиотеки
math.h

Глава I: Введение

В данном проекте предусмотрена разработка собственной версии стандартной библиотеки

math.h
на языке программирования C. Целью проекта является реализация базовых математических операций, аналогичных тем, что предоставляются стандартной библиотекой C. Этот проект позволит ознакомиться с основами вычислительных методов, а также закрепить подходы структурного программирования и разработку статических библиотек.

Глава II: Информация

Математические операции в языке C включают функции, работающие с числами с плавающей запятой. Эти функции используются в различных вычислительных задачах и являются стандартной частью библиотеки C. В данном проекте будет реализован ограниченный набор функций из стандартной библиотеки

math.h
, включающий следующие:

Обзор функций

No.FunctionDescription
1
int abs(int x)
Вычисляет абсолютное значение целого числа.
2
long double acos(double x)
Вычисляет арккосинус.
3
long double asin(double x)
Вычисляет арксинус.
4
long double atan(double x)
Вычисляет арктангенс.
5
long double ceil(double x)
Возвращает ближайшее целое число, не меньшее заданного значения.
6
long double cos(double x)
Вычисляет косинус.
7
long double exp(double x)
Возвращает значение
e
, возведенное в заданную степень.
8
long double fabs(double x)
Вычисляет абсолютное значение числа с плавающей точкой.
9
long double floor(double x)
Возвращает ближайшее целое число, не превышающее заданное значение.
10
long double fmod(double x, double y)
Остаток операции деления с плавающей точкой.
11
long double log(double x)
Вычисляет натуральный логарифм.
12
long double pow(double base, double exp)
Возводит число в заданную степень.
13
long double sin(double x)
Вычисляет синус.
14
long double sqrt(double x)
Вычисляет квадратный корень.
15
long double tan(double x)
Вычисляет тангенс.

Функции, работающие с углами, используют радианы в качестве единицы измерения.

Глава III: Реализация

Part 1. Реализация функций библиотеки
math.h

Требования:

  1. Язык программирования и стандарты:

    • Библиотека должна быть разработана на языке C стандарта C11 с использованием компилятора
      gcc
      .
    • Код библиотеки должен находиться в папке
      src
      в ветке
      develop
      .
  2. Кодирование:

    • Не использовать устаревшие или выведенные из употребления конструкции языка и библиотечные функции. Ориентироваться на стандарт POSIX.1-2017.
    • Следовать стилю кода Google Style.
    • Реализовать библиотеку как статическую библиотеку с заголовочным файлом
      s21_math.h
      .
    • Использовать префикс
      s21_
      перед каждой функцией.
    • Исключить дублирование кода и придерживаться принципов структурного программирования.
  3. Тестирование:

    • Подготовить полное покрытие unit-тестами функций библиотеки с помощью библиотеки Check.
    • Unit-тесты должны проверять результаты работы вашей реализации путем сравнения с реализацией стандартной библиотеки
      math.h
      .
    • Unit-тесты должны покрывать не менее 80% каждой функции.
    • В цели
      gcov_report
      должен формироваться отчет
      gcov
      в виде HTML-страницы. Для этого unit-тесты должны запускаться с флагами
      gcov
      .
  4. Сборка:

    • Предусмотреть
      Makefile
      для сборки библиотеки и тестов с целями
      all
      ,
      clean
      ,
      test
      ,
      s21_math.a
      ,
      gcov_report
      .
  5. Ограничения:

    • Запрещено копирование реализации и использование стандартной библиотеки
      math.h
      везде, кроме unit-тестов.
    • Необходимо соблюсти логику работы стандартной библиотеки (в части проверок, работы с памятью и поведения в нештатных ситуациях — здесь помогут тесты).
    • Общая проверяемая точность — 16 значащих цифр.
    • Проверяемая точность дробной части — максимум 6 знаков после запятой.

Эта документация предоставляет описание и требования для реализации собственной версии библиотеки

math.h
, включая подробности по реализации, тестированию и сборке.

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

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.