Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics
    • AccuracyGoal Structure
    • AlgorithmStatus Enumeration
    • ArrayAttributes Structure
    • ArrayMath Class
    • ArrayMutability Enumeration
    • BigFloat Class
    • BigInteger Structure
    • BigRational Structure
    • CategoricalVector(T) Class
    • Complex(T) Structure
    • Constants Class
    • ConvergenceCriterion Enumeration
    • CoreImplementations(T) Class
    • DecimalMath Class
    • Dimension Enumeration
    • DimensionMismatchException Class
    • DimensionType Enumeration
    • DistributedDataLocation Enumeration
    • DoubleComparer Class
    • Elementary Class
    • ElementType(T) Class
    • FunctionMath Class
    • FunctionWithDerivative Delegate
    • GenericCoreProvider(T) Class
    • GenericImplementations Class
    • ICategoricalVector Interface
    • IDistributed Interface
    • InsufficientDataException Class
    • IntegerMath Class
    • Intent Enumeration
    • Interval Structure
    • Interval(T) Structure
    • IPermutable Interface
    • ISummarizable Interface
    • Iterators Class
    • IVector Interface
    • MachineConstants Class
    • ManagedCoreProviderOfSingle Class
    • Math(T) Class
    • Matrix Class
    • Matrix(T) Class
    • MatrixDiagonal Enumeration
    • MatrixElementOrder Enumeration
    • MatrixExtensions Class
    • MatrixNorm Enumeration
    • MatrixOperationSide Enumeration
    • MatrixStructure Enumeration
    • MatrixTriangle Enumeration
    • MutabilityBehaviour Enumeration
    • NumericsConfiguration Class
    • Operations(T) Class
    • Permutation Class
    • Quad Structure
    • RandomExtensions Class
    • Range Structure
    • RoundingMode Enumeration
    • SingleConstants Class
    • SinglePrecisionImplementations Class
    • Slice Structure
    • SolutionReport(T) Class
    • SolutionReport(T, TError) Class
    • Special Class
    • SummaryOptions Class
    • SymbolicMath Class
    • TotalLossOfPrecisionException Class
    • TransposeOperation Enumeration
    • TypedVectorWrapper(K, T) Structure
    • Vector Class
    • Vector(T) Class
    • VectorExtensions Class
  • BigRational Structure
    • BigRational Constructors
    • Properties
    • Methods
    • Operators and Type Conversions
    • Fields

BigRational Structure

Extreme Optimization Numerical Libraries for .NET Professional
Represents an arbitrary rational number.

Namespace:  Extreme.Mathematics
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
[SerializableAttribute]
public readonly struct BigRational : IComparable, 
	IFormattable, IEquatable<BigRational>, IComparable<BigRational>, 
	IComparable<BigInteger>, IComparable<int>
<SerializableAttribute>
Public Structure BigRational
	Implements IComparable, IFormattable, IEquatable(Of BigRational), 
	IComparable(Of BigRational), IComparable(Of BigInteger), IComparable(Of Integer)
[SerializableAttribute]
public value class BigRational : IComparable, 
	IFormattable, IEquatable<BigRational>, IComparable<BigRational>, 
	IComparable<BigInteger>, IComparable<int>
[<SealedAttribute>]
[<SerializableAttribute>]
type BigRational =  
    struct
        interface IComparable
        interface IFormattable
        interface IEquatable<BigRational>
        interface IComparable<BigRational>
        interface IComparable<BigInteger>
        interface IComparable<int>
    end

The BigRational type exposes the following members.

Constructors

  NameDescription
Public methodBigRational(BigInteger)
Constructs a new BigInteger from two arbitrary precision integers.
Public methodBigRational(BigInteger, BigInteger)
Constructs a new BigRational from an arbitrary precision numerator and denominator.
Public methodBigRational(Int32, Int32)
Constructs a new BigRational from an integer numerator and denominator.
Top
Properties

  NameDescription
Public propertyDenominator
Gets the denominator of the rational number.
Public propertyIsOne
Gets whether the rational number is equal to one.
Public propertyIsZero
Gets whether the rational number is equal to zero.
Public propertyNumerator
Gets the numerator of the rational number.
Public propertySign
Gets the sign of the rational number.
Top
Methods

  NameDescription
