Class: Eigen::VectorX

Inherits:
Object
  • Object
show all
Defined in:
lib/eigen/vectorx.rb,
ext/eigen/eigen.cpp

Overview

A variable-length vector holding floating-point numbers

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(size = 0) ⇒ Object

Creates a new vector

Parameters:

  • size (Numeric) (defaults to: 0)

Class Method Details

._load(coordinates) ⇒ Object

:nodoc:



48
49
50
51
52
# File 'lib/eigen/vectorx.rb', line 48

def self._load(coordinates) # :nodoc:
    m = new()
    m.from_a(Marshal.load(coordinates))
    m
end

.from_a(array) ⇒ Object



17
18
19
20
21
# File 'lib/eigen/vectorx.rb', line 17

def self.from_a(array)
    v = VectorX.new
    v.from_a(array)
    v
end

Instance Method Details

#*(scalar) ⇒ VectorX

Multiplies by a scalar

Parameters:

  • scalar (Numeric)

    the scalar

Returns:

#+(v) ⇒ VectorX

Sum

Parameters:

Returns:

#-(v) ⇒ VectorX

Subtracts

Parameters:

Returns:

#-@VectorX

Negation

Returns:

#/(scalar) ⇒ VectorX

Divides by a scalar

Parameters:

  • scalar (Numeric)

    the scalar

Returns:

#==(v) ⇒ Object



30
31
32
33
# File 'lib/eigen/vectorx.rb', line 30

def ==(v)
    v.kind_of?(self.class) &&
        __equal__(v)
end

#[](index) ⇒ Numeric

Returns an element

Parameters:

  • index (Integer)

    the element index (0, 1 or 2)

Returns:

  • (Numeric)

#[]=(index, value) ⇒ Numeric

Sets an element

Parameters:

  • index (Integer)

    the element index (0, 1 or 2)

  • value (Numeric)

Returns:

  • (Numeric)

#_dump(level) ⇒ Object

:nodoc:



44
45
46
# File 'lib/eigen/vectorx.rb', line 44

def _dump(level) # :nodoc:
    Marshal.dump(to_a)
end

#approx?(v, threshold = dummy_precision) ⇒ Boolean

Verifies that two vectors are within threshold of each other, elementwise

Parameters:

Returns:

  • (Boolean)

#dot(v) ⇒ VectorX

Dot product

Parameters:

Returns:

#dupObject



4
5
6
# File 'lib/eigen/vectorx.rb', line 4

def dup
    VectorX.from_a(to_a)
end

#from_a(array) ⇒ Object



23
24
25
26
27
28
# File 'lib/eigen/vectorx.rb', line 23

def from_a(array)
    resize(array.size())
    for i in 0..array.size()-1
        self[i] = array[i]
    end
end

#normNumeric

The vector’s norm

Returns:

  • (Numeric)

#normalizeVectorX

Returns a normalized self

Returns:

#normalize!void

This method returns an undefined value.

Normalizes self

#resize(new_size) ⇒ Numeric

Changes the vector’s size

Parameters:

  • new_size (Integer)

Returns:

  • (Numeric)

#sizeInteger

Returns the vector’s size

Returns:

  • (Integer)

#to_aObject

Returns the array value in a vector



9
10
11
12
13
14
15
# File 'lib/eigen/vectorx.rb', line 9

def to_a()
    a = []
    for i in 0..size()-1
            a << self[i]
    end
    a
end

#to_sObject

:nodoc:



35
36
37
38
39
40
41
42
# File 'lib/eigen/vectorx.rb', line 35

def to_s # :nodoc:
    str = "VectorX("
    for i in 0..size()-1
        str += "#{self[i]} "
    end
    str[-1] = ")"
    str
end