Method: Matrix.column_vector_assignment_code

Defined in:
lib/y_petri/simulation/matrix.rb

.column_vector_assignment_code(vector: (fail ArgumentError, "No vector!"), indices: (fail ArgumentError, "No indices!"), source: (fail ArgumentError, "No source!")) ⇒ Object

Builds a code string for assigning to a vector at given indices.



21
22
23
24
25
26
27
28
# File 'lib/y_petri/simulation/matrix.rb', line 21

def column_vector_assignment_code vector: (fail ArgumentError, "No vector!"),
                                  indices: (fail ArgumentError, "No indices!"),
                                  source: (fail ArgumentError, "No source!")
  code_lines = indices.map.with_index do |i, source_pos|
    "#{vector}.send( :[]=, #{i}, 0, #{source}.fetch( #{source_pos} ) )" if i
  end
  code_lines.compact.join( "\n" ) << "\n"
end