Skip to main content

This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Previous sectionNext section


A scalar numeric function that returns the natural logarithm of a given numeric expression.


{fn LOG(float-expression)}


Argument Description
float-expression An expression of type FLOAT.


LOG returns the natural logarithm (base e) of float-expression. LOG returns a value of data type FLOAT with a precision of 21 and a scale of 18.

LOG can only be used as an ODBC scalar function (with the curly brace syntax).


The following example returns the natural logarithm of an integer:

SELECT {fn LOG(5)} AS Logarithm
Copy code to clipboard

returns 1.60943791...

The following Embedded SQL example shows the relationship between the LOG and EXP functions for the integers 1 through 10:

   SET a=1
   WHILE a<11 {
   &sql(SELECT {fn LOG(:a)} INTO :b)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE 
     QUIT }
   ELSE {
     WRITE !,"Logarithm of ",a," = ",b }
   &sql(SELECT ROUND({fn EXP(:b)},12) INTO :c)
   IF SQLCODE'=0 {
     WRITE !,"Error code ",SQLCODE
     QUIT }
   ELSE {
     WRITE !,"Exponential of log ",b," = ",c
     SET a=a+1 }
Copy code to clipboard

Note that the ROUND function is needed here to correct for very small discrepancies caused by system calculation limitations. In the above example, ROUND is set arbitrarily to 12 decimal digits for this purpose.

See Also