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.