def unmask( m, options = {} )
      options = { :safe => true, :default => typecode.default }.merge options
      default = options[:default]
      default = typecode.new default unless default.matched?
      m.check_shape default
      if options[ :safe ]
        if m.to_ubyte.sum > shape.last
          raise "#{m.to_ubyte.sum} value(s) of the mask are true but the last " +
            "dimension of the array for unmasking only has #{shape.last} value(s)"
        end
      end
      left = Hornetseye::MultiArray(typecode, dimension - 1 + m.dimension).
        coercion(default.typecode).new *(shape[1 .. -1] + m.shape)
      index = Hornetseye::Pointer(INT).new
      index.store INT.new(0)
      block = Unmask.new left, self, m, index, default
      if block.compilable?
        GCCFunction.run block
      else
        block.demand
      end
      left
    end
def unmask( m, options = {} )
      options = { :safe => true, :default => typecode.default }.merge options
      default = options[:default]
      default = typecode.new default unless default.matched?
      m.check_shape default
      if options[ :safe ]
        if m.to_ubyte.sum > shape.last
          raise "#{m.to_ubyte.sum} value(s) of the mask are true but the last " +
            "dimension of the array for unmasking only has #{shape.last} value(s)"
        end
      end
      left = Hornetseye::MultiArray(typecode, dimension - 1 + m.dimension).
        coercion(default.typecode).new *(shape[1 .. -1] + m.shape)
      index = Hornetseye::Pointer(INT).new
      index.store INT.new(0)
      block = Unmask.new left, self, m, index, default
      if block.compilable?
        GCCFunction.run block
      else
        block.demand
      end
      left
    end
Distribute values in a new array using a mask

 @param [Node] m Mask for inverse masking operation.
 @option options [Object] :default (typecode.default) Default value for elements
         where mask is +false+.
 @option options [Boolean] :safe (true) Ensure that the size of this size is
         sufficient.

 @return [Node] The result of the inverse masking operation.