The SIGNUM function returns the sign of each element of an array. The sign of a value X is defined as:

  • 1 if X > 0
  • 0 if X = 0
  • -1 if X < 0
  • If X is complex then the sign is defined as X/abs(X).
  • If X is NaN (not-a-number) then the result is also NaN.

Examples


Find the sign of each element in an array:

print, SIGNUM([-0.5, 0, 1.5])

IDL prints:

-1.00000      0.000000       1.00000

Plot the cosine function and the sign of the function:

p1 = PLOT('cos(x)', '2--', YRANGE=[-1.5,1.5])
p2 = PLOT('signum(cos(x))', '2', /OVERPLOT)
p1['axis 1'].showtext = 0
p1['axis 3'].showtext = 1

Syntax


Result = SIGNUM(X)

Return Value


Returns a scalar or array of the same type and dimensions as the input. If X is a string then the values are converted to single-precision floating point before computing the sign.

Arguments


X

A scalar or array of any numeric data type. String values are converted to single-precision floating point.

Keywords


Thread Pool Keywords

This routine is written to make use of IDL’s thread pool, which can increase execution speed on systems with multiple CPUs. The values stored in the !CPU system variable control whether IDL uses the thread pool for a given computation. In addition, you can use the thread pool keywords TPOOL_MAX_ELTS, TPOOL_MIN_ELTS, and TPOOL_NOTHREAD to override the defaults established by !CPU for a single invocation of this routine. See Thread Pool Keywords for details.

Version History


8.3

Introduced

See Also


ABS, TOTAL, WHERE