# gd_complex

> Complex Number Arithmetic

Latest version **0.0.4** (published 2018-06-16) · ISC license · 0 weekly downloads

## Install

```sh
npm install gd_complex
pnpm add gd_complex
yarn add gd_complex
bun add gd_complex
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.4 |
| Published | 2018-06-16 |
| First published | 2018-06-14 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 22.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Giovanni DiFeterici |
| Maintainers | giodif |
| Keywords | Complex, Imaginary, Numbers, Math |

## Links

- npm: https://www.npmjs.com/package/gd_complex
- Repository: https://github.com/giodif/gd_complex
- Homepage: https://github.com/giodif/gd_complex#readme
- Issues: https://github.com/giodif/gd_complex/issues
- npm.io page: https://npm.io/package/gd_complex

## Alternatives

- [random-seedable](https://npm.io/package/random-seedable.md) — 27.9K weekly downloads
- [n2words](https://npm.io/package/n2words.md) — 22.2K weekly downloads
- [@stdlib/math-base-special-factorialln](https://npm.io/package/@stdlib/math-base-special-factorialln.md) — 5.7K weekly downloads
- [@stdlib/math-base-special-abs2](https://npm.io/package/@stdlib/math-base-special-abs2.md) — 1.7K weekly downloads
- [commons-math-interpolation](https://npm.io/package/commons-math-interpolation.md) — 1.4K weekly downloads

## Recent versions

- 0.0.4 (latest) — 2018-06-16
- 0.0.2 — 2018-06-14

## README

# GD Complex

## Import

```javascript

// ES6
import complex from "gd_complex"
// or ES5
var complex = require("../gd_complex.es5").complex;

```

## Create

```javascript

// create a function
// real and imaginary components
// in this case real -> 1 imaginary -> 2
const c = complex(1, 2)

```

## Chaining

Complex is designed to make sequences of operations a little easier and functional. To that end, functions are chainable as they either operate in place and return themselves, or remain immutable and return a new complex number that contains the result of the operation.

```javascript

const y = complex(3, 4)
const x = complex(1, 2) // 1, 2
        ._sadd(3) // 4, 2
        ._smultiply(2) // 8, 4
        ._iadd(y) // 24, 16

```

## Mutator Functions

These functions (prefixed with an underscore) will alter the complex number in place. 

### Scalar Operations

```javascript

// scalar addition
complex(1, 2)._sadd(3) // 4, 2
// scalar subtraction
complex(1, 2)._ssubtract(5) // -4, 2
// scalar multiplication
complex(1, 2)._smultiply(2) // 2, 4
// scalar division
complex(1, 2)._sdivide(2) // 0.5, 1

```

### Complex Operations

```javascript

// complex addition
complex(1, 2)._iadd(complex(1, 2)) // 2, 4
// complex subtraction
complex(1, 2)._isubtract(complex(1, 2)), // 0, 0
// complex multiplication
complex(1, 2)._imultiply(complex(1, 2)) // -3, 4
// complex division
complex(1, 2)._idivide(complex(1, 3)) // 0.7, 0.1

```

## Static Functions

These functions do not modify the original complex number and always return a new number. In my opinion, lots more useful, but to each their own. Notice that these are the same as the Mutator Functions without the underscore.

### Scalar Operations

```javascript

// scalar addition
complex(1, 2).sadd(3) // 4, 2
// scalar subtraction
complex(1, 2).ssubtract(5) // -4, 2
// scalar multiplication
complex(1, 2).smultiply(2) // 2, 4
// scalar division
complex(1, 2).sdivide(2) // 0.5, 1

```

### Complex Operations

```javascript

// complex addition
complex(1, 2).iadd(complex(1, 2)) // 2, 4
// complex subtraction
complex(1, 2).isubtract(complex(1, 2)), // 0, 0
// complex multiplication
complex(1, 2).imultiply(complex(1, 2)) // -3, 4
// complex division
complex(1, 2).idivide(complex(1, 3)) // 0.7, 0.1

```

## Access Functions

```javascript

// return the values of the complex number in an list
complex(1, 2).value() // [1, 2]
// return the real part of the complex number
complex(1, 2).re() // 1
// return the imaginary part of the complex number
complex(1, 2).im() // 2
// return the type of the number
complex(1, 2).type() // "Complex Number"

```

## Other Useful Functions

```javascript

complex(1, 2).conjugate()
complex(1, 2).reciprocal()
complex(1, 2).normalize()
complex(1, 2).sqrLength()
complex(1, 2).length()
complex(1, 2).area()
complex(1, 2).clone()
// returns the counterclockwise angle between the vector [1,0]
// and the complex number. radians 0 -> 2PI
complex(1, 2).angle()

```

---
_Source: https://npm.io/package/gd_complex · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
