changeset 454:a926ad176efb

Add negative
author Chris Cannam
date Thu, 24 Oct 2013 18:01:26 +0100
parents c11bf7397e0e
children 7cbc8d88bbac
files src/may/vector/blockfuncs.yeti src/may/vector/test/test_blockfuncs.yeti
diffstat 2 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/may/vector/blockfuncs.yeti	Thu Oct 24 15:13:02 2013 +0100
+++ b/src/may/vector/blockfuncs.yeti	Thu Oct 24 18:01:26 2013 +0100
@@ -107,6 +107,9 @@
 abs' =
     vec.fromList . (map abs) . vec.list;
 
+negative =
+    vec.fromList . (map (0-)) . vec.list;
+
 sqrt' =
     vec.fromList . (map sqrt) . vec.list;
 
@@ -137,6 +140,7 @@
 divideBy is number -> vector -> vector, 
 scaled is number -> vector -> vector,
 abs is vector -> vector = abs',
+negative is vector -> vector,
 sqr is vector -> vector,
 sqrt is vector -> vector = sqrt',
 rms is vector -> number,
--- a/src/may/vector/test/test_blockfuncs.yeti	Thu Oct 24 15:13:02 2013 +0100
+++ b/src/may/vector/test/test_blockfuncs.yeti	Thu Oct 24 18:01:26 2013 +0100
@@ -4,7 +4,7 @@
 stdSqrt = sqrt;
 
 { zeros, consts, ones, fromList, list } = load may.vector;
-{ sum, max, min, maxindex, minindex, mean, add, subtract, multiply, divideBy, scaled, abs, sqr, sqrt, rms, unityNormalised, fftshift, ifftshift } = load may.vector.blockfuncs;
+{ sum, max, min, maxindex, minindex, mean, add, subtract, multiply, divideBy, scaled, abs, negative, sqr, sqrt, rms, unityNormalised, fftshift, ifftshift } = load may.vector.blockfuncs;
 { compare } = load may.test.test;
 
 [
@@ -83,6 +83,11 @@
         compare (list (abs (fromList [1,2,-3]))) [1,2,3]
 ),
 
+"negative": \(
+    compare (list (negative (ones 0))) [] and
+        compare (list (negative (fromList [1,2,-3]))) [-1,-2,3]
+),
+
 "sqr": \(
     compare ((list . sqr . zeros) 0) [] and
         compare ((list . sqr . ones) 5) [1,1,1,1,1] and