/*
* call-seq:
* dvector.pow(number) -> a_dvector
* dvector.pow(other) -> a_dvector
* dvector.raised_to(number) -> a_dvector
* dvector.raised_to(other) -> a_dvector
* dvector ** number -> a_dvector
* dvector ** other -> a_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 ** 3 -> 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 ** b -> Dvector[ 1.1 ** 7, (-5.7) ** 4, 12.7 ** (-2) ]
*/
VALUE dvector_pow(VALUE ary, VALUE arg) {