Statistiques
| Révision :

root / pobysoPythonSage / src / sageSLZ / sageNumericalOperations.sage @ 266

Historique | Voir | Annoter | Télécharger (952 octet)

1
sys.stderr.write("sageNumericalOperations: loading...\n")
2
#
3
def sno_abs_is_power_of_two(number):
4
    """
5
    Check if the absolute value of a number is power of 2.
6
    The built-in is_power_of_two, works with many kinds of numbers but 
7
    returns false for negative ones. 
8
    """
9
    return is_power_of_two(abs(number))
10
# End sno_abs_is_power_of_two(number):
11
#
12
def sno_float_to_rat_pow_of_two_denom(number):
13
    """
14
    Convert a floating-point number into a rational where the denominator
15
    is a power of two
16
    """
17
    ## Argument checking.
18
    if not number.is_real():
19
        return None
20
    #
21
    (sign, mantissa, exponent) = number.sign_mantissa_exponent()
22
    #print sign, mantissa, exponent
23
    precision = number.prec()
24
    if sign == 1:
25
        return mantissa / 2^(-exponent)
26
    else:
27
        return -mantissa / 2^(-exponent)
28
# End sno_float_to_rat_pow_of_two_denom.
29
        
30
sys.stderr.write("\t...sageNumericalOperations loaded.\n")