- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有两个 gmpy2.mpc
对象 x
和 y
精确到 p 位。当我计算 x+y
时,x 和 y 的某些部分可能会抵消,因此精度较低。
例如
from gmpy2 import *
x = mpc('-0.55555')
y = mpc('0.5555500000001')
print(x+y)
尽管 x
和 y
精确到 ~15,但结果仅精确到 4 位有效数字。
我认为我需要计算出在进行加法和减法时发生了多少位取消,然后将其从 x
或 y
的最小值中取出精确。对于乘法和除法,我认为最多只会损失 1 位精度。
所以问题非常普遍:如何跟踪 mpc
对象的精度,特别是在添加和减去它们时?
最佳答案
以下函数将返回两个 mpfr 对象的匹配位数。
import gmpy2
def matching_bits(x, y):
'''Returns the number of bits that match between x and y. The
sign of x and y are ignored. x and y must be of type mpfr.'''
# Force both values to be positive, and x >= y.
x = abs(x)
y = abs(y)
if x < y:
x, y = y, x
if not isinstance(x, type(gmpy2.mpfr(0))) or not isinstance(y, type(gmpy2.mpfr(0))):
raise TypeError("Arguments must be of type 'mpfr'.")
x_bits, x_exp, x_prec = x.digits(2)
y_bits, y_exp, y_prec = y.digits(2)
# (x_exp - y_exp) is the number of zeros that must be prepended
# to x to align the mantissas. If that is greater than the precision
# y, then no bits in common.
if (x_exp - y_exp) > x_prec:
return 0
x_bits = "0" * (x_exp - y_exp) + x_bits
count = 0
while count < min(x_prec, y_prec) and x_bits[count] == y_bits[count]:
count += 1
return count
我还没有广泛测试此功能,但它应该可以让您开始。您需要分别检查实部和虚部。您可能需要修改它以检查符号以及是否执行加法或减法。
关于python - gmpy2 : How do I track precision of mpc operations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11708729/
我正在努力掌握 perl。我正在尝试编写一些脚本作为调度模拟器。 FCFS、SSTF 和 Scan and Look 我有一个包含 block 请求列表的数组,另一个用作缓冲区。首先,我将复制第一个请
假设我正在ng-repeat处理images,它是一个包含src 和 的对象数组>标题属性。 var images = [ {src: 'a.jpg', caption: 'a'}, {src
“git branch --track”和“git checkout -b --track”之间有什么区别,如果有的话? 最佳答案 内部 git-branch 被调用,然后新分支被 check out
我在自定义 Android Switch 小部件的外观时遇到问题。我有自定义的 xml 可绘制对象,我想将其用于拇指(通常显示开或关的小按钮部分)和轨道(拇指滑过的背景)。当我使用 android:t
文档有点太简单了,我无法完全理解 A controller thus effectively has three modes of operation, determined by whether i
已在 Google Analytics(分析)帮助论坛中发布此内容,但无人能提供帮助。希望我在这里有更多的运气......: 我对我的网页使用 Google Anlaytics 异步跟踪。像个魔法一样
我有一个简单的ng-repeat,其中track by表达式不起作用。这是Fiddle . {{n}} 生成的标记“track”是表达式 [[1,2,3,4,5,5,5,5] track
我想使用 Spotify iOS SDK 从选定的播放列表中获取轨道。但它总是不返回我的数组中的任何项目。我正在使用以下代码来获取轨道: [SPTPlaylistSnapshot playlistWi
我正在尝试将一维数组分配给我的默认构造函数,但我不断收到此错误消息。有没有办法为同一个类创建两个默认构造函数,一个不带参数,一个带参数? 标题 #include #include using na
问题中的答案Android play console: internal testing version, close testing ? how does it works?说: End users
也许有人可以告诉我如何在 Switch() 中设置 Track Width、Track StrokeWidth、Thumb Diameter 的大小 Switch(
我有一个适用于 Android 和 iOS 的移动应用,两者都是使用 Xamarin 构建的。 Android - 该应用会上传到 Beta 轨道 上的 Play 商店,测试完成后,就会升级到生产轨道
我在我的 http 请求中发送一个 Json 格式的用户实体,如下所示: POST http://localhost:52054/api/Authentication/DeleteAccessToke
我正在研究 Java 类介绍的最终项目。该项目的一部分涉及从 MusixMatch using their API 获取歌词片段。我可以使用 track.lyrics.get 从 API 获取歌词,但
我将 ASP.NET Core 与 EFCore 2.0.3 和 Automapper 6.2.2 一起使用 这是我的模型: public class StudentClass {
所以我同时使用 react-native-video 和 react-native-track-player,通常两者都工作正常,但是要使用视频播放器的一些额外功能,比如缓冲,我必须使用 Exo pl
有时我听到人们讨论跟踪编程错误的好处,如果不是为了提高对常见错误的认识的话。我已经开始保留我在代码中发现的错误列表,以及可能导致这些错误的原因。我的主要问题是: 我应该保留哪些与我的错误相关的信息 跟
可以对卡尔曼滤波器更新的估计值应用上限和下限约束吗? 我有一种在实际生活中只能有非负值的状态。当我应用卡尔曼滤波器时,此状态会更新为具有负值。如何在卡尔曼滤波器中应用此限制约束? 请回复 谢谢 最佳答
我正在构建一个使用Sendgrid Marketing Email API的应用程序,目的是发送新闻通讯。它具有许多文章链接,还包括横幅广告和其他服务链接。我们显然希望继续跟踪文章链接,但要排除其他链
我所在的团队管理着许多软件项目 - 我们所做的大部分工作都是端到端的,从需求跟踪到项目管理再到采购和设置 - 财务跟踪是我们的一大难题我们的财务有一个完整的过程。目前我们使用电子表格并将所有发票和采购
我是一名优秀的程序员,十分优秀!