# Fish Shell:

**Working with complex numbers**

## How to:

In Fish, we handle complex numbers using `math`

with real and imaginary parts. Here’s a kick-off:

```
# Add two complex numbers (3+4i) and (5+2i)
set complex_sum (math "3+4i + 5+2i")
echo $complex_sum # Outputs: 8+6i
# Multiply two complex numbers (1+2i) and (3+4i)
set complex_prod (math "1+2i * 3+4i")
echo $complex_prod # Outputs: -5+10i
```

If you need to raise a complex number to a power or get its exponential form:

```
# Square of (2+3i)
set complex_square (math "(2+3i)^2")
echo $complex_square # Outputs: -5+12i
# Exponential of (2i)
set complex_exp (math "e^(2i)")
echo $complex_exp # Outputs: -0.41615+0.9093i
```

## Deep Dive

Fish Shell’s math support for complex numbers is relatively new, kicking off around version 3.1.0. Before that, people might have used `bc`

or called out to external tools like Python for complex math.

Alternatives to Fish’s math include specialized numerical libraries or languages like MATLAB, Python with NumPy, or even C++ with the Standard Library. However, these might be overkill for quick shell calculations.

Fish’s complex number support is baked into its internal `math`

command, leveraging libcalc. This means you don’t have to install extra tools for basic operations.

However, Fish isn’t designed for heavy mathematical computation. Its maths ability is convenient for quick calculations or scripts where complex numbers come into play, but consider more robust tools for intensive tasks.

## See Also

- Fish shell documentation for math: https://fishshell.com/docs/current/commands.html#math
- NumPy for Python, a popular alternative: https://numpy.org/
- A deeper look into complex numbers: https://betterexplained.com/articles/a-visual-intuitive-guide-to-imaginary-numbers/