1. A function f : D -> D is idempotent if
f (f x) = f x
for all x in D.
I.e. repeated applications have the same effect as one.
This can be extended to functions of more than one argument, e.g. Boolean & has x & x = x.
Any value in the image
of an idempotent function is a fixed point
of the function.
2. This term can be used to describe C
header files, which contain common definitions and declarations to be included by several source files.
If a header file is ever included twice during the same compilation (perhaps due to nested #include files), compilation errors can result unless the header file has protected itself against multiple inclusion; a header file so protected is said to be idempotent.
3. The term can also be used to describe an initialisation subroutine that is arranged to perform some critical action exactly once, even if the routine is called several times.