def Dvector.compute_formula(formula, a, modules = [])
evaluator = MathEvaluator.new(formula, "column", modules)
target = []
last = nil
a.each { |elem|
if elem.is_a? Dvector
target << elem
last = elem
else
target << nil
end
}
raise "No Dvector found" unless last
target.each {|x|
if x && x.length != last.length
raise "Dvectors should have all the same length !"
end
}
res = Dvector.new
last.each_index { |i|
args = target.collect { |val|
if val
val[i]
else
nil
end
}
elem = evaluator.compute(args)
res << elem
}
return res
end