/* * call-seq: * dvector.fill(number) -> dvector * dvector.fill(number, start <, length>) -> dvector * dvector.fill(number, range ) -> dvector * dvector.fill {|index| block } -> dvector * dvector.fill(start <, length> ) {|index| block } -> dvector * dvector.fill(range) {|index| block } -> dvector * * The first three forms set the selected elements of _dvector_ (which * may be the entire vector) to <i>number</i>. A <i>start</i> of * <code>nil</code> is equivalent to zero. A <i>length</i> of * <code>nil</code> is equivalent to _dvector_.<code>length</code>. The last three * forms fill the vector with the value of the block. The block is * passed the absolute index of each element to be filled. * * a = Dvector[ 1, 2, 3, 4, 5 ] * a.fill(-1) -> Dvector[ -1, -1, -1, -1, -1 ] * a.fill(7, 2, 2) -> Dvector[ -1, -1, 7, 7, -1 ] * a.fill(8, 0..1) -> Dvector[ 8, 8, 7, 7, -1 ] * a.fill {|i| i*i} -> Dvector[ 0, 1, 4, 9, 16 ] * a.fill(-2) {|i| i*i*i} -> Dvector[ 0, 1, 4, 27, 64 ] * a -> Dvector[ 0, 1, 4, 27, 64 ] */ VALUE dvector_fill(int argc, VALUE *argv, VALUE ary) {