### 8.1 Logarithmic Functions

The shift-L (`calc-ln`) [`ln`] command computes the natural logarithm of the real or complex number on the top of the stack. With the Inverse flag it computes the exponential function instead, although this is redundant with the E command.

The shift-E (`calc-exp`) [`exp`] command computes the exponential, i.e., ‘e’ raised to the power of the number on the stack. The meanings of the Inverse and Hyperbolic flags follow from those for the `calc-ln` command.

The H L (`calc-log10`) [`log10`] command computes the common (base-10) logarithm of a number. (With the Inverse flag [`exp10`], it raises ten to a given power.) Note that the common logarithm of a complex number is computed by taking the natural logarithm and dividing by ‘ln(10)’.

The B (`calc-log`) [`log`] command computes a logarithm to any base. For example, 1024 RET 2 B produces 10, since ‘2^10 = 1024’. In certain cases like ‘log(3,9)’, the result will be either ‘1:2’ or ‘0.5’ depending on the current Fraction mode setting. With the Inverse flag [`alog`], this command is similar to ^ except that the order of the arguments is reversed.

The f I (`calc-ilog`) [`ilog`] command computes the integer logarithm of a number to any base. The number and the base must themselves be positive integers. This is the true logarithm, rounded down to an integer. Thus ilog(x,10) is 3 for all ‘x’ in the range from 1000 to 9999. If both arguments are positive integers, exact integer arithmetic is used; otherwise, this is equivalent to ‘floor(log(x,b))’.

The f E (`calc-expm1`) [`expm1`] command computes ‘exp(x)-1’, but using an algorithm that produces a more accurate answer when the result is close to zero, i.e., when ‘exp(x)’ is close to one.

The f L (`calc-lnp1`) [`lnp1`] command computes ‘ln(x+1)’, producing a more accurate answer when ‘x’ is close to zero.