|  | /* | 
|  | * Copyright 2012 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #if 0 | 
|  | // snippets that one day may be useful, unused for now... | 
|  |  | 
|  | // get sign, exponent, mantissa from double | 
|  | // Translate the double into sign, exponent and mantissa. | 
|  | long bits = BitConverter.DoubleToInt64Bits(d); | 
|  | // Note that the shift is sign-extended, hence the test against -1 not 1 | 
|  | bool negative = (bits < 0); | 
|  | int exponent = (int) ((bits >> 52) & 0x7ffL); | 
|  | long mantissa = bits & 0xfffffffffffffL; | 
|  |  | 
|  | // Subnormal numbers; exponent is effectively one higher, | 
|  | // but there's no extra normalisation bit in the mantissa | 
|  | if (exponent==0) | 
|  | { | 
|  | exponent++; | 
|  | } | 
|  | // Normal numbers; leave exponent as it is but add extra | 
|  | // bit to the front of the mantissa | 
|  | else | 
|  | { | 
|  | mantissa = mantissa | (1L<<52); | 
|  | } | 
|  |  | 
|  | // Bias the exponent. It's actually biased by 1023, but we're | 
|  | // treating the mantissa as m.0 rather than 0.m, so we need | 
|  | // to subtract another 52 from it. | 
|  | exponent -= 1075; | 
|  |  | 
|  | if (mantissa == 0) | 
|  | { | 
|  | return "0"; | 
|  | } | 
|  |  | 
|  | /* Normalize */ | 
|  | while((mantissa & 1) == 0) | 
|  | {    /*  i.e., Mantissa is even */ | 
|  | mantissa >>= 1; | 
|  | exponent++; | 
|  | } | 
|  | #endif |