/* * call-seq: * dvector.pow!(number) -> dvector * dvector.pow!(other) -> dvector * dvector.raised_to!(number) -> dvector * dvector.raised_to!(other) -> dvector * * When argument is a number, this operation returns a copy of _dvector_ with each entry x replaced by x ** _number_. * When argument is a vector, this operation returns a copy of _dvector_ with each entry x replaced * by x ** the corresponding entry in the _other_ vector. * * a = Dvector[ 1.1, -5.7, 12.7 ] * a.raised_to!(3) -> Dvector[ 1.1 ** 3, (-5.7) ** 3, 12.7 ** 3 ] * a -> Dvector[ 1.1 ** 3, (-5.7) ** 3, 12.7 ** 3 ] * b = Dvector[ 7, 4, -2 ] * a.raised_to!(b) -> Dvector[ 1.1 ** 7, (-5.7) ** 4, 12.7 ** (-2) ] * a -> Dvector[ 1.1 ** 7, (-5.7) ** 4, 12.7 ** (-2) ] */ VALUE dvector_pow_bang(VALUE ary, VALUE arg) {