/* * 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) {