Class: Hornetseye::Unmask
Overview
Class for representing inverse masking operations
Class Method Summary collapse
-
.finalised? ⇒ Boolean
Check whether objects of this class are finalised computations.
Instance Method Summary collapse
-
#compilable? ⇒ Boolean
Check whether this term is compilable.
-
#demand ⇒ Node
Perform masking operation.
-
#descriptor(hash) ⇒ String
Get unique descriptor of this object.
-
#initialize(dest, source, m, index, default) ⇒ Unmask
constructor
Constructor.
- #shape ⇒ Object
-
#strip ⇒ Array<Array,Node>
Strip of all values.
-
#subst(hash) ⇒ Node
Substitute variables.
- #typecode ⇒ Object
-
#variables ⇒ Set
Get variables contained in this term.
Methods inherited from Node
#+@, #<=>, ===, #[], #[]=, #allocate, #b=, #b_with_decompose, basetype, #basetype, #between?, bool, byte, #check_shape, #clip, #coerce, coercion_bool, coercion_byte, coercion_maxint, #collect, compilable?, #components, cond, #conditional, #convolve, #decompose, define_binary_op, define_unary_op, descriptor, #diagonal, #dilate, #dimension, dimension, #downsample, #dup, #each, #empty?, #eq_with_multiarray, #erode, #fill!, #finalised?, #flip, float, float_scalar, floating, #fmod_with_float, #force, #g=, #g_with_decompose, #gauss_blur, #gauss_gradient, #get, #height, #histogram, #histogram_with_rgb, identity, #if, #if_else, #imag=, #imag_with_decompose, indgen, #inject, #inspect, #integral, #lut, #lut_with_rgb, #malloc, #mask, match, #matched?, #max, maxint, #mean, #memorise, #memory, #min, #normalise, #prod, #r=, #r_with_decompose, #range, #real=, #real_with_decompose, #reshape, #rgb?, rgb?, #roll, scalar, shape, #shift, #simplify, #size, #sobel, #stretch, #stride, #strides, strip, subst, #sum, #swap_rgb_with_scalar, #table, #to_a, #to_s, to_s, #to_type, to_type, #to_type_with_identity, #to_type_with_rgb, #transpose, typecode, typecodes, #unmask, #unroll, variables, #warp, #width
Methods included from Field_::Match
Methods included from FLOAT_::Match
Methods included from OBJECT::Match
Methods included from COMPLEX_::Match
Methods included from BOOL::Match
Methods included from RGB_::Match
Methods included from INT_::Match
Constructor Details
#initialize(dest, source, m, index, default) ⇒ Unmask
Constructor
44 45 46 |
# File 'lib/multiarray/unmask.rb', line 44 def initialize( dest, source, m, index, default ) @dest, @source, @m, @index, @default = dest, source, m, index, default end |
Class Method Details
.finalised? ⇒ Boolean
Check whether objects of this class are finalised computations
30 31 32 |
# File 'lib/multiarray/unmask.rb', line 30 def finalised? false end |
Instance Method Details
#compilable? ⇒ Boolean
Check whether this term is compilable
150 151 152 |
# File 'lib/multiarray/unmask.rb', line 150 def compilable? [ @dest, @source, @m, @index, @default ].all? { |value| value.compilable? } end |
#demand ⇒ Node
Perform masking operation
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/multiarray/unmask.rb', line 74 def demand if variables.empty? index = @index.simplify if @m.dimension > 0 @m.shape.last.times do |i| m = @m.element INT.new( i ) dest = @dest.element INT.new( i ) default = @default.dimension > 0 ? @default.element( INT.new( i ) ) : @default Unmask.new( dest, @source, m, index, default ).demand end else @m.if_else( proc do Store.new( @dest, @source.element( index ) ).demand index.assign index + 1 end, proc do Store.new( @dest, @default ).demand end ) end if @index.is_a? Pointer_ @index.store index else @index.assign index end @dest else super end end |
#descriptor(hash) ⇒ String
Get unique descriptor of this object
55 56 57 58 59 |
# File 'lib/multiarray/unmask.rb', line 55 def descriptor( hash ) "Unmask(#{@dest.descriptor( hash )},#{@source.descriptor( hash )}," + "#{@m.descriptor( hash )},#{@index.descriptor( hash )}," + "#{@default.descriptor( hash )})" end |
#shape ⇒ Object
65 66 67 |
# File 'lib/multiarray/unmask.rb', line 65 def shape @dest.shape end |
#strip ⇒ Array<Array,Node>
Strip of all values
Split up into variables, values, and a term where all values have been replaced with variables.
values, and the term based on variables.
137 138 139 140 141 142 143 |
# File 'lib/multiarray/unmask.rb', line 137 def strip stripped = [ @dest, @source, @m, @index, @default ]. collect { |value| value.strip } return stripped.inject([]) { |vars,elem| vars + elem[0] }, stripped.inject([]) { |values,elem| values + elem[1] }, self.class.new(*stripped.collect { |elem| elem[2] }) end |
#subst(hash) ⇒ Node
Substitute variables
Substitute the variables with the values given in the hash.
113 114 115 116 |
# File 'lib/multiarray/unmask.rb', line 113 def subst( hash ) self.class.new @dest.subst( hash ), @source.subst( hash ), @m.subst( hash ), @index.subst( hash ), @default.subst( hash ) end |
#typecode ⇒ Object
61 62 63 |
# File 'lib/multiarray/unmask.rb', line 61 def typecode @dest.typecode end |
#variables ⇒ Set
Get variables contained in this term
123 124 125 126 |
# File 'lib/multiarray/unmask.rb', line 123 def variables @dest.variables + @source.variables + @m.variables + @index.variables + @default.variables end |