diff --git a/README-eng.md b/README-eng.md new file mode 100644 index 0000000..7831706 --- /dev/null +++ b/README-eng.md @@ -0,0 +1,36 @@ +# Basic Geometry for .NET + +## A library of basic geometric computations for .NET + +Programming language: C# + +Version: 0.2.0-dev + +License: Apache-2.0 + +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 of the library. + +For example, all the entities are implemented as strucutres and the structures +are passed to the methods by reference. + +That allows to get perfromance comparable with a similar implementation of +entities and algorithms written in the C programming language. + +The library uses two types of floating point numbers: **float** и **double** +(**binary32** and **binary64** types of the **IEEE 754** standard). That +affected the implementation of the library too. + +The library is implicitly divided into two halves: one half is for data and +functions of **float** type and another one is for date of th **double** type. +And there are several bridges connect both of the halves. Those bridges are +the functions of the type conversion. + +But there are no functions which use data of different types (**float** and +**double** at the same time) for the computations. diff --git a/README.md b/README.md index 8c28fac..7aaa802 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,35 @@ -# bgc-net +# Basic Geometry for .NET -Библиотека базовых геометрических вычислений для .NET \ No newline at end of file +## Библиотека базовых геометрических вычислений для .NET + +Язык программирования: C# + +Версия: 0.2.0-dev + +Лицензия: Apache-2.0 + +Основными целями разработки данной библиотеки были: + +1. Производительность +2. Функциональность +3. Универсальность + +Производительность была на первом месте, что оказало влияние на особенности +реализации библиотеки. + +Например, почти все сущности в библиотеке реализованы в виде структур, а сами +структуры передаются в методы по ссылке. + +Это позволило получить достаточно высокую производительность, спосотавимую с +производительностью аналогичной реализации сущностей а алгоритмов на языке Си. + +Библиотека использует два типа чисел с плавающей запятой: **float** и **double** +(типы **binary32** и **binary64** стандарта **IEEE 754**). Что также повлияло на +особенности дизайна библиотеки. + +Библиотека как бы неявно разделена на две половины - одна половина для данных +типа **float**, а другая - для данных типа **double**. Но между этими половинами +есть мостики - функции преобразования типа. + +Однако в библиотеке нет функций, которые используют для вычисления данные разных +типов (**float** и *double* одновременно).