Math.Log Method (Double, Double)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns the logarithm of a specified number in a specified base.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Function Log ( _
a As Double, _
newBase As Double _
) As Double
public static double Log(
double a,
double newBase
)
Parameters
- a
Type: System.Double
A number whose logarithm is to be found.
- newBase
Type: System.Double
The base of the logarithm.
Return Value
Type: System.Double
One of the values in the following table. (+Infinity denotes PositiveInfinity, -Infinity denotes NegativeInfinity, and NaN denotes NaN.)
a |
newBase |
Return Value |
---|---|---|
a > 0 |
(0 <newBase< 1) -or-(newBase> 1) |
lognewBase(a) |
a < 0 |
(any value) |
NaN |
(any value) |
newBase < 0 |
NaN |
a != 1 |
newBase = 0 |
NaN |
a != 1 |
newBase = +Infinity |
NaN |
a = NaN |
(any value) |
NaN |
(any value) |
newBase = NaN |
NaN |
(any value) |
newBase = 1 |
NaN |
a = 0 |
0 <newBase< 1 |
+Infinity |
a = 0 |
newBase > 1 |
-Infinity |
a = +Infinity |
0 <newBase< 1 |
-Infinity |
a = +Infinity |
newBase > 1 |
+Infinity |
a = 1 |
newBase = 0 |
0 |
a = 1 |
newBase = +Infinity |
0 |
Examples
The following example uses Log to evaluate certain logarithmic identities for selected values.
' Example for the Math.Log( Double ) and Math.Log( Double, Double ) methods.
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
outputBlock.Text &= _
"This example of Math.Log( Double ) and " + _
"Math.Log( Double, Double )" & vbCrLf & _
"generates the following output." & vbCrLf & vbCrLf
outputBlock.Text &= _
"Evaluate these identities with selected " & _
"values for X and B (base):" & vbCrLf
outputBlock.Text &= " log(B)[X] = 1 / log(X)[B]" & vbCrLf
outputBlock.Text &= " log(B)[X] = ln[X] / ln[B]" & vbCrLf
outputBlock.Text &= " log(B)[X] = log(B)[e] * ln[X]" & vbCrLf
UseBaseAndArg(outputBlock, 0.1, 1.2)
UseBaseAndArg(outputBlock, 1.2, 4.9)
UseBaseAndArg(outputBlock, 4.9, 9.9)
UseBaseAndArg(outputBlock, 9.9, 0.1)
End Sub 'Main
' Evaluate logarithmic identities that are functions of two arguments.
Sub UseBaseAndArg(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal argB As Double, ByVal argX As Double)
' Evaluate log(B)[X] = 1 / log(X)[B].
outputBlock.Text &= String.Format( _
vbCrLf & " Math.Log({1}, {0}) = {2:E16}" + _
vbCrLf & " 1.0 / Math.Log({0}, {1}) = {3:E16}", _
argB, argX, Math.Log(argX, argB), _
1.0 / Math.Log(argB, argX)) & vbCrLf
' Evaluate log(B)[X] = ln[X] / ln[B].
outputBlock.Text &= String.Format( _
" Math.Log({1}) / Math.Log({0}) = {2:E16}", _
argB, argX, Math.Log(argX) / Math.Log(argB)) & vbCrLf
' Evaluate log(B)[X] = log(B)[e] * ln[X].
outputBlock.Text &= String.Format( _
"Math.Log(Math.E, {0}) * Math.Log({1}) = {2:E16}", _
argB, argX, Math.Log(Math.E, argB) * Math.Log(argX)) & vbCrLf
End Sub 'UseBaseAndArg
End Module 'LogDLogDD
' This example of Math.Log( Double ) and Math.Log( Double, Double )
' generates the following output.
'
' Evaluate these identities with selected values for X and B (base):
' log(B)[X] = 1 / log(X)[B]
' log(B)[X] = ln[X] / ln[B]
' log(B)[X] = log(B)[e] * ln[X]
'
' Math.Log(1.2, 0.1) = -7.9181246047624818E-002
' 1.0 / Math.Log(0.1, 1.2) = -7.9181246047624818E-002
' Math.Log(1.2) / Math.Log(0.1) = -7.9181246047624818E-002
' Math.Log(Math.E, 0.1) * Math.Log(1.2) = -7.9181246047624804E-002
'
' Math.Log(4.9, 1.2) = 8.7166610085093179E+000
' 1.0 / Math.Log(1.2, 4.9) = 8.7166610085093161E+000
' Math.Log(4.9) / Math.Log(1.2) = 8.7166610085093179E+000
' Math.Log(Math.E, 1.2) * Math.Log(4.9) = 8.7166610085093179E+000
'
' Math.Log(9.9, 4.9) = 1.4425396251981288E+000
' 1.0 / Math.Log(4.9, 9.9) = 1.4425396251981288E+000
' Math.Log(9.9) / Math.Log(4.9) = 1.4425396251981288E+000
' Math.Log(Math.E, 4.9) * Math.Log(9.9) = 1.4425396251981288E+000
'
' Math.Log(0.1, 9.9) = -1.0043839404494075E+000
' 1.0 / Math.Log(9.9, 0.1) = -1.0043839404494075E+000
' Math.Log(0.1) / Math.Log(9.9) = -1.0043839404494075E+000
' Math.Log(Math.E, 9.9) * Math.Log(0.1) = -1.0043839404494077E+000
// Example for the Math.Log( double ) and Math.Log( double, double ) methods.
using System;
class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.Text +=
"This example of Math.Log( double ) and " +
"Math.Log( double, double )\n" +
"generates the following output.\n" + "\n";
outputBlock.Text +=
"Evaluate these identities with " +
"selected values for X and B (base):" + "\n";
outputBlock.Text += " log(B)[X] == 1 / log(X)[B]" + "\n";
outputBlock.Text += " log(B)[X] == ln[X] / ln[B]" + "\n";
outputBlock.Text += " log(B)[X] == log(B)[e] * ln[X]" + "\n";
UseBaseAndArg(outputBlock, 0.1, 1.2);
UseBaseAndArg(outputBlock, 1.2, 4.9);
UseBaseAndArg(outputBlock, 4.9, 9.9);
UseBaseAndArg(outputBlock, 9.9, 0.1);
}
// Evaluate logarithmic identities that are functions of two arguments.
static void UseBaseAndArg(System.Windows.Controls.TextBlock outputBlock, double argB, double argX)
{
// Evaluate log(B)[X] == 1 / log(X)[B].
outputBlock.Text += String.Format(
"\n Math.Log({1}, {0}) == {2:E16}" +
"\n 1.0 / Math.Log({0}, {1}) == {3:E16}",
argB, argX, Math.Log(argX, argB),
1.0 / Math.Log(argB, argX)) + "\n";
// Evaluate log(B)[X] == ln[X] / ln[B].
outputBlock.Text += String.Format(
" Math.Log({1}) / Math.Log({0}) == {2:E16}",
argB, argX, Math.Log(argX) / Math.Log(argB)) + "\n";
// Evaluate log(B)[X] == log(B)[e] * ln[X].
outputBlock.Text += String.Format(
"Math.Log(Math.E, {0}) * Math.Log({1}) == {2:E16}",
argB, argX, Math.Log(Math.E, argB) * Math.Log(argX)) + "\n";
}
}
/*
This example of Math.Log( double ) and Math.Log( double, double )
generates the following output.
Evaluate these identities with selected values for X and B (base):
log(B)[X] == 1 / log(X)[B]
log(B)[X] == ln[X] / ln[B]
log(B)[X] == log(B)[e] * ln[X]
Math.Log(1.2, 0.1) == -7.9181246047624818E-002
1.0 / Math.Log(0.1, 1.2) == -7.9181246047624818E-002
Math.Log(1.2) / Math.Log(0.1) == -7.9181246047624818E-002
Math.Log(Math.E, 0.1) * Math.Log(1.2) == -7.9181246047624804E-002
Math.Log(4.9, 1.2) == 8.7166610085093179E+000
1.0 / Math.Log(1.2, 4.9) == 8.7166610085093161E+000
Math.Log(4.9) / Math.Log(1.2) == 8.7166610085093179E+000
Math.Log(Math.E, 1.2) * Math.Log(4.9) == 8.7166610085093179E+000
Math.Log(9.9, 4.9) == 1.4425396251981288E+000
1.0 / Math.Log(4.9, 9.9) == 1.4425396251981288E+000
Math.Log(9.9) / Math.Log(4.9) == 1.4425396251981288E+000
Math.Log(Math.E, 4.9) * Math.Log(9.9) == 1.4425396251981288E+000
Math.Log(0.1, 9.9) == -1.0043839404494075E+000
1.0 / Math.Log(9.9, 0.1) == -1.0043839404494075E+000
Math.Log(0.1) / Math.Log(9.9) == -1.0043839404494075E+000
Math.Log(Math.E, 9.9) * Math.Log(0.1) == -1.0043839404494077E+000
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.