module Combinatorial::Cubic

Public Instance Methods

power_cubic(n, m) { |0...m.collect{0}| ... } click to toggle source

power in order of (point, eadges, surfaces, bodies, ..)

# File lib/algebra/combinatorial.rb, line 110
def power_cubic(n, m)
  if n < 1
    raise "cubic(< 1, m) called"
  elsif n == 1
    yield( (0...m).collect{0} )# point of origin
  else
    0.upto m do |dim|
      Combinatorial.comb(m, dim) do |s|
        power_cubic(n-1, dim) do |a|
          yield inject(a, s.sort, m)
        end
      end
    end
  end
end

Private Instance Methods

inject(ary, inds, n = inds.size+1) click to toggle source
# File lib/algebra/combinatorial.rb, line 126
def inject(ary, inds, n = inds.size+1)
  (0...n).collect{|i| (k = inds.index(i)) ? 1 + ary[k] : 0}
end