## Introduction

I started building this library as part of a C# 3D engine I am currently working on. Having noticed that there isn't any decent open-source C# library for dealing with complex math out there I decided to focus my efforts on this library and release it to the world.

More information could be found on the project's workspace at http://workspaces.gotdotnet.com/sharp3d.

## Features

- Support both single-precision and double-precision floating point types.
- Full-featured implementation of mathematical data types including complex numbers' quaternion and various sizes of matrices and vectors.
- Geometric data types and algorithms for 2D and 3D - distance and intersection methods, bounding volumes etc.
- Random number and noise generation.
- Strong-Typed collections for the library's data types.
- Extension of standard mathematical functions, such as
```
Cos()
```

, `Sqrt()`

, and `Exp()`

, to work with vectors, matrices, and complex number classes.
- A support library for converting between DirectX and
`Sharp3D.Math`

structures.

## History

- v1.1.1621.25560 - Update
- Added array lists for vector structures.
- Added a Polygon class to the Geometry3D and Geometry2D namespaces.
- Added a Triangle structure to the Geometry3D namespace.
- Intersection Methods : Ray to plane, AABB, OBB, Triangle and Sphere (not fully implemented yet).
- Intersection Methods between AABB, OBB and Sphere (not fully implemented yet).
- Added <, > , <=, >= operators to the vector structures.
- Added
`IIntegrator `

implementations : SimpsonIntegral.
- Implemented the Parse method for vectors and complex numbers.
- Created Sharp3D.Math.Tests library and moved all unit testing classes there so that Sharp3D.Math is no longer dependent on NUnit.Framework.dll.

- v1.1 - First release.