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

method_missing

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.



54
55
56
57
58
59
60
61
62
# File 'lib/multiarray/sequence.rb', line 54

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

.import(typecode, string, size) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/multiarray/sequence.rb', line 35

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

.new(typecode, size) ⇒ Node

Allocate new uniform array

Parameters:

  • typecode (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( typecode, size )
  MultiArray.new typecode, size
end