func copysign(x interface{}, y interface{}) (float64, error) {

	xv, err := toFloat64(x)
	if err != nil {
		return 0, errors.WithMessage(err, "copysign[x]")
	}

	yv, err := toFloat64(y)
	if err != nil {
		return 0, errors.WithMessage(err, "copysign[y]")
	}

	return math.Copysign(xv, yv), nil
}
// args are inverted to accomdate `computation | copysign -1`
args are inverted to accomdate `computation | copysign -1`
// args are inverted to accomdate ` computation | copysign - 1 `
func copysign(x interface{}, y interface{}) (float64, error) {
	xv, err := toFloat64(x)
	if err != nil {
		return 0, errors.WithMessage(err, "copysign[x]")
	}
	yv, err := toFloat64(y)
	if err != nil {
		return 0, errors.WithMessage(err, "copysign[y]")
	}
	return math.Copysign(xv, yv), nil
}
func copysign ( x interface { } , y interface { } ) ( float64 , error ) { xv , err := toFloat64 ( x ) if err != nil { return 0 , errors . WithMessage ( err , " " ) } yv , err := toFloat64 ( y ) if err != nil { return 0 , errors . WithMessage ( err , " " ) } return math . Copysign ( xv , yv ) , nil }
args are inverted to accomdate `computation | copysign -1`
args are inverted to accomdate ` computation | copysign - 1 `