gaussiant 0.8.0

Gaussian integers
Documentation
[![crate](https://img.shields.io/crates/v/gaussiant.svg)](https://crates.io/crates/gaussiant)
[![documentation](https://docs.rs/gaussiant/badge.svg)](https://docs.rs/gaussiant)
[![stable](https://github.com/pierwill/gaussiant/actions/workflows/stable.yml/badge.svg)](https://github.com/pierwill/gaussiant/actions/workflows/stable.yml)
[![nightly](https://github.com/pierwill/gaussiant/actions/workflows/nightly.yaml/badge.svg)](https://github.com/pierwill/gaussiant/actions/workflows/nightly.yaml)

A [Gaussian integer] is a complex number whose real and imaginary parts are both integers.

`gaussiant` provides the [`GaussianInt`] type,
which is a wrapper around [`num_complex::Complex`]
with additional methods for number theoretical computation.

## Example

If a prime number *p* is congruent to 3 modulo 4, then it is a Gaussian prime ([Wikipedia]).

```rust
use gaussiant::{GaussianInt, gaussint};

fn main() {
    let p = gaussint!(7);
    assert_eq!(
        p.congruent(gaussint!(3), gaussint!(4)),
        p.is_gaussian_prime()
    );
}
```

[`num_complex::Complex`]: https://docs.rs/num-complex/latest/num_complex/struct.Complex.html
[Gaussian integer]: https://en.wikipedia.org/wiki/Gaussian_integer
[`GaussianInt`]: https://docs.rs/gaussiant/latest/gaussiant/struct.GaussianInt.html
[Wikipedia]: https://en.wikipedia.org/wiki/Gaussian_integer#Gaussian_primes