/*
* call-seq:
* dvector.collect! {|x| block } -> dvector
* dvector.map! {|x| block } -> dvector
*
* Invokes _block_ once for each element of _dvector_, replacing the
* element with the value returned by _block_.
* Note that for numeric operations on long vectors, it is more efficient to
* apply the operator directly to the vector rather than using these operators.
*
* a = Dvector[ 2, -3, 7 ]
* a.map! {|x| x**2 + 1 } -> Dvector[ 5, 10, 50 ]
* a -> Dvector[ 5, 10, 50 ]
* A better way:
* a.mul!(a).add!(1) -> Dvector[ 5, 10, 50 ]
*
*/ VALUE dvector_collect_bang(VALUE ary) {