# ComplexNum

A Typed Complex Number library implements mathematical functions for imaginary numbers.The Complex Class accept integers, floating-point numbers or complex numbers as arguments. Like Other Dart data types Complex class extends Object class

## Features

### polar coordinates

• `X` Phase
• `X` Modulus
• `X` Rectangular

### Power and logarithmic functions

• `X` Exponential
• `X` Log == Ln
• `X` Log with base 10
• `X` Square root

### Trigonometric functions

• `X` Sine
• `X` Cosine
• `X` Tangent
• `X` Inverse Sine
• `X` Inverse Cosine
• `X` Inverse Tangent

### Hyperbolic functions

• `X` Hyperbolic sine
• `X` Hyperbolic Cosine
• `X` Hyperbolic Tangent
• `X` Inverse Hyperbolic sine
• `X` Inverse Hyperbolic Cosine
• `X` Inverse Hyperbolic Tangent

### Classification functions

• `X` Finite
• `X` Infinite
• `X` NaN
• `X` Closeness

## Getting started

### Initialization

``````  final c1 = Complex(7, 5.5);
final c2 = Complex();
final c3 = Complex(5);
``````

Ouputs

``````(7+5.5𝑖)
(0+0𝑖)
(5+0𝑖)

``````

And the type is Detected autmaticly

``````Complex<int, double>
Complex<num, num>
Complex<int, num>

``````

You can also explicitly define the type

``````  final c = Complex<double, double>();

``````

The output would be

``````(0+0.0𝑖)

``````

### Arithmetic operations

`````` final c2 = Complex<int, double>() +
Complex(1, 5) * Complex<int, double>(3, 2) / Complex(10, 10);
``````

Outputs

``````(0.5+1.2𝑖)

``````

### Other Operations

``````  final c1 = Complex(7, 5.5).phase();
final c2 = Complex<int, double>(8, 3).exp();
final c3 = Complex(5, 2).cos();
final c4 = Complex(5, 2).sin();
``````

Outputs

``````
0.6659692373791098
(-2951.1260398524787+420.67281515745424𝑖)
(1.0671926518731156-3.4778844858991573𝑖)
(-3.6076607742131563+1.0288031496599335𝑖)

``````