The '''LOG''' math function returns the natural logarithm of a specified numerical value. {{PageSyntax}} :: logarithm = LOG(value) * 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 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. ''Example 1:'' [[FUNCTION]] to find the base ten logarithm of a numerical value. {{CodeStart}} FUNCTION Log10#(value AS DOUBLE) {{Cl|STATIC}} Log10# = LOG(value) / LOG(10.#) 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 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}} '' '' FUNCTION BIN$ (n&) IF n& < 0 THEN EXIT FUNCTION 'positive numbers only! negative error! FOR p% = 0 TO INT({{Cl|LOG}}(n& + .1) / {{Cl|LOG}}(2)) ' added +.1 to get 0 to work IF n& {{Cl|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 {{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". ''See also:'' *[[EXP]], [[&B]] (binary number) *[http://qb64.net/wiki/index.php?title=Mathematical_Operations#Derived_Mathematical_Functions Derived Trigonometric Functions] {{PageNavigation}}