diff --git a/Dual_Numbers.py b/Dual_Numbers.py
index 93348fffcb3f751d7682ada98e8091544cd9b737..fca7aad801d7e29266a52a0ec1fa0086fe010ebf 100644
--- a/Dual_Numbers.py
+++ b/Dual_Numbers.py
@@ -79,7 +79,7 @@ class Dual_Number:
             b2 = b
         # Fin de la partie pour assurer la compatibilité entre int/float et Dual_Numbers
 
-        return Dual_Number(real=a.r * b.r, dual=a.r * b.d + a.d * b.r)
+        return Dual_Number(real=a.r * b2.r, dual=a.r * b2.d + a.d * b2.r)
 
     # multiplication a.__rmul__(b)
     __rmul__ = __mul__
@@ -103,13 +103,38 @@ class Dual_Number:
         return Dual_Number.mult_inverse(a) * b
 
     def exp(a):
-        return Dual_Number(np.exp(a.r), np.exp(a.r) * a.d)
+        if type(a) in [int, float]:
+            a2 = Dual_Number(real=a, dual=0)
+        else:
+            a2 = a
+        return Dual_Number(real=np.exp(a2.r), dual=(np.exp(a2.r) * a2.d))
 
     def sin(a):
-        return Dual_Number(np.sin(a.r), np.cos(a.r) * a.d)
+        if type(a) in [int, float]:
+            a2 = Dual_Number(real=a, dual=0)
+        else:
+            a2 = a
+        return Dual_Number(real=(np.sin(a2.r)), dual=(np.cos(a2.r) * a2.d))
 
     def cos(a):
-        return Dual_Number(np.cos(a.r), -np.sin(a.r) * a.d)
+        if type(a) in [int, float]:
+            a2 = Dual_Number(real=a, dual=0)
+        else:
+            a2 = a
+        return Dual_Number(real=(np.cos(a2.r)), dual=(-np.sin(a2.r) * a2.d))
+
+    def log(a):
+        """
+        Natural log (ln)
+
+        Returns:
+
+        """
+        if type(a) in [int, float]:
+            a2 = Dual_Number(real=a, dual=0)
+        else:
+            a2 = a
+        return Dual_Number(real=(np.log(a2.r)), dual=((1 / a2.r) * a2.d))
 
 
 def Exercice1_a():
@@ -154,10 +179,19 @@ def sigmoid_exo():
     [print(f"Sigmoid de {i} = {sigmoid(i)}") for i in range(10)]
 
 
+def test():
+    a = Dual_Number(2, 1)
+    b = Dual_Number(2, -1)
+    c = Dual_Number(1, 2)
+
+    print(f"(a / b) * c = {a / b * c}")
+
+
 if __name__ == "__main__":
-    Exercice1_a()
-    Exercice1_b()
-    Exercice1_c()
-    Exercice1_d()
-    Test_exp_sin()
-    sigmoid_exo()
+    test()
+    # Exercice1_a()
+    # Exercice1_b()
+    # Exercice1_c()
+    # Exercice1_d()
+    # Test_exp_sin()
+    # sigmoid_exo()