<commit_before>TinySpline
========

TinySpline is a [B-Spine](https://en.wikipedia.org/wiki/B-spline) and 
[NURBS](https://de.wikipedia.org/wiki/Non-Uniform_Rational_B-Spline) 
library written in pure C with wrappers for C++11 and Java (using Swig). 
The goal of this project is to provide a small library with a minimum of 
dependencies which is easy and intuitively to use. Moreover, the 
interface was designed for easy integration in OpenGL.

###Some Features Of This Library
- Modeling NURBS and B-Splines (even Béziers, lines and points, as 
they are implicit forms) of any degree with any dimensions (2D, 3D, ...).
- Evaluating splines using [De Boor's algorithm](https://en.wikipedia.org/wiki/De_Boor%27s_algorithm).
- Inserting knots and splitting splines.
- Subdividing splines into Béziers.
- Wrapper for C++11 and Java

###Compiling TinySpline From Source
TinySpline uses the CMake build system for the C/C++11 library and Swig
for the Java proxy. All examples require OpenGL.

- Checkout the repository
```bash
svn co git@github.com:retuxx/tinyspline.git tinyspline
cd tinyspline
```
- Create a build directory
```bash
mkdir build
cd build
```
- Create the Makefiles and build the library
```bash
cmake ..
make
```

You will find all static and shared libraries, jars etc. in
`tinyspline/build/library`
<commit_msg>improved README.MD<commit_after>TinySpline
========

TinySpline is a [B-Spine](https://en.wikipedia.org/wiki/B-spline) and 
[NURBS](https://de.wikipedia.org/wiki/Non-Uniform_Rational_B-Spline) 
library written in pure C with wrappers for C++11 and Java (using Swig). 
The goal of this project is to provide a small library with a minimum of 
dependencies which is easy and intuitively to use. Moreover, the 
interface was designed for easy integration in OpenGL.

###Some Features of This Library
- Modeling B-Splines and NURBS (even Béziers, lines and points, as 
they are implicit forms) of any degree with any dimensions (2D, 3D, ...).
- Evaluating splines using [De Boor's algorithm](https://en.wikipedia.org/wiki/De_Boor%27s_algorithm).
- Inserting knots and splitting splines.
- Subdividing splines into Béziers.
- Wrapper for C++11 and Java.

###Current Development
- Deriving splines.
- Knot removal.
- Given a point P and a spline S, find the Point Q on S with the 
minimal distance ||P - Q||<sub>2</sub>.
- Wrapper for Python, C#, Rust and Julia.

###Compiling TinySpline From Source
TinySpline uses CMake for the C/C++11 library and Swig for the Java 
proxy. The provided examples require OpenGL. All components except the 
C library are optional.

- Checkout the repository
```bash
svn co <EMAIL>@github.com:retuxx/tinyspline.git tinyspline
cd tinyspline
```
- Create a build directory
```bash
mkdir build
cd build
```
- Create the Makefiles and build the library
```bash
cmake ..
make
```

You will find all static and shared libraries, jars etc. in
`tinyspline/build/library`

###Cross Compiling
TinySpline provides toolchain files for mingw and arm. Use the following
command within your build directory for cross compiling
```bash
cmake -DCMAKE_TOOLCHAIN_FILE=<path to root dir of tinypsline>/Toolchain-*.cmake ..
```

{'fraction_non_alphanumeric': 0.09550917141049968, 'fraction_numerical': 0.006641366223908918, 'mean_word_length': 4.397610921501706, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1386199', 'n_tokens_mistral': 1046, 'n_tokens_neox': 976, 'n_words': 399}