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 SubCopyright 1996-1999 Entisoft
Entisoft Tools is a trademark of Entisoft.