summaryrefslogtreecommitdiff
path: root/game/python-extra/utils/math.py
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-12-09 13:32:01 -0300
committerJesusaves <cpntb1@ymail.com>2020-12-09 13:32:01 -0300
commit63afe4145f410a844c647d4e3f1059f568175c1e (patch)
tree15da6a890c78d73370f44f9fd5d59badfbbe60e4 /game/python-extra/utils/math.py
downloadclient-init.tar.gz
client-init.tar.bz2
client-init.tar.xz
client-init.zip
Initial commit, forked from Spheresinit
Diffstat (limited to 'game/python-extra/utils/math.py')
-rw-r--r--game/python-extra/utils/math.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/game/python-extra/utils/math.py b/game/python-extra/utils/math.py
new file mode 100644
index 0000000..eaae187
--- /dev/null
+++ b/game/python-extra/utils/math.py
@@ -0,0 +1,16 @@
+import collections
+import operator
+
+# py3 doesn't include reduce as a builtin
+try:
+ reduce
+except NameError:
+ from functools import reduce
+
+
+def product(sequence, initial=1):
+ """like the built-in sum, but for multiplication."""
+ if not isinstance(sequence, collections.Iterable):
+ raise TypeError("'{}' object is not iterable".format(type(sequence).__name__))
+
+ return reduce(operator.mul, sequence, initial)