summaryrefslogtreecommitdiff
path: root/Functions/Math
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/Math')
-rw-r--r--Functions/Math/.distfiles2
-rw-r--r--Functions/Math/zmathfunc34
2 files changed, 36 insertions, 0 deletions
diff --git a/Functions/Math/.distfiles b/Functions/Math/.distfiles
new file mode 100644
index 000000000..f03668b3a
--- /dev/null
+++ b/Functions/Math/.distfiles
@@ -0,0 +1,2 @@
+DISTFILES_SRC='
+'
diff --git a/Functions/Math/zmathfunc b/Functions/Math/zmathfunc
new file mode 100644
index 000000000..4ff40700d
--- /dev/null
+++ b/Functions/Math/zmathfunc
@@ -0,0 +1,34 @@
+#autoload
+
+zsh_math_func_min() {
+ local result=$1
+ shift
+ local arg
+ for arg ; do
+ (( $arg < result )) && result=$arg
+ done
+ (( result )) # return
+}
+functions -M min 1 -1 zsh_math_func_min # at least one argument
+
+zsh_math_func_max() {
+ local result=$1
+ shift
+ local arg
+ for arg ; do
+ (( $arg > result )) && result=$arg
+ done
+ (( result )) # return
+}
+functions -M max 1 -1 zsh_math_func_max # at least one argument
+
+zsh_math_func_sum() {
+ local sum
+ local arg
+ for arg ; do
+ (( sum += $arg ))
+ done
+ (( sum ))
+}
+functions -M sum 0 -1 zsh_math_func_sum
+