# System.Numerics Namespace

The System.Numerics namespace contains numeric types that complement the numeric primitives, such as Byte, Double, and Int32, that are defined by .NET.

## Classes

BitOperations |
Provides utility methods for intrinsic bit-twiddling operations. The methods use hardware intrinsics when available on the underlying platform; otherwise, they use optimized software fallbacks. |

Vector |
Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors. |

VectorExtensions |

## 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. |

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

This namespace includes the following types:

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*+*b*i, 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.