| New Version 5.0! |
|
Try it for free with our fully functional
60-day trial version.
Download now!
|
QuickStart Samples
Elementary Functions QuickStart Sample (Visual Basic)
Illustrates how to use additional elementary functions in Visual Basic.
C# code
F# code
IronPython code
Back to QuickStart Samples
' The Elementary class resides in the Extreme.Mathematics
' namespace.
Imports Extreme.Mathematics
Namespace Extreme.Numerics.QuickStart.VB
' Illustrates the use of the elementary functions implemented
' by the Elementary class in the Extreme.Mathematics.Curve namespace of
' the Extreme Optimization Numerical Libraries for .NET.
Module UsingElementaryFunctions
Sub Main()
' The special functions are implemented as static
' methods. Special functions of the same general
' category are grouped together in one class.
'
' There are classes for: elementary functions,
' number theoretic functions, combinatorics,
' probability, hyperbolic functions, the gamma
' function and related functions, Bessel functions,
' Airy functions, and exponential integrals.
'
' This QuickStart sample deals with elementary
' functions, implemented in the Elementary class.
'
' Elementary functions
'
' Evaluating Log(1+x) directly causes significant
' round-off error when x is close to 0. The
' Log1PlusX function allows high precision evaluation
' of this expression for values of x close to 0:
Console.WriteLine("Logarithm of 1+1e-12")
Console.WriteLine(" Math.Log: {0}", _
Math.Log(1 + 0.000000000001))
Console.WriteLine(" Log1PlusX: {0}", _
Elementary.Log1PlusX(0.000000000001))
' In a similar way, Exp(x) - 1 has a variant,
' ExpXMinus1, for values of x close to 0:
Console.WriteLine("Exponential of 1e-12 minus 1.")
Console.WriteLine(" Math.Exp: {0}", _
Math.Exp(0.000000000001) - 1)
Console.WriteLine(" ExpMinus1: {0}", _
Elementary.ExpMinus1(0.000000000001))
' The hypotenuse of two numbers that are very large
' may cause an overflow when not evaluated properly:
Console.WriteLine("Hypotenuse:")
Dim a As Double = 3.0E+200
Dim b As Double = 4.0E+200
Console.Write(" Simple method: ")
Try
Console.WriteLine(Math.Sqrt(a * a + b * b))
Catch e As OverflowException
Console.WriteLine("Overflow!")
End Try
Console.WriteLine(" Elementary.Hypot: {0}", _
Elementary.Hypot(a, b))
' Raising numbers to integer powers is much faster
' than raising numbers to real numbers. The
' overloaded Pow method implements this:
Console.WriteLine("2.5^19 = {0}", Elementary.Pow(2.5, 19))
' You can raise numbers to negative integer powers
' as well:
Console.WriteLine("2.5^-19 = {0}", Elementary.Pow(2.5, -19))
Console.Write("Press Enter key to exit...")
Console.ReadLine()
End Sub
End Module
End Namespace
Copyright © 2003-2013, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.