Sha256: b8b9da3a9906c7ac56598c7d35a9eb1b99615a47dc21386bfb474c31614b1d3a

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

module CsrMatrix
  module Helpers
  	
		##
		# ARRAY FUNCTIONS
		# for pre-processing of matrix
		#

		# Identifies the 'column' value of an array (eg. the number of entries in a column)
		def max_col(array)
			values = array
			max_count = 0
			# Loop over indexes.
			values.each_index do |i|
				counter = 0
			  # Get subarray and loop over its indexes also.
			  subarray = values[i]
			  subarray.each_index do |x|
			  	counter += 1
			  end
			  if counter > max_count
			  	max_count = counter
			  end
			end
			return max_count
		end

		# Identifies the 'row' value of an array (eg. the number of entries in a row)
		def max_row(array)
			values = array
			max_count = 0
			values.each_index do |i|
			  max_count += 1
			end
			return max_count
		end

		def count_nonzero(array) 
			max_count = 0
			array.each_index do |i|
				subarray = array[i]
			  subarray.each_index do |x|
			  	if array[i][x] != 0
			  		max_count += 1
			  	end
			  end
			end
			return max_count
		end

		# Code taken from http://stackoverflow.com/questions/9545613/getting-dimension-of-multidimensional-array-in-ruby
		def depth(array)
	    return 0 if array.class != Array
			result = 1
			array.each do |sub_a|
			  if sub_a.class == Array
			    dim = depth(sub_a)
			    result = dim + 1 if dim + 1 > result
			  end
			end
			return result
		end	

		# Counts all elements in array - assumed 2d
    def count_total(array) 
      max_count = 0
      array.each_index do |i|
        subarray = array[i]
        subarray.each_index do |x|
          max_count += 1
        end
      end
      return max_count
    end
	
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
csrmatrix-1.0.0 lib/csrmatrix/helpers.rb