question: public static double copySign ( final double magnitude , final double sign ) { return Double . longBitsToDouble ( Double . doubleToRawLongBits ( sign ) & Long . MIN_VALUE | Double . doubleToRawLongBits ( magnitude ) & Long . MAX_VALUE ) ; }
target:  A sign of NaN can be interpreted as positive or negative.