opis 1.1.0

Opis is an arithmetic library for integer numbers written in Rust.
Documentation
## Rust Opis

Opis is an arithmetic library for integer numbers written in Rust.

### Usage


In your `Cargo.toml`:

```

[dependencies]
opis = "1.1.0"

```

In your Rust file:

```

use opis::Int;

```

### Features

- Representation of integers of any length.
- Integer bits are stored in big endian order.
- The four groups of functions are conversion, arithmetic, comparison & bitwise.
- Conversion functions supports radix 2, 10 & 16 formatted strings.
- Arithmetic functions are addition, subtration, multiplication, division, remainder, modulo, exponentiation & modular inverse.
- Comparision functions for greater, less and equal.
- Four Bitwise functions are included: not, and, or, xor.

### API


#### Conversion Functions


`From Str`:

```

let integer: Int = Int::from_str("6747", 10)?;

```

`To Str`:

```

let binary_str: String = integer.to_str(2);

```

#### Arithmetic Functions


`Addition`

```

let s = int_a.add(&int2_b);

```

`Subtraction`

```

let d = int_a.sub(&int_b).unwrap();

```

`Multiplication`

```

let p = int_a.mul(&int_b);

```

`Division`

```

let q = int_a.div(&int_b).unwrap();

```

`Remainder`

```

let r = int_a.rem(&int_b).unwrap();

```

`Modulo`

```

let m = int_a.modulo(&int_b).unwrap();

```

`Exponentiation`

```

let p = int_a.pow(&int_e);

```

`Modular Inverse`

```

let mi = int_a.mod_inv(&int_m);

```

#### Comparison Functions


```

let ans_1: bool = int_a.is_greater(&int_b);

let ans_2: bool = int_a.is_less(&int_b);

let ans_3: bool = int_a.is_equal(&int_b);

```

#### Bitwise Functions


`NOT`

```

let n = int_x.not();

```

`AND`

```

let a = int_x.and(&int_y);

```

`OR`

```

let o = int_x.or(&int_y);

```

`XOR`

```

let x = int_x.xor(&int_y);

```

### Future

- Benchmarking Performance

### Contribution

Pull requests, bug reports and any kind of suggestion are welcome.

2021-12-12