# Category:System.Numerics

System.Numerics is a library used by Visual Studio to implement the **BigInteger** Class (among others). Although it does not directly support *BigRationals* or *BigFloats*, one can usually figure out a way to deal with placing a decimal point properly to simulate arbitrary precision floating point operations.

**System.Numerics** MS documentation for .NET Framework 4.7.2

**System.Numerics** MS documentaion for .NET Core 2.2)

*Links added in early 2018, if they don't work, try googling.*

**Classes:**

Vector- Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.Note: available in NET.Core only.

**Structs:**

BigInteger- Represents an arbitrarily large signed integer.

Complex- Represents a complex number.

Matrix3x2- Represents a 3x2 matrix.

Matrix4x4- Represents a 4x4 matrix.

Plane- Represents a plane in three-dimensional space.

Quaternion- Represents a vector that is used to encode three-dimensional physical rotations.

Vector<T>- Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.Note: available in NET.Core only.

Vector2- Represents a vector with two single-precision floating-point values.

Vector3- Represents a vector with three single-precision floating-point values.

Vector4- Represents a vector with four single-precision floating-point values.

Remarks about the structures and vector types of the System.Numerics namespace:

The **BigInteger** structure, which is a nonprimitive integral type that supports arbitrarily large integers. An integral primitive such as Byte or Int32 includes a *MinValue* and a *MaxValue* property, which define the lower bound and upper bound supported by that data type. In contrast, the **BigInteger** structure has no lower or upper bound, and can contain the value of any integer.

The **Complex** structure, which represents a complex number. A complex number is a number in the form a + bi, where a is the real part, and b is the imaginary part.

The SIMD-enabled vector types, which include **Vector2**, **Vector3**, **Vector4**, **Matrix3x2**, **Matrix4x4**, **Plane**, and **Quaternion**.

**BigInteger** operators and methods:

Operators implemented in the **BigInteger** class include Addition, BitwiseAnd, BitwiseOr, Decrement, Division, Equality, ExclusiveOr, Explicit, GreaterThan, GreaterThanOrEqual, Implicit, Increment, Inequality, LeftShift, LessThan, LessThanOrEqual, Modulus, Multiply, OnesComplement, RightShift, Subtraction, UnaryNegation, and UnaryPlus.

Methods implemented in the **BigInteger** class include Abs, Add, Compare, CompareTo, Divide, DivRem, Equals, GetByteCount, GetHashCode, GreatestCommonDivisor, Log, Log10, Max, Min, ModPow, Multiply, Negate, Parse, Pow, Remainder, Subtract, ToByteArray, ToString, TryFormat, TryParse, and TryWriteBytes.

## Pages in category "System.Numerics"

The following 23 pages are in this category, out of 23 total.