/*
* call-seq:
* dvector.collect2(other) {|x,y| block } -> dvector
* dvector.map2(other) {|x,y| block } -> dvector
*
* Calls <i>block</i> for each element of _dvector_ along with the corresponding element in _other_. Creates a
* new vector containing the values returned by _block_. The vectors must be the same size.
*
* a = Dvector[ 1, 0, -1 ]
* b = Dvector[ 3, 4, 5 ]
* a.map2(b) {|x,y| x**2 + y**2 } -> Dvector[ 10, 16, 26 ]
*
*/ VALUE dvector_collect2(VALUE ary, VALUE ary2) {