Class: Hornetseye::Sequence

Inherits:
Object show all
Extended by:
MultiArrayConstructor
Defined in:
lib/multiarray/sequence.rb

Overview

Class for representing uniform arrays

Class Method Summary collapse

Methods included from MultiArrayConstructor

constructor_shortcut

Class Method Details

.[](*args) ⇒ Node

Convert array to uniform array

A native type which fits all elements is determined and used to create a uniform array of those elements.

Parameters:

Returns:

  • (Node)

    Returns native array with values.



63
64
65
66
67
68
69
70
71
# File 'lib/multiarray/sequence.rb', line 63

def []( *args )
  target = Node.fit args
  if target.dimension == 0
    target = Hornetseye::MultiArray target, 1
  elsif target.dimension > 1
    target = Hornetseye::MultiArray OBJECT, 1
  end
  target[*args]
end

.import(typecode, string, size) ⇒ Node

Import array from string

Create an array from raw data provided as a string.

Parameters:

  • typecode (Class)

    Type of the elements in the string.

  • string (String)

    String with raw data.

  • size (Integer)

    Size of array.

Returns:

  • (Node)

    One-dimensional array with imported data.



44
45
46
47
48
49
50
51
52
53
# File 'lib/multiarray/sequence.rb', line 44

def import( typecode, string, size )
  t = Hornetseye::Sequence typecode
  if string.is_a? Malloc
    memory = string
  else
    memory = Malloc.new t.storage_size(size)
    memory.write string
  end
  t.new size, :memory => memory
end

.new(element_type, size) ⇒ Node

Allocate new uniform array

Parameters:

  • element_type (Class)

    Type of array elements.

  • size (Integer)

    Number of elements.

Returns:

  • (Node)

    Returns uninitialised native array.



31
32
33
# File 'lib/multiarray/sequence.rb', line 31

def new( element_type, size )
  MultiArray.new element_type, size
end