Math.Exp Method
Returns e raised to the specified power.
[Visual Basic] Public Shared Function Exp( _ ByVal d As Double _ ) As Double [C#] public static double Exp( double d ); [C++] public: static double Exp( double d ); [JScript] public static function Exp( d : double ) : double;
Parameters
- d
- A number specifying a power.
Return Value
The number e raised to the power d. If d equals NaN or PositiveInfinity, that value is returned. If d equals NegativeInfinity, 0 is returned.
Remarks
Use the Pow method to calculate powers of other bases.
Exp is the inverse of Log.
Example
[Visual Basic, C#, C++] The following example uses Exp to evaluate certain exponential and logarithmic identities for selected values.
[Visual Basic] ' Example for the Math.Exp( Double ) method. Imports System Imports Microsoft.VisualBasic Module ExpDemo Sub Main() Console.WriteLine( _ "This example of Math.Exp( Double ) " & _ "generates the following output." & vbCrLf) Console.WriteLine( _ "Evaluate [e ^ ln(X) == ln(e ^ X) == X] " & _ "with selected values for X:") UseLnExp(0.1) UseLnExp(1.2) UseLnExp(4.9) UseLnExp(9.9) Console.WriteLine( vbCrLf & _ "Evaluate these identities with selected values for X and Y:") Console.WriteLine(" (e ^ X) * (e ^ Y) = e ^ (X + Y)") Console.WriteLine(" (e ^ X) ^ Y = e ^ (X * Y)") Console.WriteLine(" X ^ Y = e ^ (Y * ln(X))") UseTwoArgs(0.1, 1.2) UseTwoArgs(1.2, 4.9) UseTwoArgs(4.9, 9.9) End Sub 'Main ' Evaluate logarithmic/exponential identity with a given argument. Sub UseLnExp(arg As Double) ' Evaluate e ^ ln(X) = ln(e ^ X) = X. Console.WriteLine( _ vbCrLf & " Math.Exp(Math.Log({0})) = {1:E16}" + _ vbCrLf & " Math.Log(Math.Exp({0})) = {2:E16}", _ arg, Math.Exp(Math.Log(arg)), Math.Log(Math.Exp(arg))) End Sub 'UseLnExp ' Evaluate exponential identities that are functions of two arguments. Sub UseTwoArgs(argX As Double, argY As Double) ' Evaluate (e ^ X) * (e ^ Y) = e ^ (X + Y). Console.WriteLine( _ vbCrLf & "Math.Exp({0}) * Math.Exp({1}) = {2:E16}" + _ vbCrLf & " Math.Exp({0} + {1}) = {3:E16}", _ argX, argY, Math.Exp(argX) * Math.Exp(argY), _ Math.Exp((argX + argY))) ' Evaluate (e ^ X) ^ Y = e ^ (X * Y). Console.WriteLine( _ " Math.Pow(Math.Exp({0}), {1}) = {2:E16}" + _ vbCrLf & " Math.Exp({0} * {1}) = {3:E16}", _ argX, argY, Math.Pow(Math.Exp(argX), argY), _ Math.Exp((argX * argY))) ' Evaluate X ^ Y = e ^ (Y * ln(X)). Console.WriteLine( _ " Math.Pow({0}, {1}) = {2:E16}" + _ vbCrLf & "Math.Exp({1} * Math.Log({0})) = {3:E16}", _ argX, argY, Math.Pow(argX, argY), _ Math.Exp((argY * Math.Log(argX)))) End Sub 'UseTwoArgs End Module 'ExpDemo ' This example of Math.Exp( Double ) generates the following output. ' ' Evaluate [e ^ ln(X) == ln(e ^ X) == X] with selected values for X: ' ' Math.Exp(Math.Log(0.1)) = 1.0000000000000001E-001 ' Math.Log(Math.Exp(0.1)) = 1.0000000000000008E-001 ' ' Math.Exp(Math.Log(1.2)) = 1.2000000000000000E+000 ' Math.Log(Math.Exp(1.2)) = 1.2000000000000000E+000 ' ' Math.Exp(Math.Log(4.9)) = 4.9000000000000012E+000 ' Math.Log(Math.Exp(4.9)) = 4.9000000000000004E+000 ' ' Math.Exp(Math.Log(9.9)) = 9.9000000000000004E+000 ' Math.Log(Math.Exp(9.9)) = 9.9000000000000004E+000 ' ' Evaluate these identities with selected values for X and Y: ' (e ^ X) * (e ^ Y) = e ^ (X + Y) ' (e ^ X) ^ Y = e ^ (X * Y) ' X ^ Y = e ^ (Y * ln(X)) ' ' Math.Exp(0.1) * Math.Exp(1.2) = 3.6692966676192444E+000 ' Math.Exp(0.1 + 1.2) = 3.6692966676192444E+000 ' Math.Pow(Math.Exp(0.1), 1.2) = 1.1274968515793757E+000 ' Math.Exp(0.1 * 1.2) = 1.1274968515793757E+000 ' Math.Pow(0.1, 1.2) = 6.3095734448019331E-002 ' Math.Exp(1.2 * Math.Log(0.1)) = 6.3095734448019344E-002 ' ' Math.Exp(1.2) * Math.Exp(4.9) = 4.4585777008251705E+002 ' Math.Exp(1.2 + 4.9) = 4.4585777008251716E+002 ' Math.Pow(Math.Exp(1.2), 4.9) = 3.5780924170885260E+002 ' Math.Exp(1.2 * 4.9) = 3.5780924170885277E+002 ' Math.Pow(1.2, 4.9) = 2.4433636334442981E+000 ' Math.Exp(4.9 * Math.Log(1.2)) = 2.4433636334442981E+000 ' ' Math.Exp(4.9) * Math.Exp(9.9) = 2.6764450551890982E+006 ' Math.Exp(4.9 + 9.9) = 2.6764450551891015E+006 ' Math.Pow(Math.Exp(4.9), 9.9) = 1.1684908531676833E+021 ' Math.Exp(4.9 * 9.9) = 1.1684908531676829E+021 ' Math.Pow(4.9, 9.9) = 6.8067718210957060E+006 ' Math.Exp(9.9 * Math.Log(4.9)) = 6.8067718210956985E+006 [C#] // Example for the Math.Exp( double ) method. using System; class ExpDemo { public static void Main() { Console.WriteLine( "This example of Math.Exp( double ) " + "generates the following output.\n" ); Console.WriteLine( "Evaluate [e ^ ln(X) == ln(e ^ X) == X] " + "with selected values for X:" ); UseLnExp(0.1); UseLnExp(1.2); UseLnExp(4.9); UseLnExp(9.9); Console.WriteLine( "\nEvaluate these identities with " + "selected values for X and Y:" ); Console.WriteLine( " (e ^ X) * (e ^ Y) == e ^ (X + Y)" ); Console.WriteLine( " (e ^ X) ^ Y == e ^ (X * Y)" ); Console.WriteLine( " X ^ Y == e ^ (Y * ln(X))" ); UseTwoArgs(0.1, 1.2); UseTwoArgs(1.2, 4.9); UseTwoArgs(4.9, 9.9); } // Evaluate logarithmic/exponential identity with a given argument. static void UseLnExp(double arg) { // Evaluate e ^ ln(X) == ln(e ^ X) == X. Console.WriteLine( "\n Math.Exp(Math.Log({0})) == {1:E16}\n" + " Math.Log(Math.Exp({0})) == {2:E16}", arg, Math.Exp(Math.Log(arg)), Math.Log(Math.Exp(arg)) ); } // Evaluate exponential identities that are functions of two arguments. static void UseTwoArgs(double argX, double argY) { // Evaluate (e ^ X) * (e ^ Y) == e ^ (X + Y). Console.WriteLine( "\nMath.Exp({0}) * Math.Exp({1}) == {2:E16}" + "\n Math.Exp({0} + {1}) == {3:E16}", argX, argY, Math.Exp(argX) * Math.Exp(argY), Math.Exp(argX + argY) ); // Evaluate (e ^ X) ^ Y == e ^ (X * Y). Console.WriteLine( " Math.Pow(Math.Exp({0}), {1}) == {2:E16}" + "\n Math.Exp({0} * {1}) == {3:E16}", argX, argY, Math.Pow(Math.Exp(argX), argY), Math.Exp(argX * argY) ); // Evaluate X ^ Y == e ^ (Y * ln(X)). Console.WriteLine( " Math.Pow({0}, {1}) == {2:E16}" + "\nMath.Exp({1} * Math.Log({0})) == {3:E16}", argX, argY, Math.Pow(argX, argY), Math.Exp(argY * Math.Log(argX)) ); } } /* This example of Math.Exp( double ) generates the following output. Evaluate [e ^ ln(X) == ln(e ^ X) == X] with selected values for X: Math.Exp(Math.Log(0.1)) == 1.0000000000000001E-001 Math.Log(Math.Exp(0.1)) == 1.0000000000000008E-001 Math.Exp(Math.Log(1.2)) == 1.2000000000000000E+000 Math.Log(Math.Exp(1.2)) == 1.2000000000000000E+000 Math.Exp(Math.Log(4.9)) == 4.9000000000000012E+000 Math.Log(Math.Exp(4.9)) == 4.9000000000000004E+000 Math.Exp(Math.Log(9.9)) == 9.9000000000000004E+000 Math.Log(Math.Exp(9.9)) == 9.9000000000000004E+000 Evaluate these identities with selected values for X and Y: (e ^ X) * (e ^ Y) == e ^ (X + Y) (e ^ X) ^ Y == e ^ (X * Y) X ^ Y == e ^ (Y * ln(X)) Math.Exp(0.1) * Math.Exp(1.2) == 3.6692966676192444E+000 Math.Exp(0.1 + 1.2) == 3.6692966676192444E+000 Math.Pow(Math.Exp(0.1), 1.2) == 1.1274968515793757E+000 Math.Exp(0.1 * 1.2) == 1.1274968515793757E+000 Math.Pow(0.1, 1.2) == 6.3095734448019331E-002 Math.Exp(1.2 * Math.Log(0.1)) == 6.3095734448019344E-002 Math.Exp(1.2) * Math.Exp(4.9) == 4.4585777008251705E+002 Math.Exp(1.2 + 4.9) == 4.4585777008251716E+002 Math.Pow(Math.Exp(1.2), 4.9) == 3.5780924170885260E+002 Math.Exp(1.2 * 4.9) == 3.5780924170885277E+002 Math.Pow(1.2, 4.9) == 2.4433636334442981E+000 Math.Exp(4.9 * Math.Log(1.2)) == 2.4433636334442981E+000 Math.Exp(4.9) * Math.Exp(9.9) == 2.6764450551890982E+006 Math.Exp(4.9 + 9.9) == 2.6764450551891015E+006 Math.Pow(Math.Exp(4.9), 9.9) == 1.1684908531676833E+021 Math.Exp(4.9 * 9.9) == 1.1684908531676829E+021 Math.Pow(4.9, 9.9) == 6.8067718210957060E+006 Math.Exp(9.9 * Math.Log(4.9)) == 6.8067718210956985E+006 */ [C++] // Example for the Math::Exp( double ) method. #using <mscorlib.dll> using namespace System; // Evaluate logarithmic/exponential identity with a given argument. void UseLnExp(double arg) { // Evaluate e ^ ln(X) == ln(e ^ X) == X. Console::WriteLine( S"\n Math::Exp(Math::Log({0})) == {1:E16}\n" S" Math::Log(Math::Exp({0})) == {2:E16}", __box(arg), __box(Math::Exp(Math::Log(arg))), __box(Math::Log(Math::Exp(arg))) ); } // Evaluate exponential identities that are functions of two arguments. void UseTwoArgs(double argX, double argY) { // Evaluate (e ^ X) * (e ^ Y) == e ^ (X + Y). Console::WriteLine( S"\nMath::Exp({0}) * Math::Exp({1}) == {2:E16}" S"\n Math::Exp({0} + {1}) == {3:E16}", __box(argX), __box(argY), __box(Math::Exp(argX) * Math::Exp(argY)), __box(Math::Exp(argX + argY)) ); // Evaluate (e ^ X) ^ Y == e ^ (X * Y). Console::WriteLine( S" Math::Pow(Math::Exp({0}), {1}) == {2:E16}" S"\n Math::Exp({0} * {1}) == {3:E16}", __box(argX), __box(argY), __box(Math::Pow(Math::Exp(argX), argY)), __box(Math::Exp(argX * argY)) ); // Evaluate X ^ Y == e ^ (Y * ln(X)). Console::WriteLine( S" Math::Pow({0}, {1}) == {2:E16}" S"\nMath::Exp({1} * Math::Log({0})) == {3:E16}", __box(argX), __box(argY), __box(Math::Pow(argX, argY)), __box(Math::Exp(argY * Math::Log(argX))) ); } void main() { Console::WriteLine( S"This example of Math::Exp( double ) " S"generates the following output.\n" ); Console::WriteLine( S"Evaluate [e ^ ln(X) == ln(e ^ X) == X] " S"with selected values for X:" ); UseLnExp(0.1); UseLnExp(1.2); UseLnExp(4.9); UseLnExp(9.9); Console::WriteLine( S"\nEvaluate these identities with " S"selected values for X and Y:" ); Console::WriteLine( S" (e ^ X) * (e ^ Y) == e ^ (X + Y)" ); Console::WriteLine( S" (e ^ X) ^ Y == e ^ (X * Y)" ); Console::WriteLine( S" X ^ Y == e ^ (Y * ln(X))" ); UseTwoArgs(0.1, 1.2); UseTwoArgs(1.2, 4.9); UseTwoArgs(4.9, 9.9); } /* This example of Math::Exp( double ) generates the following output. Evaluate [e ^ ln(X) == ln(e ^ X) == X] with selected values for X: Math::Exp(Math::Log(0.1)) == 1.0000000000000001E-001 Math::Log(Math::Exp(0.1)) == 1.0000000000000008E-001 Math::Exp(Math::Log(1.2)) == 1.2000000000000000E+000 Math::Log(Math::Exp(1.2)) == 1.2000000000000000E+000 Math::Exp(Math::Log(4.9)) == 4.9000000000000012E+000 Math::Log(Math::Exp(4.9)) == 4.9000000000000004E+000 Math::Exp(Math::Log(9.9)) == 9.9000000000000004E+000 Math::Log(Math::Exp(9.9)) == 9.9000000000000004E+000 Evaluate these identities with selected values for X and Y: (e ^ X) * (e ^ Y) == e ^ (X + Y) (e ^ X) ^ Y == e ^ (X * Y) X ^ Y == e ^ (Y * ln(X)) Math::Exp(0.1) * Math::Exp(1.2) == 3.6692966676192444E+000 Math::Exp(0.1 + 1.2) == 3.6692966676192444E+000 Math::Pow(Math::Exp(0.1), 1.2) == 1.1274968515793757E+000 Math::Exp(0.1 * 1.2) == 1.1274968515793757E+000 Math::Pow(0.1, 1.2) == 6.3095734448019331E-002 Math::Exp(1.2 * Math::Log(0.1)) == 6.3095734448019344E-002 Math::Exp(1.2) * Math::Exp(4.9) == 4.4585777008251705E+002 Math::Exp(1.2 + 4.9) == 4.4585777008251716E+002 Math::Pow(Math::Exp(1.2), 4.9) == 3.5780924170885260E+002 Math::Exp(1.2 * 4.9) == 3.5780924170885277E+002 Math::Pow(1.2, 4.9) == 2.4433636334442981E+000 Math::Exp(4.9 * Math::Log(1.2)) == 2.4433636334442981E+000 Math::Exp(4.9) * Math::Exp(9.9) == 2.6764450551890982E+006 Math::Exp(4.9 + 9.9) == 2.6764450551891015E+006 Math::Pow(Math::Exp(4.9), 9.9) == 1.1684908531676833E+021 Math::Exp(4.9 * 9.9) == 1.1684908531676829E+021 Math::Pow(4.9, 9.9) == 6.8067718210957060E+006 Math::Exp(9.9 * Math::Log(4.9)) == 6.8067718210956985E+006 */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard
See Also
Math Class | Math Members | System Namespace | E | Pow | Log