⚠️ Warning: This is a draft ⚠️

This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.

If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.

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.

[https://docs.microsoft.com/en-us/dotnet/api/system.numerics?view=netframework-4.7.2 '''System.Numerics'''] MS documentation for .NET Framework 4.7.2
[https://docs.microsoft.com/en-us/dotnet/api/system.numerics?view=netcore-2.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''' - 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.