用于python的一种数值类型,它将浮点存储在日志空间中以提高精度,允许正浮点和负浮点计算(算术和逻辑操作)

pylogfloat的Python项目详细描述


PylogFloat类

pylogfloat类转换 线性空间转换成对数空间并允许标准的算术和逻辑 在两个塔浮之间的线性空间中执行的操作。

在内部,floatf存储如下:

  • |f|的(自然)日志存储为numpy.float64变量p
  • f('-','+'或'0')的符号存储在变量(-1,+1,0)变量中,sign

通过分别存储sign,正浮点数和负浮点数都可以 存放在一个挂架上。注意,sign=0对应于 案例中的f =0

算术运算符

实现了以下算术运算符:

+=
-=
*=
/=
+
-
*
/

线性空间中的乘法和除法简单地变成加法 日志空间中的减法运算。为了实现线性空间加法, 使用了应用log1p函数的标准方法。一个 日志值使用log1pexp1m的条件用法 减法,遵循m_chler,m.精确计算日志(1-exp(-) | a)由RMPFR包Cran评估,综合R档案 网络

在执行以下操作时,将考虑内部变量sign。 算术运算。例如,在pylogfloat之间的乘法运算中ab,对应于正浮点数和负浮点数, 生成的pylogfloat分别为:

result.p = a.p + b.p
result.sign = a.sign * b.sign

对其他运算符进行相应的处理(加减 变得更加投入)。

逻辑运算符

实现了以下算术运算符:

<=
>=
<
>

在pylogfloatsab之间的逻辑操作中, 首先比较内部符号变量(-1<;0<;+1)。

如果a.sign == b.sign

  • a.sign == 0 <=> equality
  • a.sign > 0, return a.p [operator] b.p
  • a.sing <0, return !(a.p [operator] b.p)

其他功能

幂运算符(lplf**p,其中plf是pylogfloat,p是 float或int)被实现:

**= (equiv ipow(self, p))
** (equiv pow(self, p))

PylogFloat的对数和指数都实现为 就地(例如ilog)和标准,返回 操作(例如log):

ilog(self)
log(self
iexp(self)
exp(self)

除幂运算符外,所有函数和运算符都是 实现为仅与PylogFloats一起使用。电力运营商 总是有一个pylogfloat基变量和一个float或int幂 可变。

请注意,此操作仍在进行中

虽然包含了一个基本的测试文件,但是类仍然在很大程度上 未经测试。可能实现也可能不实现其他功能,例如 阶乘函数可能很有趣。在某些情况下, 参数自动转换为PylogFloats。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何创建Restful服务并将其部署到OSGi容器?   java如何获取用户在EditText中输入的时间并从中扣除5小时30分钟?   java用户无法注销firebase 安卓   java Undertow始终将字符集添加到ContentType头,即使它不是文本MIME类型   java LocalBroadcastManager未正确接收消息   foreach在Java中有没有比For循环更好的方法可以灵活地遍历集合?   java如何在安卓上移动球   在OSGi下的Log4j中使所有记录器异步时,java ClassNotFoundException   java未知输入字节长度转换为int   java测试工厂在使用前缀命名时抛出NPE   对象的副本(JAVA)   java SP20310:无法打开文件。sql   java Spring安全性仅为一条路径添加安全性   java在idea中获取菱形运算符的编译错误