Skip to content

psorowka/vectorops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vectorops

Advanced Vector Operations for Ruby.

READ THIS

This is work in progress and only very few operations are implemented. Feel free to contribute by adding more vector operations like multiplication and so on.

Basic

When you want to perform vector operations like summation in ruby, you cannot use the array class as it behaves like this:

  v1 = [1,1,1,0,0,0]
  v2 = [1,1,1,1,1,1]

  v1 + v2
  # -> [1,1,1,0,0,0,1,1,1,1,1,1]

For this purpose, there is a Vector class, defined in Ruby's stdlib. With Vector objects it's possible to do the following:

  require 'matrix.rb'

  v1 = Vector[1,1,1,0,0,0]
  v2 = Vector[1,1,1,1,1,1]

  v1 + v2
  # -> Vector[2,2,2,1,1,1]

which is exactly what you want. Unfortunately, as of now, the libary seems not to be quite mature, as neither of the following will work by default:

  v1 = Vector[1,1,1,0,0,0]
  v2 = Vector[1,1,1,1,1,1]

  # assigning values to a vector is impossible 
  # as no []= method is defined in the lib
  v1 += v2

  # adding up subsets of the vectors is not possible, as 
  # the [] accessor returns an array rather than a Vector
  v1[0..3] + v2[0..3]

  # adding a scalar to a vector doesn't work as expected as 
  # the + method doesn't handle this case
  v1 + 2

Using the vectorops Gem, the following operations work like expected

  v1 = Vector[1,1,1,0,0,0]
  v2 = Vector[1,1,1,1,1,1]

  v1[0..3]
  # -> Vector[1,1,1]

  v1 += v2
  # -> v1 == Vector[2,2,2,1,1,1]

  v1[0..3] += v2[0..3]
  # -> v1 == Vector[2,2,2,0,0,0]

  v1 + 2
  # -> Vector[3,3,3,1,1,1]

Usage

Install vectorops using the command

  gem install vectorops

Or include the vectorops gem into your Gemfile

  gem 'vectorops'

About

Advanced Vector Operations for Ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages