/*
* call-seq:
* dvector.sub(number) -> a_dvector
* dvector.sub(other) -> a_dvector
* dvector - number -> a_dvector
* number - dvector -> 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[ 11, -5, 2 ]
* a.sub(3) -> Dvector[ 8, -8, -1 ]
* a - 3 -> Dvector[ 8, -8, -1 ]
* 3 - a -> Dvector[ -8, 8, 1 ]
* b = Dvector[ 7, 4, -10 ]
* a.sub(b) -> Dvector[ 4, -9, 12 ]
* a - b -> Dvector[ 4, -9, 12 ]
*/
VALUE dvector_sub(VALUE ary, VALUE arg) {