Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gd_complex

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gd_complex

Complex Number Arithmetic

  • 0.0.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

GD Complex

Import


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

Create


// 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.


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


// 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


// 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


// 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


// 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


// 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


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()

Keywords

FAQs

Package last updated on 16 Jun 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc