From 9d1dcff196895bc9781170fe28336a6bdc2c8ed8 Mon Sep 17 00:00:00 2001
From: Maxxhim <maxc2507@gmail.com>
Date: Fri, 3 Apr 2020 12:27:25 +0200
Subject: [PATCH] Patch v1 Division & MatMul + Exp + Log + Sin + Cos + Tan

---
 functions.py | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/functions.py b/functions.py
index 68b25d9..5160daf 100644
--- a/functions.py
+++ b/functions.py
@@ -104,7 +104,7 @@ class Div(_Function):
     def __init__(self, x, y):
         super().__init__("Div", x, y)
         #######################################################################
-        # TODO: Implement the forward pass and put the result in self.result.
+        # Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
         self.result = self.x.data / self.y.data
@@ -114,7 +114,7 @@ class Div(_Function):
 
     def _backward(self, grad):
         #######################################################################
-        # TODO: Implement the derivative dx for this opetation and add the
+        # Implement the derivative dx for this opetation and add the
         # result of the chain rule on self.dx.
         #######################################################################
         self.dx = grad * (1/self.y.data)
@@ -130,10 +130,10 @@ class MatMul(_Function):
     def __init__(self, x, y):
         super().__init__("MatMul", x, y)
         #######################################################################
-        # TODO: Implement the forward pass and put the result in self.result.
+        # Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
-        self.result = None
+        self.result = np.dot(self.x.data, self.y.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -159,7 +159,7 @@ class Exp(_Function):
         # TODO: Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
-        self.result = None
+        self.result = np.exp(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -169,7 +169,7 @@ class Exp(_Function):
         # TODO: Implement the derivative dx for this opetation and add the
         # result of the chain rule on self.dx.
         #######################################################################
-        self.dx = None
+        self.dx = np.exp(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -184,7 +184,7 @@ class Log(_Function):
         # TODO: Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
-        self.result = None
+        self.result = 1/(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -194,7 +194,7 @@ class Log(_Function):
         # TODO: Implement the derivative dx for this opetation and add the
         # result of the chain rule on self.dx.
         #######################################################################
-        self.dx = None
+        self.dx = 1/(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -209,7 +209,7 @@ class Sin(_Function):
         # TODO: Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
-        self.result = None
+        self.result = np.cos(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -219,7 +219,7 @@ class Sin(_Function):
         # TODO: Implement the derivative dx for this opetation and add the
         # result of the chain rule on self.dx.
         #######################################################################
-        self.dx = None
+        self.dx = np.cos(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -234,7 +234,7 @@ class Cos(_Function):
         # TODO: Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
-        self.result = None
+        self.result = -np.sin(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -244,7 +244,7 @@ class Cos(_Function):
         # TODO: Implement the derivative dx for this opetation and add the
         # result of the chain rule on self.dx.
         #######################################################################
-        self.dx = None
+        self.dx = -np.sin(self.x.data)
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -259,7 +259,7 @@ class Tan(_Function):
         # TODO: Implement the forward pass and put the result in self.result.
         # The notbook provide you the formulas for this operation.
         #######################################################################
-        self.result = None
+        self.result = 1/np.square(np.cos(self.x.data))
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
@@ -269,7 +269,7 @@ class Tan(_Function):
         # TODO: Implement the derivative dx for this opetation and add the
         # result of the chain rule on self.dx.
         #######################################################################
-        self.dx = None
+        self.dx = 1/np.square(np.cos(self.x.data))
         #######################################################################
         # --------------------------- END OF YOUR CODE ------------------------
         #######################################################################
-- 
GitLab