﻿ Thiago's website

## Math library

### Introduction

What does this library?

At start, the library will focus in the oldest and most elementary branch of mathematics - arithmetic.

Basic operations are implemented to operate on integers and natural numbers.

Integers:

```Z = {.. , -2, -1, 0, 1, 2, ...}
```

Natural numbers

```N = {0, 1, 2, ...}
```

### How the library sees the numbers?

The library uses the positional notation

```{ d[n], ... d[1], d[0] }       (d[0] is less significative)
base
```

base is the number of unique digits including zero.

e.g. The number 15 in decimal notation (base 10) is represented as:

```                    1         0
{ 1, 5 }    = 1 * 10  + 5 * 10
10
```

### What is the number interface?

Algorithms have access to the number representation using iterators.

```  { !?!?  , d[n], ... d[1], d[0]  }
^                       ^
end                     begin        (iterators, pointers)

```

Basic math lib algorithms will use this abstraction.

Algorithms