bgc-c/README.md

40 lines
No EOL
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Basic Geometry
## Библиотека базовых геометрических вычислений
(English: library of basic geometric computations)
[English version / версия на английском языке](./README-Eng.md)
Язык программирования: Си (C99)
Версия: 0.2.0-dev
Лицензия: Apache-2.0
Основными целями разработки данной библиотеки были:
1. Производительность
2. Функциональность
3. Универсальность
Производительность была на первом месте, что оказало влияние на особенности
реализации библиотеки.
Например, в качестве основного способа возврата структур данных в качестве
результата выполнения функции был выбран возврат через параметр, что позволяет
избежать избыточного копирования данных через стек вызова.
Также большинство функций выполнены как inline, давая возможность компилятору
заменять вызов функции на тело функции.
Библиотека использует два типа чисел с плавающей запятой: **float** и **double**
(типы **binary32** и **binary64** стандарта **IEEE 754**). Что также повлияло на
особенности дизайна библиотеки.
Библиотека как бы неявно разделена на две половины - одна половина для данных
типа **float**, а другая - для данных типа **double**. Но между этими половинами
есть мостики - функции преобразования типа.
Однако в библиотеке нет функций, которые используют для вычисления данные разных
типов (**float** и *double* одновременно).