aboutsummaryrefslogtreecommitdiff
path: root/src/scalar.py
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2024-05-29 18:11:05 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2024-05-29 18:11:05 +0530
commit22f6c7e5b3fd45480f2ef7827474fdb9d6c6f82c (patch)
tree7d97cc24147ff1d8ffa7e1978a13418514df5c8b /src/scalar.py
parenta4c99c97b66c6aed0737430aa9bdeb8ec64e3d9f (diff)
Value -> Scalar
Diffstat (limited to 'src/scalar.py')
-rw-r--r--src/scalar.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/scalar.py b/src/scalar.py
new file mode 100644
index 0000000..a67b7ae
--- /dev/null
+++ b/src/scalar.py
@@ -0,0 +1,20 @@
+class Scalar:
+ def __init__(self, data, _children=(), _op='', label='') -> None:
+ self.label = label
+
+ self.data = float(data)
+ self.grad = 0.0
+
+ self._prev = set(_children)
+ self._op = _op
+
+ def __repr__(self) -> str:
+ return f'Scalar({self.data})'
+
+ def __add__(self, y):
+ result = self.data + y.data
+ return Scalar(result, (self, y), _op='+')
+
+ def __mul__(self, y):
+ result = self.data * y.data
+ return Scalar(result, (self, y), _op='*')