diff options
Diffstat (limited to 'lib/matrix.rb')
-rw-r--r-- | lib/matrix.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/matrix.rb b/lib/matrix.rb index eaa4bfc6e1..77c35b3475 100644 --- a/lib/matrix.rb +++ b/lib/matrix.rb @@ -1685,6 +1685,7 @@ end # * Vector.[](*array) # * Vector.elements(array, copy = true) # * Vector.basis(size: n, index: k) +# * Vector.zero(n) # # To access elements: # * #[](i) @@ -1697,6 +1698,7 @@ end # * #angle_with(v) # * Vector.independent?(*vs) # * #independent?(*vs) +# * #zero? # # Vector arithmetic: # * #*(x) "is matrix or number" @@ -1769,6 +1771,17 @@ class Vector end # + # Return a zero vector. + # + # Vector.zero(3) => Vector[0, 0, 0] + # + def Vector.zero(size) + raise ArgumentError, "invalid size (#{size} for 0..)" if size < 0 + array = Array.new(size, 0) + new convert_to_array(array, false) + end + + # # Vector.new is private; use Vector[] or Vector.elements to create. # def initialize(array) @@ -1882,6 +1895,13 @@ class Vector self.class.independent?(self, *vs) end + # + # Returns +true+ iff all elements are zero. + # + def zero? + all?(&:zero?) + end + #-- # COMPARING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- #++ |