Difference between revisions of "LOG"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
m (Fix example highlighting/linking)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The '''LOG''' math function returns the natural logarithm of a specified numerical value.
+
The [[LOG]] math function returns the natural logarithm of a specified numerical value.
  
  
 +
{{PageSyntax}}
 +
: {{Parameter|logarithm!}} = [[LOG]]({{Parameter|value}})
  
''Syntax:'' logarithm = LOG(value)
 
  
 
+
{{PageDescription}}
 
+
* {{Parameter|value}} MUST be greater than 0. [[ERROR Codes|"Illegal function call" error]] occurs if negative or zero values are used.
* Value parameter MUST be greater than 0! [[ERROR Codes|"Illegal function call" error]] using negative or zero values!
 
 
* 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.
Line 13: Line 13:
  
  
 +
{{PageExamples}}
 
''Example 1:'' [[FUNCTION]] to find the base ten logarithm of a numerical value.
 
''Example 1:'' [[FUNCTION]] to find the base ten logarithm of a numerical value.
 
{{CodeStart}}
 
{{CodeStart}}
 
+
{{Cl|FUNCTION}} Log10#(value {{Cl|AS}} {{Cl|DOUBLE}}) {{Cl|STATIC}}
FUNCTION Log10#(value AS DOUBLE) {{Cl|STATIC}}
+
    Log10# = {{Cl|LOG}}(value) / LOG(10.#)  
  Log10# = LOG(value) / LOG(10.#)  
+
{{Cl|END FUNCTION}} '' ''
END FUNCTION
 
 
 
 
{{CodeEnd}}
 
{{CodeEnd}}
  
Line 26: Line 25:
  
 
''Example 2:'' A binary FUNCTION to convert [[INTEGER]] values using LOG to find the number of digits the return will be.
 
''Example 2:'' A binary FUNCTION to convert [[INTEGER]] values using LOG to find the number of digits the return will be.
{{CodeStart}}
+
{{CodeStart}} '' ''
 
+
{{Cl|FUNCTION}} BIN$ (n&)
FUNCTION BIN$ (n&)
+
    {{Cl|IF}} n& < 0 {{Cl|THEN}} {{Cl|EXIT FUNCTION}}                              'positive numbers only! negative error!
  IF n& < 0 THEN 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
  FOR p% = 0 TO 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
    IF n& {{Cl|AND}} 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$ 'find bits on
+
    {{Cl|NEXT}} p%
  NEXT p%
+
    {{Cl|IF}} s$ = "" {{Cl|THEN}} BIN$ = "&B0" {{Cl|ELSE}} BIN$ = "&B" + s$         'check for zero return '' ''
  IF s$ = "" THEN BIN$ = "&B0" ELSE BIN$ = "&B" + s$       'check for zero return
+
{{Cl|END FUNCTION}}
END FUNCTION
 
  
 
{{CodeEnd}}
 
{{CodeEnd}}
Line 40: Line 38:
  
  
''See also:''
+
{{PageSeeAlso}}
 
+
*[[EXP]], [[&B]] (binary number)
[[EXP]], [[&B]] (binary number)
 
 
 
  
  
 
{{PageNavigation}}
 
{{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



Navigation:
Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page