.TH IM_EXPTRA 3 "24 April 1991"
.SH NAME
im_exp10tra, im_exptra, im_expntra, im_expntra_vec, im_log10tra, im_logtra, 
im_powtra, im_powtra_vec \- logarithmic, exponential and power transform of an image
.SH SYNOPSIS
.B #include <vips/vips.h>

.B int im_expntra(in, out, base)
.br
.B IMAGE *in, *out;
.br
.B double base;

.B int im_expntra_vec(in, out, n, vec)
.br
.B IMAGE *in, *out;
.br
.B int n;
.br
.B double *vec;

.B int im_exp10tra(in, out)
.br
.B IMAGE *in, *out;

.B int im_exptra(in, out)
.br
.B IMAGE *in, *out;

.B int im_log10tra(in, out)
.br
.B IMAGE *in, *out;

.B int im_logtra(in, out)
.br
.B IMAGE *in, *out;

.B int im_powtra(in, out, exponent)
.br
.B IMAGE *in, *out;
.br
.B double exponent;

.B int im_powtra_vec(in, out, n, vec)
.br
.B IMAGE *in, *out;
.br
.B int n;
.br
.B double *vec;

.SH DESCRIPTION
Each of the above functions maps in through a log or anti-log 
function of some sort and writes the result to out. The size and number of
bands are unchanged, the output type is float, unless the input is double, in
which case the output is double. Non-complex images only!

.B im_expntra(3)
transforms element x of input, to pow(base, x) in output. It detects division
by zero, setting those pixels to zero in the output. Beware: it does this 
silently!

.B im_expntra_vec(3)
works as im_expntra(), but lets you specify a constant per band.

.B im_exp10tra(3)
transforms element x of input, to pow(10,0, x) in output. Internally, it is
defined in terms of im_expntra().

.B im_exptra(3)
transforms element x of input, to pow(e, x) in output, where e is the
mathematical constant. Internally, it is defined in terms of im_expntra().

.B im_log10tra(3)
transforms element x of input, to log10tra(x) in output.

.B im_logtra(3)
transforms element x of input, to logtra(x) in output.

.B im_powtra(3)
transforms element x of input, to pow(x, exponent) in output. It detects
division by zero, setting those pixels to zero in the output. Beware: it does
this silently!

.B im_powtra_vec(3)
works as im_powtra(3), but lets you specify a constant per band.

.SH BUGS
None of the functions checks for under/overflow. Overflow is very common for
many of these functions! 

.SH RETURN VALUE
Each function returns 0 on success and -1 on error.
.SH SEE ALSO
im_add(3), im_multiply(3), im_subtract(3), im_lintra(3),
im_absim(3), im_mean(3), im_max(3).
.SH AUTHOR
N. Dessipris \- 24/04/1991
.br
J. Cupitt (rewrite) \- 21/7/93
