用于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文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束