devxlogo

CComplexNumber – A class for dealing with complex numbers

CComplexNumber – A class for dealing with complex numbers

Option Explicit'------------------------------------------' A class for dealing with complex numbers'------------------------------------------' The main propertiesPublic Real As DoublePublic Imaginary As Double' Initialize this complex number' (returns Me)Function Init(Real As Double, Imaginary As Double) As CComplexNumber    Me.Real = Real    Me.Imaginary = Imaginary    Set Init = MeEnd Function' Returns another complex number with given' real and imaginary partsFunction Complex(Real As Double, Imaginary As Double) As CComplexNumber    Set Complex = New CComplexNumber    Complex.Real = Real    Complex.Imaginary = ImaginaryEnd Function' Add a complex number to the current one' (returns Me)Function Add(other As CComplexNumber) As CComplexNumber    Real = Real + other.Real    Imaginary = Imaginary + other.Imaginary    Set Add = MeEnd Function' Add a complex number to the current one' (returns the result CComplexNumber)Function Add2(Real As Double, Imaginary As Double) As CComplexNumber    Set Add2 = New CComplexNumber    Add2.Real = Me.Real + Real    Add2.Imaginary = Me.Imaginary + ImaginaryEnd Function' Subtract a complex number from the current one' (returns the result CComplexNumber)Function Subtract2(Real As Double, Imaginary As Double) As CComplexNumber    Set Subtract2 = New CComplexNumber    Subtract2.Real = Me.Real - Real    Subtract2.Imaginary = Me.Imaginary - ImaginaryEnd Function' Multiple a complex number by the current one' (returns the result CComplexNumber)Function Multiply2(Real As Double, Imaginary As Double) As CComplexNumber    Set Multiply2 = New CComplexNumber    Multiply2.Real = (Me.Real * Real - Me.Imaginary * Imaginary)    Multiply2.Imaginary = Me.Real * Imaginary + Me.Imaginary * RealEnd Function' Divide the current number by another complex number' (returns the result CComplexNumber)Function Divide2(Real As Double, Imaginary As Double) As CComplexNumber    Set Divide2 = New CComplexNumber    Dim sum As Double    ' create the sum only once    sum = Real * Real + Imaginary * Imaginary    ' evaluate the real and imaginary parts    Divide2.Real = (Me.Real * Real + Me.Imaginary * Imaginary) / sum    Divide2.Imaginary = (Me.Imaginary * Real - Me.Real * Imaginary) / sumEnd Function' Return the textual description of a complex numberFunction Text() As String    If Imaginary = 0 Then        Text = LTrim$(Real)    ElseIf Real = 0 Then        Text = LTrim$(Imaginary) & "i"    ElseIf Imaginary > 0 Then        Text = LTrim$(Real) & "+" & LTrim$(Imaginary) & "i"    Else        Text = LTrim$(Real) & LTrim$(Imaginary) & "i"    End IfEnd Function

devx-admin

Share the Post: