From 2ef0fc17c23de3208a6286449bfd1368d34300da Mon Sep 17 00:00:00 2001 From: Andrey Pokidov Date: Fri, 22 Nov 2024 17:43:26 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9A=D1=80=D0=B0=D1=82=D0=BA=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20/=20A=20brief=20description=20?= =?UTF-8?q?of=20the=20project?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ README-Eng.md | 24 ++++++++++++++++++++++++ README.md | 26 ++++++++++++++++++++++++-- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 README-Eng.md diff --git a/.gitignore b/.gitignore index 9e47b37..18bf290 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,6 @@ dkms.conf bin obj logs +*.layout +*.depend +*.user \ No newline at end of file diff --git a/README-Eng.md b/README-Eng.md new file mode 100644 index 0000000..555de3c --- /dev/null +++ b/README-Eng.md @@ -0,0 +1,24 @@ +# Basic-Geometry-c + +## Library of basic geometric computations + +[Версия на русском языке / Russian version](./README.md) + +Programming language: C (C99) + +The main goals of development of the library were: + +1. Performance +2. Functionality +3. Versatility + +Performance was the main goal of making of the library. That fact affected +the implementation features of the library. + +For example, the main way to return data structures as a function result +was chosen to be returning via a parameter, which avoids redundant copying +of data through the call stack. + +Also the majority of functions were made as inline function. That allows +a compiller to replace a call of some function onto the body of that +function. diff --git a/README.md b/README.md index 6036c56..680a327 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,25 @@ -# bgc-c +# Basic-Geometry-c -Библиотека базовых геометрических вычислений на языке Си \ No newline at end of file +## Библиотека базовых геометрических вычислений + +(English: library of basic geometric computations) + +[English version / версия на английском языке](./README-Eng.md) + +Язык программирования: Си (C99) + +Основными целями разработки данной библиотеки были: + +1. Производительность +2. Функциональность +3. Универсальность + +Производительность была на первом месте, что оказало влияние на особенности +реализации библиотеки. + +Например, в качестве основного способа возврата структур данных в качестве +результата выполнения функции был выбран возврат через параметр, что позволяет +избежать избыточного копирования данных через стек вызова. + +Также большинство функций выполнены как inline, давая возможность компилятору +заменять вызов функции на тело функции.