Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Structure BigRational
- Private Numer As BigDecimal
- Private Denom As BigDecimal
- Public Sub New(ByVal Number As BigDecimal)
- Numer = Number
- Denom = BigDecimal.One
- End Sub
- Public Sub New(ByVal Numerator As BigDecimal, ByVal Denominator As BigDecimal)
- Numer = Numerator
- Denom = Denominator
- End Sub
- Public Shared Widening Operator CType(ByVal N As BigDecimal) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As Integer) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As Double) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As Decimal) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As Single) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As Short) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As UInteger) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As ULong) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As UShort) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As Byte) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N As SByte) As BigRational
- Return New BigRational(N)
- End Operator
- Public Shared Widening Operator CType(ByVal N() As BigDecimal) As BigRational
- Return New BigRational(N(0), N(1))
- End Operator
- Public Shared Operator +(ByVal N1 As BigRational, ByVal N2 As BigRational) As BigRational
- N1.Numer *= N2.Denom
- N2.Numer *= N1.Denom
- Return New BigRational(N1.Numer + N2.Numer, N1.Denom * N2.Denom)
- End Operator
- Public Shared Operator -(ByVal N1 As BigRational, ByVal N2 As BigRational) As BigRational
- N1.Numer *= N2.Denom
- N2.Numer *= N1.Denom
- Return New BigRational(N1.Numer - N2.Numer, N1.Denom * N2.Denom)
- End Operator
- Public Shared Operator *(ByVal N1 As BigRational, ByVal N2 As BigRational) As BigRational
- Return New BigRational(N1.Numer * N2.Numer, N1.Denom * N2.Denom)
- End Operator
- Public Shared Operator /(ByVal N1 As BigRational, ByVal N2 As BigRational) As BigRational
- Return New BigRational(N1.Numer * N2.Denom, N1.Denom * N2.Numer)
- End Operator
- Public Shared Operator ^(ByVal N1 As BigRational, ByVal N2 As Integer) As BigRational
- Return New BigRational(N1.Numer ^ N2, N1.Denom ^ N2)
- End Operator
- Public Shared Widening Operator CType(ByVal N As BigRational) As String
- Return N.Numer / N.Denom
- End Operator
- End Structure
Advertisement
Add Comment
Please, Sign In to add comment