Difference between revisions of "LOG"
imported>Aoeu |
m (Fix example highlighting/linking) |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | The | + | The [[LOG]] math function returns the natural logarithm of a specified numerical value. |
+ | {{PageSyntax}} | ||
+ | : {{Parameter|logarithm!}} = [[LOG]]({{Parameter|value}}) | ||
− | |||
− | + | {{PageDescription}} | |
− | + | * {{Parameter|value}} MUST be greater than 0. [[ERROR Codes|"Illegal function call" error]] occurs if negative or zero values are used. | |
− | * | ||
* The natural logarithm is the logarithm to the base '''e = 2.718282''' (approximately). | * The natural logarithm is the logarithm to the base '''e = 2.718282''' (approximately). | ||
− | * The natural logarithm of 'a' is defined as the integral from 1 to 'a' of dx/x. | + | * The natural logarithm of ''a'' is defined as the integral from 1 to ''a'' of dx/x. |
* Returns are default [[SINGLE]] precision unless the value parameter uses [[DOUBLE]] precision. | * Returns are default [[SINGLE]] precision unless the value parameter uses [[DOUBLE]] precision. | ||
− | ''Example:'' [[FUNCTION]] to find the base ten logarithm | + | {{PageExamples}} |
− | + | ''Example 1:'' [[FUNCTION]] to find the base ten logarithm of a numerical value. | |
− | + | {{CodeStart}} | |
− | + | {{Cl|FUNCTION}} Log10#(value {{Cl|AS}} {{Cl|DOUBLE}}) {{Cl|STATIC}} | |
− | + | Log10# = {{Cl|LOG}}(value) / LOG(10.#) | |
− | + | {{Cl|END FUNCTION}} '' '' | |
− | + | {{CodeEnd}} | |
− | ''Explanation:'' The natural logarithm of the value is divided by the base 10 logarithm. The LOG of ten is designated as a DOUBLE precision return by using # after the 10 value. | + | :''Explanation:'' The natural logarithm of the value is divided by the base 10 logarithm. The LOG of ten is designated as a DOUBLE precision return by using # after the Log10 value. The return tells you the number of times 10 goes into a value. |
− | '' | + | ''Example 2:'' A binary FUNCTION to convert [[INTEGER]] values using LOG to find the number of digits the return will be. |
+ | {{CodeStart}} '' '' | ||
+ | {{Cl|FUNCTION}} BIN$ (n&) | ||
+ | {{Cl|IF}} n& < 0 {{Cl|THEN}} {{Cl|EXIT FUNCTION}} 'positive numbers only! negative error! | ||
+ | {{Cl|FOR}} p% = 0 {{Cl|TO}} {{Cl|INT}}({{Cl|LOG}}(n& + .1) / {{Cl|LOG}}(2)) 'added +.1 to get 0 to work | ||
+ | {{Cl|IF}} n& {{Cl|AND}} 2 ^ p% {{Cl|THEN}} s$ = "1" + s$ {{Cl|ELSE}} s$ = "0" + s$ 'find bits on | ||
+ | {{Cl|NEXT}} p% | ||
+ | {{Cl|IF}} s$ = "" {{Cl|THEN}} BIN$ = "&B0" {{Cl|ELSE}} BIN$ = "&B" + s$ 'check for zero return '' '' | ||
+ | {{Cl|END FUNCTION}} | ||
+ | {{CodeEnd}} | ||
+ | : ''Explanation:'' The LOG of a '''positive''' [[INTEGER]] value is divided by the LOG of 2 to determine the number of binary digits that will be returned. The FOR loop compares the value with the exponents of two and determines if a bit is ON or OFF as "1" or "0". | ||
− | + | {{PageSeeAlso}} | |
+ | *[[EXP]], [[&B]] (binary number) | ||
− | |||
− | + | {{PageNavigation}} |
Latest revision as of 14:52, 5 March 2021
The LOG math function returns the natural logarithm of a specified numerical value.
Syntax
- logarithm! = LOG(value)
Description
- value MUST be greater than 0. "Illegal function call" error occurs if negative or zero values are used.
- The natural logarithm is the logarithm to the base e = 2.718282 (approximately).
- The natural logarithm of a is defined as the integral from 1 to a of dx/x.
- Returns are default SINGLE precision unless the value parameter uses DOUBLE precision.
Examples
Example 1: FUNCTION to find the base ten logarithm of a numerical value.
FUNCTION Log10#(value AS DOUBLE) STATIC Log10# = LOG(value) / LOG(10.#) END FUNCTION
- Explanation: The natural logarithm of the value is divided by the base 10 logarithm. The LOG of ten is designated as a DOUBLE precision return by using # after the Log10 value. The return tells you the number of times 10 goes into a value.
Example 2: A binary FUNCTION to convert INTEGER values using LOG to find the number of digits the return will be.
FUNCTION BIN$ (n&) IF n& < 0 THEN EXIT FUNCTION 'positive numbers only! negative error! FOR p% = 0 TO INT(LOG(n& + .1) / LOG(2)) 'added +.1 to get 0 to work IF n& AND 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$ 'find bits on NEXT p% IF s$ = "" THEN BIN$ = "&B0" ELSE BIN$ = "&B" + s$ 'check for zero return END FUNCTION
- Explanation: The LOG of a positive INTEGER value is divided by the LOG of 2 to determine the number of binary digits that will be returned. The FOR loop compares the value with the exponents of two and determines if a bit is ON or OFF as "1" or "0".
See also