本文整理汇总了Python中sympy.Float类的典型用法代码示例。如果您正苦于以下问题:Python Float类的具体用法?Python Float怎么用?Python Float使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Float类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_Float
def test_Float():
def eq(a, b):
t = Float("1.0E-15")
return (-t < a-b < t)
a = Float(2) ** Float(3)
assert eq(a.evalf(), Float(8))
assert eq((pi ** -1).evalf(), Float("0.31830988618379067"))
a = Float(2) ** Float(4)
assert eq(a.evalf(), Float(16))
assert (S(.3) == S(.5)) is False
x_str = Float((0, '13333333333333', -52, 53))
x2_str = Float((0, '26666666666666', -53, 53))
x_hex = Float((0, 0x13333333333333L, -52, 53))
x_dec = Float((0, 5404319552844595L, -52, 53))
x2_hex = Float((0, 0x13333333333333L*2, -53, 53))
assert x_str == x_hex == x_dec == x2_hex == Float(1.2)
# x2_str and 1.2 are superficially the same
assert str(x2_str) == str(Float(1.2))
# but are different at the mpf level
assert Float(1.2)._mpf_ == (0, 5404319552844595L, -52, 53)
assert x2_str._mpf_ == (0, 10808639105689190L, -53, 53)
# do not automatically evalf
def teq(a):
assert (a.evalf () == a) is False
assert (a.evalf () != a) is True
assert (a == a.evalf()) is False
assert (a != a.evalf()) is True
teq(pi)
teq(2*pi)
teq(cos(0.1, evaluate=False))
assert Float(0) is S.Zero
assert Float(1) is S.One
assert Float(S.Zero) is S.Zero
assert Float(S.One) is S.One
开发者ID:101man,项目名称:sympy,代码行数:39,代码来源:test_numbers.py
示例2: _initial_evalf
def _initial_evalf(w,n):
"""
Convert every number to float with precision n
If number ends in 5, convert to high precision Float
and multiply by 1+epsilon so that it will round up correctly.
"""
if w.is_Number:
wstr=str(w)
if "." in wstr:
wstr = wstr.rstrip('0')
if wstr[-1]=="5":
# include extra call to str because bug
# in sympy where this doesn't work with unicode
w=Float(str(wstr), n+1)
one_plus_epsilon = S.One.evalf(n)\
+pow(10,1-n)
w *= one_plus_epsilon
try:
return w.evalf(n)
except:
return w
开发者ID:dqnykamp,项目名称:mathinsight,代码行数:23,代码来源:customized_commands.py
示例3: test_Float
def test_Float():
def eq(a, b):
t = Float("1.0E-15")
return (-t < a - b < t)
a = Float(2) ** Float(3)
assert eq(a.evalf(), Float(8))
assert eq((pi ** -1).evalf(), Float("0.31830988618379067"))
a = Float(2) ** Float(4)
assert eq(a.evalf(), Float(16))
assert (S(.3) == S(.5)) is False
x_str = Float((0, '13333333333333', -52, 53))
x2_str = Float((0, '26666666666666', -53, 53))
x_hex = Float((0, long(0x13333333333333), -52, 53))
x_dec = Float((0, 5404319552844595, -52, 53))
x2_hex = Float((0, long(0x13333333333333)*2, -53, 53))
assert x_str == x_hex == x_dec == x2_hex == Float(1.2)
# x2_str and 1.2 are superficially the same
assert str(x2_str) == str(Float(1.2))
# but are different at the mpf level
assert Float(1.2)._mpf_ == (0, long(5404319552844595), -52, 53)
assert x2_str._mpf_ == (0, long(10808639105689190), -53, 53)
assert Float((0, long(0), -123, -1)) == Float('nan')
assert Float((0, long(0), -456, -2)) == Float('inf') == Float('+inf')
assert Float((1, long(0), -789, -3)) == Float('-inf')
raises(ValueError, lambda: Float((0, 7, 1, 3), ''))
assert Float('+inf').is_bounded is False
assert Float('+inf').is_negative is False
assert Float('+inf').is_positive is True
assert Float('+inf').is_unbounded is True
assert Float('+inf').is_zero is False
assert Float('-inf').is_bounded is False
assert Float('-inf').is_negative is True
assert Float('-inf').is_positive is False
assert Float('-inf').is_unbounded is True
assert Float('-inf').is_zero is False
assert Float('0.0').is_bounded is True
assert Float('0.0').is_negative is False
assert Float('0.0').is_positive is False
assert Float('0.0').is_unbounded is False
assert Float('0.0').is_zero is True
# rationality properties
assert Float(1).is_rational is None
assert Float(1).is_irrational is None
assert sqrt(2).n(15).is_rational is None
assert sqrt(2).n(15).is_irrational is None
# do not automatically evalf
def teq(a):
assert (a.evalf() == a) is False
assert (a.evalf() != a) is True
assert (a == a.evalf()) is False
assert (a != a.evalf()) is True
teq(pi)
teq(2*pi)
teq(cos(0.1, evaluate=False))
i = 12345678901234567890
assert _aresame(Float(12, ''), Float('12', ''))
assert _aresame(Float(Integer(i), ''), Float(i, ''))
assert _aresame(Float(i, ''), Float(str(i), 20))
assert not _aresame(Float(str(i)), Float(i, ''))
# inexact floats (repeating binary = denom not multiple of 2)
# cannot have precision greater than 15
assert Float(.125, 22) == .125
assert Float(2.0, 22) == 2
assert float(Float('.12500000000000001', '')) == .125
raises(ValueError, lambda: Float(.12500000000000001, ''))
# allow spaces
Float('123 456.123 456') == Float('123456.123456')
Integer('123 456') == Integer('123456')
Rational('123 456.123 456') == Rational('123456.123456')
assert Float(' .3e2') == Float('0.3e2')
# allow auto precision detection
assert Float('.1', '') == Float(.1, 1)
assert Float('.125', '') == Float(.125, 3)
assert Float('.100', '') == Float(.1, 3)
assert Float('2.0', '') == Float('2', 2)
raises(ValueError, lambda: Float("12.3d-4", ""))
raises(ValueError, lambda: Float(12.3, ""))
raises(ValueError, lambda: Float('.'))
raises(ValueError, lambda: Float('-.'))
zero = Float('0.0')
assert Float('-0') == zero
assert Float('.0') == zero
assert Float('-.0') == zero
assert Float('-0.0') == zero
assert Float(0.0) == zero
#.........这里部分代码省略.........
开发者ID:aiwku1277,项目名称:sympy,代码行数:101,代码来源:test_numbers.py
示例4: test_mpf_norm
def test_mpf_norm():
assert mpf_norm((1, 0, 1, 0), 10) == mpf('0')._mpf_
assert Float._new((1, 0, 1, 0), 10)._mpf_ == mpf('0')._mpf_
开发者ID:aiwku1277,项目名称:sympy,代码行数:3,代码来源:test_numbers.py
示例5: test_Mod
def test_Mod():
assert Mod(x, 1).func is Mod
assert pi % pi == S.Zero
assert Mod(5, 3) == 2
assert Mod(-5, 3) == 1
assert Mod(5, -3) == -1
assert Mod(-5, -3) == -2
assert type(Mod(3.2, 2, evaluate=False)) == Mod
assert 5 % x == Mod(5, x)
assert x % 5 == Mod(x, 5)
assert x % y == Mod(x, y)
assert (x % y).subs({x: 5, y: 3}) == 2
# Float handling
point3 = Float(3.3) % 1
assert (x - 3.3) % 1 == Mod(1.*x + 1 - point3, 1)
assert Mod(-3.3, 1) == 1 - point3
assert Mod(0.7, 1) == Float(0.7)
e = Mod(1.3, 1)
point3 = Float._new(Float(.3)._mpf_, 51)
assert e == point3 and e.is_Float
e = Mod(1.3, .7)
point6 = Float._new(Float(.6)._mpf_, 51)
assert e == point6 and e.is_Float
e = Mod(1.3, Rational(7, 10))
assert e == point6 and e.is_Float
e = Mod(Rational(13, 10), 0.7)
assert e == point6 and e.is_Float
e = Mod(Rational(13, 10), Rational(7, 10))
assert e == .6 and e.is_Rational
# check that sign is right
r2 = sqrt(2)
r3 = sqrt(3)
for i in [-r3, -r2, r2, r3]:
for j in [-r3, -r2, r2, r3]:
assert test_numerically(i % j, i.n() % j.n())
for _x in range(4):
for _y in range(9):
reps = [(x, _x), (y, _y)]
assert Mod(3*x + y, 9).subs(reps) == (3*_x + _y) % 9
# denesting
# easy case
assert Mod(Mod(x, y), y) == Mod(x, y)
# in case someone attempts more denesting
for i in [-3, -2, 2, 3]:
for j in [-3, -2, 2, 3]:
for k in range(3):
# print i, j, k
assert Mod(Mod(k, i), j) == (k % i) % j
# known difference
assert Mod(5*sqrt(2), sqrt(5)) == 5*sqrt(2) - 3*sqrt(5)
p = symbols('p', positive=True)
assert Mod(p + 1, p + 3) == p + 1
n = symbols('n', negative=True)
assert Mod(n - 3, n - 1) == -2
assert Mod(n - 2*p, n - p) == -p
assert Mod(p - 2*n, p - n) == -n
# handling sums
assert (x + 3) % 1 == Mod(x, 1)
assert (x + 3.0) % 1 == Mod(1.*x, 1)
assert (x - S(33)/10) % 1 == Mod(x + S(7)/10, 1)
assert str(Mod(.6*x + y, .3*y)) == str(Mod(0.1*y + 0.6*x, 0.3*y))
assert (x + 1) % x == 1 % x
assert (x + y) % x == y % x
assert (x + y + 2) % x == (y + 2) % x
assert (a + 3*x + 1) % (2*x) == Mod(a + x + 1, 2*x)
assert (12*x + 18*y) % (3*x) == 3*Mod(6*y, x)
# gcd extraction
assert (-3*x) % (-2*y) == -Mod(3*x, 2*y)
assert (.6*pi) % (.3*x*pi) == 0.3*pi*Mod(2, x)
assert (.6*pi) % (.31*x*pi) == pi*Mod(0.6, 0.31*x)
assert (6*pi) % (.3*x*pi) == pi*Mod(6, 0.3*x)
assert (6*pi) % (.31*x*pi) == pi*Mod(6, 0.31*x)
assert (6*pi) % (.42*x*pi) == pi*Mod(6, 0.42*x)
assert (12*x) % (2*y) == 2*Mod(6*x, y)
assert (12*x) % (3*5*y) == 3*Mod(4*x, 5*y)
assert (12*x) % (15*x*y) == 3*x*Mod(4, 5*y)
assert (-2*pi) % (3*pi) == pi
assert (2*x + 2) % (x + 1) == 0
assert (x*(x + 1)) % (x + 1) == (x + 1)*Mod(x, 1)
assert Mod(5.0*x, 0.1*y) == 0.1*Mod(50*x, y)
i = Symbol('i', integer=True)
assert (3*i*x) % (2*i*y) == i*Mod(3*x, 2*y)
assert Mod(4*i, 4) == 0
开发者ID:cbm755,项目名称:sympy,代码行数:89,代码来源:test_arit.py
示例6: test_Float
def test_Float():
def eq(a, b):
t = Float("1.0E-15")
return (-t < a-b < t)
a = Float(2) ** Float(3)
assert eq(a.evalf(), Float(8))
assert eq((pi ** -1).evalf(), Float("0.31830988618379067"))
a = Float(2) ** Float(4)
assert eq(a.evalf(), Float(16))
assert (S(.3) == S(.5)) is False
x_str = Float((0, '13333333333333', -52, 53))
x2_str = Float((0, '26666666666666', -53, 53))
x_hex = Float((0, 0x13333333333333L, -52, 53))
x_dec = Float((0, 5404319552844595L, -52, 53))
x2_hex = Float((0, 0x13333333333333L*2, -53, 53))
assert x_str == x_hex == x_dec == x2_hex == Float(1.2)
# x2_str and 1.2 are superficially the same
assert str(x2_str) == str(Float(1.2))
# but are different at the mpf level
assert Float(1.2)._mpf_ == (0, 5404319552844595L, -52, 53)
assert x2_str._mpf_ == (0, 10808639105689190L, -53, 53)
assert Float((0, 0L, -123, -1)) == Float('nan')
assert Float((0, 0L, -456, -2)) == Float('inf') == Float('+inf')
assert Float((1, 0L, -789, -3)) == Float('-inf')
# do not automatically evalf
def teq(a):
assert (a.evalf () == a) is False
assert (a.evalf () != a) is True
assert (a == a.evalf()) is False
assert (a != a.evalf()) is True
teq(pi)
teq(2*pi)
teq(cos(0.1, evaluate=False))
assert Float(0) is S.Zero
assert Float(1) is S.One
assert Float(S.Zero) is S.Zero
assert Float(S.One) is S.One
i = 12345678901234567890
assert _aresame(Float(12), Integer(12))
assert _aresame(Float(12, ''), Float('12', ''))
assert _aresame(Float(i), Integer(i))
assert _aresame(Float(Integer(i), ''), Float(i, ''))
assert _aresame(Float(i, ''), Float(str(i), 20))
assert not _aresame(Float(str(i)), Float(i, ''))
# inexact floats (repeating binary = denom not multiple of 2)
# cannot have precision greater than 15
assert Float(.125, 22) == .125
assert Float(2.0, 22) == 2
assert float(Float('.12500000000000001', '')) == .125
raises(ValueError, lambda: Float(.12500000000000001, ''))
# allow spaces
Float('123 456.123 456') == Float('123456.123456')
Integer('123 456') == Integer('123456')
Rational('123 456.123 456') == Rational('123456.123456')
# allow auto precision detection
assert Float('.1', '') == Float(.1, 1)
assert Float('.125', '') == Float(.125, 3)
assert Float('.100', '') == Float(.1, 3)
assert Float('2.0', '') == Float('2', 2)
raises(ValueError, lambda: Float("12.3d-4", ""))
raises(ValueError, lambda:Float(12.3, ""))
raises(ValueError, lambda:Float('.'))
raises(ValueError, lambda:Float('-.'))
assert Float('-0') == Float('0.0')
assert Float('.0') == Float('0.0')
assert Float('-.0') == Float('-0.0')
assert Float(' .3e2') == Float('0.3e2')
开发者ID:BDGLunde,项目名称:sympy,代码行数:78,代码来源:test_numbers.py
示例7: test_Float
def test_Float():
def eq(a, b):
t = Float("1.0E-15")
return -t < a - b < t
a = Float(2) ** Float(3)
assert eq(a.evalf(), Float(8))
assert eq((pi ** -1).evalf(), Float("0.31830988618379067"))
a = Float(2) ** Float(4)
assert eq(a.evalf(), Float(16))
assert (S(0.3) == S(0.5)) is False
x_str = Float((0, "13333333333333", -52, 53))
x2_str = Float((0, "26666666666666", -53, 53))
x_hex = Float((0, 0x13333333333333L, -52, 53))
x_dec = Float((0, 5404319552844595L, -52, 53))
x2_hex = Float((0, 0x13333333333333L * 2, -53, 53))
assert x_str == x_hex == x_dec == x2_hex == Float(1.2)
# x2_str and 1.2 are superficially the same
assert str(x2_str) == str(Float(1.2))
# but are different at the mpf level
assert Float(1.2)._mpf_ == (0, 5404319552844595L, -52, 53)
assert x2_str._mpf_ == (0, 10808639105689190L, -53, 53)
assert Float((0, 0L, -123, -1)) == Float("nan")
assert Float((0, 0L, -456, -2)) == Float("inf") == Float("+inf")
assert Float((1, 0L, -789, -3)) == Float("-inf")
raises(ValueError, lambda: Float((0, 7, 1, 3), ""))
assert Float("+inf").is_bounded is False
assert Float("+inf").is_finite is False
assert Float("+inf").is_negative is False
assert Float("+inf").is_positive is True
assert Float("+inf").is_unbounded is True
assert Float("+inf").is_zero is False
assert Float("-inf").is_bounded is False
assert Float("-inf").is_finite is False
assert Float("-inf").is_negative is True
assert Float("-inf").is_positive is False
assert Float("-inf").is_unbounded is True
assert Float("-inf").is_zero is False
assert Float("0.0").is_bounded is True
assert Float("0.0").is_finite is False
assert Float("0.0").is_negative is False
assert Float("0.0").is_positive is False
assert Float("0.0").is_unbounded is False
assert Float("0.0").is_zero is True
# do not automatically evalf
def teq(a):
assert (a.evalf() == a) is False
assert (a.evalf() != a) is True
assert (a == a.evalf()) is False
assert (a != a.evalf()) is True
teq(pi)
teq(2 * pi)
teq(cos(0.1, evaluate=False))
i = 12345678901234567890
assert _aresame(Float(12, ""), Float("12", ""))
assert _aresame(Float(Integer(i), ""), Float(i, ""))
assert _aresame(Float(i, ""), Float(str(i), 20))
assert not _aresame(Float(str(i)), Float(i, ""))
# inexact floats (repeating binary = denom not multiple of 2)
# cannot have precision greater than 15
assert Float(0.125, 22) == 0.125
assert Float(2.0, 22) == 2
assert float(Float(".12500000000000001", "")) == 0.125
raises(ValueError, lambda: Float(0.12500000000000001, ""))
# allow spaces
Float("123 456.123 456") == Float("123456.123456")
Integer("123 456") == Integer("123456")
Rational("123 456.123 456") == Rational("123456.123456")
assert Float(" .3e2") == Float("0.3e2")
# allow auto precision detection
assert Float(".1", "") == Float(0.1, 1)
assert Float(".125", "") == Float(0.125, 3)
assert Float(".100", "") == Float(0.1, 3)
assert Float("2.0", "") == Float("2", 2)
raises(ValueError, lambda: Float("12.3d-4", ""))
raises(ValueError, lambda: Float(12.3, ""))
raises(ValueError, lambda: Float("."))
raises(ValueError, lambda: Float("-."))
zero = Float("0.0")
assert Float("-0") == zero
assert Float(".0") == zero
assert Float("-.0") == zero
assert Float("-0.0") == zero
assert Float(0.0) == zero
assert Float(0) == zero
assert Float(0, "") == Float("0", "")
assert Float(1) == Float(1.0)
#.........这里部分代码省略.........
开发者ID:mattpap,项目名称:sympy,代码行数:101,代码来源:test_numbers.py
注:本文中的sympy.Float类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论