Public methodStatic memberAbs
Returns the absolute value of a rational number.
Public methodStatic memberAdd
Adds two rational numbers.
Public methodStatic memberCeiling
Rounds a rational number up to the nearest integer.
Public methodCompareTo(BigInteger)
Compares this instance to a specified rational number and returns an indication of their relative values.
Public methodCompareTo(BigRational)
Compares this instance to a specified rational number and returns an indication of their relative values.
Public methodCompareTo(Int32)
Compares this instance to a specified rational number and returns an indication of their relative values.
Public methodDeconstruct
Deconstructs a rational number into its numerator and denominator.
Public methodStatic memberDivide
Divides a rational number by another and returns the result.
Public methodEquals(BigRational)
Returns whether two rational numbers represent the same value.
Public methodEquals(Object)
Returns a value indicating whether this instance is equal to a specified object.
(Overrides ValueTypeEquals(Object).)
Public methodStatic memberFloor
Rounds a rational number down to the nearest integer.
Public methodGetHashCode
Returns the hash code for this instance.
(Overrides ValueTypeGetHashCode.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodStatic memberMax
Returns the largest of two rational numbers.
Public methodStatic memberMin
Returns the smallest of two rational numbers.
Public methodStatic memberMultiply(BigInteger, BigRational)
Multiplies a rational number by an arbitrary precision integer.
Public methodStatic memberMultiply(BigRational, BigInteger)
Multiplies a rational number by an arbitrary precision integer.
Public methodStatic memberMultiply(BigRational, BigRational)
Multiplies two rational numbers.
Public methodStatic memberMultiply(BigRational, Int32)
Multiplies a rational number by an integer.
Public methodStatic memberMultiply(Int32, BigRational)
Multiplies a rational number by an integer.
Public methodStatic memberNegate
Negates a rational number from another and returns the result.
Public methodStatic memberPow
Raises a BigRational to an integer power.
Public methodStatic memberRound
Rounds a rational number to the specified number of decimal digits.
Public methodStatic memberSubtract
Subtracts a rational number from another and returns the result.
Public methodToString
Returns a string representation of the rational number.
(Overrides ValueTypeToString.)
Public methodToString(String, IFormatProvider)
Returns a string representation of a rational number.
Top
Operators

  NameDescription
Public operatorStatic memberAddition(BigInteger, BigRational)
Adds a big integer and a rational number.
Public operatorStatic memberAddition(BigRational, BigInteger)
Adds a big integer and a rational number.
Public operatorStatic memberAddition(BigRational, BigRational)
Adds two rational numbers.
Public operatorStatic memberAddition(BigRational, Int32)
Adds an integer and a rational number.
Public operatorStatic memberAddition(Int32, BigRational)
Adds an integer and a rational number.
Public operatorStatic memberDivision(BigRational, BigInteger)
Divides a rational number by an arbitrary precision integer.
Public operatorStatic memberDivision(BigRational, BigRational)
Divides a rational number by another and returns the result.
Public operatorStatic memberDivision(BigRational, Int32)
Divides a rational number by an arbitrary precision integer.
Public operatorStatic memberEquality(BigRational, BigInteger)
Determines if a rational number is equal to another and returns the result.
Public operatorStatic memberEquality(BigRational, BigRational)
Determines if a rational number is equal to another and returns the result.
Public operatorStatic memberEquality(BigRational, Int32)
Determines if a rational number is equal to another and returns the result.
Public operatorStatic member(BigRational to BigInteger)
Converts a BigRational to a BigInteger number.
Public operatorStatic member(BigRational to Byte)
Converts a BigRational to a Byte value.
Public operatorStatic member(BigRational to Decimal)
Converts a BigRational to a Decimal number.
Public operatorStatic member(BigRational to Double)
Converts a BigRational to a double-precision floating-point number.
Public operatorStatic member(BigRational to Int16)
Converts a BigRational to a Int16 value.
Public operatorStatic member(BigRational to Int32)
Converts a BigRational to a Int32 value.
Public operatorStatic member(BigRational to Int64)
Converts a BigRational to a long integer.
Public operatorStatic member(BigRational to SByte)
Converts a BigRational to a SByte value.
Public operatorStatic member(BigRational to Single)
Converts a BigRational to a single-precision floating-point number.
Public operatorStatic member(BigRational to UInt16)
Converts a BigRational to a UInt16 value.
Public operatorStatic member(BigRational to UInt32)
Converts a BigRational to an unsigned integer.
Public operatorStatic member(BigRational to UInt64)
Converts a BigRational to a long unsigned integer.
Public operatorStatic member(Decimal to BigRational)
Converts a Decimal number to a BigInteger value.
Public operatorStatic member(Double to BigRational)
Converts a double-precision floating-point number to a BigInteger value.
Public operatorStatic member(Single to BigRational)
Converts a single-precision floating-point number to a BigInteger value.
Public operatorStatic memberExponent
Represents the exponentiation operator.
Public operatorStatic memberExponentiation
Represents the exponentiation operator.
Public operatorStatic memberGreaterThan(BigRational, BigInteger)
Determines if a rational number is greater than another and returns the result.
Public operatorStatic memberGreaterThan(BigRational, BigRational)
Determines if a rational number is greater than another and returns the result.
Public operatorStatic memberGreaterThan(BigRational, Int32)
Determines if a rational number is greater than another and returns the result.
Public operatorStatic memberGreaterThanOrEqual(BigRational, BigInteger)
Determines if a rational number is greater than or equal to another and returns the result.
Public operatorStatic memberGreaterThanOrEqual(BigRational, BigRational)
Determines if a rational number is greater than or equal to another and returns the result.
Public operatorStatic memberGreaterThanOrEqual(BigRational, Int32)
Determines if a rational number is greater than or equal to another and returns the result.
Public operatorStatic member(BigInteger to BigRational)
Converts a BigInteger value to a BigRational value.
Public operatorStatic member(Byte to BigRational)
Converts a Byte value to a BigRational value.
Public operatorStatic member(Int16 to BigRational)
Converts a 16 bit signed integer to a BigRational value.
Public operatorStatic member(Int32 to BigRational)
Converts a 32 bit signed integer to a BigRational value.
Public operatorStatic member(Int64 to BigRational)
Converts a 64 bit signed integer to a BigRational value.
Public operatorStatic member(SByte to BigRational)
Converts a SByte value to a BigRational value.
Public operatorStatic member(UInt16 to BigRational)
Converts a 16 bit unsigned integer to a BigRational value.
Public operatorStatic member(UInt32 to BigRational)
Converts a 32 bit unsigned integer to a BigRational value.
Public operatorStatic member(UInt64 to BigRational)
Converts a 64 bit unsigned integer to a BigRational value.
Public operatorStatic memberInequality(BigRational, BigInteger)
Determines if a rational number is not equal to another and returns the result.
Public operatorStatic memberInequality(BigRational, BigRational)
Determines if a rational number is not equal to another and returns the result.
Public operatorStatic memberInequality(BigRational, Int32)
Determines if a rational number is not equal to another and returns the result.
Public operatorStatic memberLessThan(BigRational, BigInteger)
Determines if a rational number is less than another and returns the result.
Public operatorStatic memberLessThan(BigRational, BigRational)
Determines if a rational number is less than another and returns the result.
Public operatorStatic memberLessThan(BigRational, Int32)
Determines if a rational number is less than another and returns the result.
Public operatorStatic memberLessThanOrEqual(BigRational, BigInteger)
Determines if a rational number is less than or equal to another and returns the result.
Public operatorStatic memberLessThanOrEqual(BigRational, BigRational)
Determines if a rational number is less than or equal to another and returns the result.
Public operatorStatic memberLessThanOrEqual(BigRational, Int32)
Determines if a rational number is less than or equal to another and returns the result.
Public operatorStatic memberMultiply(BigInteger, BigRational)
Multiplies a rational number by an arbitrary precision integer.
Public operatorStatic memberMultiply(BigRational, BigInteger)
Multiplies a rational number by an arbitrary precision integer.
Public operatorStatic memberMultiply(BigRational, BigRational)
Multiplies two rational numbers.
Public operatorStatic memberMultiply(BigRational, Int32)
Multiplies a rational number by an integer.
Public operatorStatic memberMultiply(Int32, BigRational)
Multiplies a rational number by an integer.
Public operatorStatic memberSubtraction(BigInteger, BigRational)
Subtracts a rational number from a big integer.
Public operatorStatic memberSubtraction(BigRational, BigInteger)
Subtracts a big integer from a rational number.
Public operatorStatic memberSubtraction(BigRational, BigRational)
Subtracts a rational number from another and returns the result.
Public operatorStatic memberSubtraction(BigRational, Int32)
Subtracts an integer from a rational number.
Public operatorStatic memberSubtraction(Int32, BigRational)
Subtracts a rational number from an integer.
Public operatorStatic memberUnaryNegation
Negates a rational number from another and returns the result.
Top
Fields

  NameDescription
Public fieldStatic memberMaxValue
The largest possible rational number.
Public fieldStatic memberMinusOne
The number 1 as a rational number.
Public fieldStatic memberMinValue
The smallest possible rational number.
Public fieldStatic memberOne
The number 1 as a rational number.
Public fieldStatic memberZero
The number 0 as a rational number.
Top
Remarks

Use the BigRational class to represent a fraction of integers of arbitrary precision. BigRational objects are immutable.

The Numerator and Denominator return the parts of the fraction. The numerator and the denominator have no common divisors. The denominator is always positive. Zero is represented as 0 / 1.

See Also

Reference

Extreme.Mathematics Namespace

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.