From 849d64a8420afe17bba1cec6e9bd557cca81b860 Mon Sep 17 00:00:00 2001
From: EdouardParis <mail@edouard.paris>
Date: Mon, 30 May 2016 16:10:17 +0200
Subject: [PATCH] Add algo_ex1

---
 src/algo_ex1.cpp | 23 +++++++++++++++++++++++
 src/algo_ex1.h   |  4 ++++
 2 files changed, 27 insertions(+)
 create mode 100644 src/algo_ex1.cpp
 create mode 100644 src/algo_ex1.h

diff --git a/src/algo_ex1.cpp b/src/algo_ex1.cpp
new file mode 100644
index 0000000..e6c32ea
--- /dev/null
+++ b/src/algo_ex1.cpp
@@ -0,0 +1,23 @@
+//algo used by question 3 and 5
+//gmp ne retourne que la partie entière inférieure lors de ses opérations.
+#include <ctime>
+#include <gmpxx.h>
+
+time_t sqrt(mpz_class const& a, mpz_class & res) 
+{
+  mpz_class r1 = a; 
+  mpz_class r2 = a; 
+
+  struct timespec t0, t1;
+  
+  clock_gettime( CLOCK_REALTIME, &t0);
+  while (r2 < r1) {
+    r2 = (r1 + (a / r1))/2;
+    r1 = r2; 
+  }
+  res = r1;
+  clock_gettime( CLOCK_REALTIME, &t1);
+  
+  time_t t_res = 1000.*(t1.tv_sec-t0.tv_sec) + (t1.tv_nsec-t0.tv_nsec)/1000000.;
+  return t_res;
+}; 
diff --git a/src/algo_ex1.h b/src/algo_ex1.h
new file mode 100644
index 0000000..a9a13a6
--- /dev/null
+++ b/src/algo_ex1.h
@@ -0,0 +1,4 @@
+#include <ctime>
+#include <gmpxx.h>
+
+time_t sqrt(mpz_class const& a, mpz_class & res); 
-- 
GitLab