# Unary operation

In mathematics, a unary operation is an operation with only one operand, i.e. a single input. This is in contrast to binary operations, which use two operands. An example is any function ⁠$f:A\rightarrow A$⁠, where A is a set; the function ⁠$f$⁠ is a unary operation on A.
Common notations are prefix notation (e.g. ¬, −), postfix notation (e.g. factorial n!), functional notation (e.g. sin x or sin(x)), and superscripts (e.g. transpose A$^T$). Other notations exist as well, for example, in the case of the square root, a horizontal bar extending the square root sign over the argument can indicate the extent of the argument.

## Examples
### Absolute value

Obtaining the absolute value of a number is a unary operation. This function is defined as $|n|={\begin{cases}n,&{\mbox{if }}n\geq 0\\-n,&{\mbox{if }}n<0\end{cases}}$ where $|n|$ is the absolute value of $n$.

### Negation

Negation is used to find the negative value of a single number. Here are some examples:
    $-(3)=-3$
    $-(-3)=3$

### Factorial

For any positive integer n, the product of the integers less than or equal to n is a unary operation called factorial. In the context of complex numbers, the gamma function is a unary operation extension of factorial.

### Trigonometry

In trigonometry, the trigonometric functions, such as $\sin$, $\cos$, and $\tan$, can be seen as unary operations. This is because it is possible to provide only one term as input for these functions and retrieve a result. By contrast, binary operations, such as addition, require two different terms to compute a result.

### Examples from programming languages

Below is a table summarizing common unary operators along with their symbols, description, and examples:
| Operator | Symbol | Description | Example |
| Increment | ++ | Increases the value of a variable by 1 | x = 2; ++x; // x is now 3 |
| Decrement | −- | Decreases the value of a variable by 1 | y = 10; --y; // y is now 9 |
| Unary Plus | + | Indicates a positive value | a = -5; b = +a; // b is -5 |
| Unary Minus | - | Indicates a negative value | c = 4; d = -c; // d is -4 |
| Logical NOT | ! | Negates the truth value of a Boolean expression | flag = true; result = !flag; // result is false |
| Bitwise NOT | ~ | Bitwise negation, flips the bits of an integer | num = 5; result = ~num; // result is -6 |

#### JavaScript

In JavaScript, these operators are unary:
* Increment: ++x, x++
* Decrement: --x, x--
* Positive: +x
* Negative: -x
* Ones' complement: ~x
* Logical negation: !x

#### C family of languages

In the C family of languages, the following operators are unary:
* Increment: ++x, x++
* Decrement: --x, x--
* Address: &x
* Indirection: *x
* Positive: +x
* Negative: -x
* Ones' complement: ~x
* Logical negation: !x
* Sizeof: sizeof x, sizeof(type-name)
* Cast: (type-name) cast-expression

#### Unix shell (Bash)

In the Unix shell (Bash/Bourne Shell), e.g., the following operators are unary:
* Pre and Post-Increment: ++$x, $x++
* Pre and Post-Decrement: --$x, $x--
* Positive: +$x
* Negative: -$x
* Logical negation: !$x
* Simple expansion: $x
* Complex expansion: ${#x}

#### PowerShell

In the PowerShell, the following operators are unary:
* Increment: ++$x, $x++
* Decrement: --$x, $x--
* Positive: +$x
* Negative: -$x
* Logical negation: !$x
* Invoke in current scope: .$x
* Invoke in new scope: &$x
* Cast: [type-name] cast-expression
* Cast: +$x
* Array: ,$array