<-- Previous || Up || Next -->

Complex Numbers Benchmark Sub
Math Complex Class

Private Sub ComplexNumbersBenchmark()
    ' Run a benchmark of many of the complex number routines.

    'See also:
    '  TrigonometryBenchmark Subroutine
    '  MathBuiltInBenchmark Subroutine

    Dim lngMax As Long
    Dim lngTry As Long
    Dim varRtn As Variant


    lngMax = 1024
    Debug.Print "Count = " & lngMax


    Debug.Print "Absolute R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Absolute(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Absolute I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Absolute(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Absolute C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Absolute(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Conj R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Conj(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Conj I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Conj(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Conj C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Conj(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Exponent R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Exponent(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Exponent I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Exponent(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Exponent C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Exponent(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Inv R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Inv(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Inv I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Inv(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Inv C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Inv(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Logarithm R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Logarithm(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Logarithm I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Logarithm(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Logarithm C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Logarithm(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Neg R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Neg(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Neg I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Neg(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Neg C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Neg(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "PhaseAngle R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = PhaseAngle(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "PhaseAngle I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = PhaseAngle(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "PhaseAngle C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = PhaseAngle(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Sign R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Sign(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Sign I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Sign(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Sign C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Sign(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Sqrt R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Sqrt(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Sqrt I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Sqrt(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Sqrt C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Sqrt(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Square R: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Square(Rnd * 6 - 3)
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Square I: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Square(RealToComplex(0, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

    Debug.Print "Square C: ";
    DebugTimerOn
    For lngTry = 1 To lngMax
        varRtn = Square(RealToComplex(Rnd * 6 - 3, Rnd * 6 - 3))
    Next lngTry
    Debug.Print DebugTimerOff

End Sub

Copyright 1996-1999 Entisoft
Entisoft Tools is a trademark of Entisoft.