In mathematics, the **sign function** or **signum function** (from *signum*, Latin for "sign") is an odd mathematical function that extracts the sign of a real number. In mathematical expressions the sign function is often represented as **sgn**.

The signum function of a real number *x* is defined as follows:

Alternatively:

Any real number can be expressed as the product of its absolute value and its sign function:

- We can also ascertain that:

It follows that whenever *x* is not equal to 0 we have

Similarly, for *any* real number *x*,

The signum function is the derivative of the absolute value function (up to the indeterminacy at zero): Note, the resultant power of *x* is 0, similar to the ordinary derivative of *x*. The numbers cancel and all we are left with is the sign of *x*.

- .

The signum function is differentiable with derivative 0 everywhere except at 0. It is not differentiable at 0 in the ordinary sense, but under the generalised notion of differentiation in distribution theory, the derivative of the signum function is two times the Dirac delta function, which can be demonstrated using the identity

^{[1]}

(where *H*(*x*) is the Heaviside step function using the standard *H*(0) = 1/2 formalism).
Using this identity, it is easy to derive the distributional derivative:

^{[2]}

The signum can also be written using the Iverson bracket notation:

The signum can also be written using the floor and the absolute value functions:

For *k* ≫ 1, a smooth approximation of the sign function is

Another approximation is

which gets sharper as *ε* → 0; note that this is the derivative of √*x*^{2} + *ε*^{2}. This is inspired from the fact that the above is exactly equal for all nonzero *x* if *ε* = 0, and has the advantage of simple generalization to higher-dimensional analogues of the sign function (for example, the partial derivatives of √*x*^{2} + *y*^{2}).

The signum function can be generalized to complex numbers as:

for any complex number *z* except *z* = 0. The signum of a given complex number *z* is the point on the unit circle of the complex plane that is nearest to *z*. Then, for *z* ≠ 0,

where arg is the complex argument function.

For reasons of symmetry, and to keep this a proper generalization of the signum function on the reals, also in the complex domain one usually defines, for *z* = 0:

Another generalization of the sign function for real and complex expressions is **csgn**,^{[3]} which is defined as:

where Re(*z*) is the real part of *z* and Im(*z*) is the imaginary part of *z*.

We then have (for *z* ≠ 0):

At real values of *x*, it is possible to define a generalized function–version of the signum function, *ε*(*x*) such that *ε*(*x*)^{2} = 1 everywhere, including at the point *x* = 0 (unlike sgn, for which sgn(0)^{2} = 0). This generalized signum allows construction of the algebra of generalized functions, but the price of such generalization is the loss of commutativity. In particular, the generalized signum anticommutes with the Dirac delta function^{[4]}

in addition, *ε*(*x*) cannot be evaluated at *x* = 0; and the special name, *ε* is necessary to distinguish it from the function sgn. (*ε*(0) is not defined, but sgn(0) = 0.)