...
 
Commits (2)
......@@ -54,7 +54,7 @@ Deux algorithmes sont utilisés par chaque threads calculateurs.
Le premier algorithme utilisé dans ce projet est le sieve d'Eratosthène. Nous l'utilisons pour générer un
tableau de nombre premiers partagé entre les threads calculateurs. Ce tableau va de `2` à `2 ** 16`
et nous sert à factoriser les nombres de `2` à `2 ** 32`. Pour créer ce tableau de nombres premiers nous
et nous sert à factoriser les nombres de `2` à `2 ** 32 -1`. Pour créer ce tableau de nombres premiers nous
allouons un autre tableau qui nous servira de pochoir. Dès que nous rencontrons un nombre qui n'est pas "coché"
nous l'ajoutons à la liste des premiers et nous "cochons" tous les multiples de ce nombre. Cocher dans le code
revient à écrire un 1 à l'index concerné, le tableau étant initialisé par des 0.\
......@@ -121,51 +121,16 @@ Dans notre cas, à chaque itération `x_i = f(x_i)` et `y_i = f(f(y_i))`. Puisqu
Si un cycle est détecté il suffit de relancer l'algorithme, rappelez-vous dans la fonction `f(x) = x^2 + a mod N` : `a` est un nombre aléatoire. Dès lors en relançant la fonction les valeurs `x_i` et `y_i` seront différentes. La détection de cycle est extrêmement rare, malgré tous les tests exécutés nous n'avons jamais dû faire face à ce problème. Excepté lors des tests visants à provoquer une détection de cycle en passant un nombre inférieur à `2^32`.
### Break down into end to end tests
### Structure du code
Explain what these tests test and why
Le code est structuré en dossier afin de faciliter sa lisibilité.
```
Give an example
```
### And coding style tests
Explain what these tests test and why
Dans le dossier "factorization" se trouve les deux algorithmes de factorisation, "factor_small_integer" reprend l'implémentation du Sieve d'Eratosthenes tandis que "factor_big_integer" reprend celle du Pollard Rho.
```
Give an example
```
## Deployment
Add additional notes about how to deploy this on a live system
## Built With
* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
* [Maven](https://maven.apache.org/) - Dependency Management
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds
## Contributing
Please read [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) for details on our code of conduct, and the process for submitting pull requests to us.
## Versioning
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).
## Authors
* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)
See also the list of [contributors](https://github.com/your/project/contributors) who participated in this project.
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
## Appendices
### Scripts
......
......@@ -109,7 +109,7 @@ Data *__Data__append(Data *self, Data *new_node)
/**
* @brief Free the allocated space by @c self
*/
Data *__Data__destroy(Data *self)
Data *__Data__destroy(Data *self, void *a __attribute__((unused))) //correction compilation
{
if(!self)
......
......@@ -198,6 +198,7 @@ void pollard_rho(Data *self)
mpz_clear(gcd);
mpz_clear(x);
mpz_clear(y);
mpz_clear(a); //correction de la fuite de mémoire
}
Data *factor_big_integer(Data *self){
......
......@@ -3,7 +3,7 @@
#include "factorization.h"
#include "data.h"
void *consume(void){
void *consume(void *a __attribute__((unused))){ //correction compilation
struct timespec tm;
while(1)
{
......