System.Numerics Namespace

Contains numeric types that complement the numeric primitives, such as Byte, Double, and Int32, that are defined by .NET.

Classes

Name Description
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 methods for creating, manipulating, and otherwise operating on generic vectors.

VectorExtensions

Structs

Name Description
BFloat16
BigInteger

Represents an arbitrarily large signed integer.

Complex

Represents a complex number.

Complex
Decimal128
Decimal32
Decimal64
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.

TotalOrderIeee754Comparer

Represents a comparison operation that compares floating-point numbers with IEEE 754 totalOrder semantic.

Vector

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.

Interfaces

Name Description
IAdditionOperators

Defines a mechanism for computing the sum of two values.

IAdditiveIdentity

Defines a mechanism for getting the additive identity of a given type.

IBinaryFloatingPointIeee754

Defines an IEEE 754 floating-point type that is represented in a base-2 format.

IBinaryInteger

Defines an integer type that is represented in a base-2 format.

IBinaryNumber

Defines a number that is represented in a base-2 format.

IBitwiseOperators

Defines a mechanism for performing bitwise operations over two values.

IComparisonOperators

Defines a mechanism for comparing two values to determine relative order.

IDecimalFloatingPointIeee754
IDecrementOperators

Defines a mechanism for decrementing a given value.

IDivisionOperators

Defines a mechanism for computing the quotient of two values.

IEqualityOperators

Defines a mechanism for comparing two values to determine equality.

IExponentialFunctions

Defines support for exponential functions.

IFloatingPoint

Defines a floating-point type.

IFloatingPointConstants

Defines support for floating-point constants.

IFloatingPointIeee754

Defines an IEEE 754 floating-point type.

IHyperbolicFunctions

Defines support for hyperbolic functions.

IIncrementOperators

Defines a mechanism for incrementing a given value.

ILogarithmicFunctions

Defines support for logarithmic functions.

IMinMaxValue

Defines a mechanism for getting the minimum and maximum value of a type.

IModulusOperators

Defines a mechanism for computing the modulus or remainder of two values.

IMultiplicativeIdentity

Defines a mechanism for getting the multiplicative identity of a given type.

IMultiplyOperators

Defines a mechanism for computing the product of two values.

INumber

Defines a number type.

INumberBase

Defines the base of other number types.

IPowerFunctions

Defines support for power functions.

IRootFunctions

Defines support for root functions.

IShiftOperators

Defines a mechanism for shifting a value by another value.

ISignedNumber

Defines a number type that can represent both positive and negative values.

ISubtractionOperators

Defines a mechanism for computing the difference of two values.

ITrigonometricFunctions

Defines support for trigonometric functions.

IUnaryNegationOperators

Defines a mechanism for computing the unary negation of a value.

IUnaryPlusOperators

Defines a mechanism for computing the unary plus of a value.

IUnsignedNumber

Defines a number type that can only represent positive values.

Enums

Name Description
DivisionRounding

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