##
log

log —
Returns a natural log of a number, or an array (with optional arbitrary base).

## Description

Returns the natural log of *x* (*x* positive only). In
the case of an array input, the operation can have an optional arbitrary base.

The argument value is restricted for *log*,
*log10*,
and *sqrt*.

## Syntax

**log**(x) (no rate
restriction)

**log**(k/i[]) (k- or i-arrays )

kout[]**log** kin[],ibas

where the argument within the parentheses may be an expression. Value converters perform arithmetic translation from units of one kind to units of another. The result can then be a term in a further expression. In the case of an array input, ibas is the optional arbitrary base, which defaults to e (natural log base).

## Examples

Here is an example of the log opcode. It uses the file *log.csd*.

**Example 477. Example of the log opcode.**

See the sections *Real-time Audio* and *Command Line Flags* for more information on using command line flags.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out Audio in
-odac -iadc ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o log.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
i1 = log(8)
print i1
endin
</CsInstruments>
<CsScore>
; Play Instrument #1 for one second.
i 1 0 1
e
</CsScore>
</CsoundSynthesizer>

Its output should include a line like this:

instr 1: i1 = 2.079

## Credits

Written by John ffitch.

New in version 3.47

Example written by Kevin Conder.