问题标签 [adx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - _addcarry_u64 和 _addcarryx_u64 与 MSVC 和 ICC
MSVC 和 ICC 都支持内在函数_addcarry_u64
和_addcarryx_u64
.
根据英特尔的内在指南和白皮书,这些应该分别映射到adcx
和adox
。但是,通过查看生成的程序集,很明显它们分别映射到adc
和adcx
,并且没有内在的映射到adox
.
此外,告诉编译器
我不确定如何使用 MSVC 和 ICC 启用 ADX。/arch:AVX2
在MSVC中启用 AVX2或-march=core-avx2
在 Linux 上使用 ICC 没有区别。
MSVC的文档列出_addcarryx_u64
了 ADX 的技术,而_addcarry_u64
没有列出的技术。但是,MSVC 文档中这些内在函数的链接直接指向 Intel Intrinsic 指南,该指南与 MSVC 自己的文档和生成的程序集相矛盾。
由此我得出结论,英特尔的内在指南和白皮书是错误的。
这对于 MSVC 来说是有意义的,因为它不允许内联汇编,它应该提供一种使用adc
它的方法_addcarry_u64
。
adcx
and的一大优点adox
是它们在不同的标志(进位CF
和溢出OF
)上运行,这允许两个独立的并行进位链。但是,既然没有内在的东西,adox
这怎么可能呢?使用 ICC 至少可以使用内联汇编,但对于 64 位模式的 MSVC,这是不可能的。
微软和英特尔的文档(白皮书和在线内部指南)现在都同意了。
_addcarry_u64
内在文档说只adc
生产. _addcarryx_u64
内在函数可以产生adcx
或。adox
但是,使用 MSVC 2013 和 2015,_addcarryx_u64
只能生成adcx
. ICC同时生产。
c++ - 使用来自 clang 的进位代码产生良好的添加
我正在尝试生成添加两个由多个机器字组成的数字的代码(当前使用 clang++-3.8)。为了暂时简化事情,我只添加了 128 位数字,但我希望能够概括这一点。
首先是一些typedef:
和一个“结果”类型:
第一个函数 ,f
采用两对无符号字并返回结果,作为中间步骤,在添加它们之前将这两个 64 位字放入一个 128 位字中,如下所示:
这实际上像这样很好地内联:
现在,我使用 clang 多精度原语编写了一个更简单的函数,如下所示:
这将产生以下程序集:
在这种情况下,有一个额外的添加。不是在低位词上做一个普通add
的,然后在高位词上做一个adc
,它只是add
对高位词,然后add
是低位词,然后adc
再次对高位词做一个,参数为零。
这看起来可能还不错,但是当您尝试使用较大的单词(例如 192 位、256 位)时,您很快就会得到一团糟的or
s 和其他处理进位链的指令,而不是简单的add
, adc
, adc
, ..链。 ... adc
_
多精度原语似乎在他们打算做的事情上做得很糟糕。
所以我正在寻找的是我可以推广到任何长度的代码(不需要这样做,就足够了,所以我可以弄清楚如何去做),clang 以一种与它一样有效的方式产生添加它内置 128 位类型(不幸的是我不能轻易概括)。我认为这应该只是一个adc
s 链,但我欢迎参数和代码,它应该是别的东西。
google-api - Google ADX Seller Rest API:按自定义货币获取报告
我正在使用 Google ADX API 按日期范围获取收入报告。
默认情况下,我以 ILS 获得收入,但我以美元或欧元获得货币,我不想使用像https://www.google.com/finance/converter这样的货币转换
根据正式文档 api ( https://developers.google.com/ad-exchange/seller-rest/reference/v1.1/reports/generate ) 我没有找到解决这个问题的任何方法..
这就是我在我的 php 代码中所做的:
有谁知道该怎么做?谢谢
c - adcx 和 adox 的测试用例
我正在测试带有进位的英特尔 ADX添加和带有溢出的添加到管道添加大整数。我想看看预期的代码生成应该是什么样子。从_addcarry_u64 和 _addcarryx_u64 与 MSVC 和 ICC,我认为这将是一个合适的测试用例:
当我使用and检查从 GCC 6.1 生成的代码时,它显示 serialized 。并产生类似的结果:-O3
-madx
addc
-O1
-O2
所以我猜测测试用例没有达到目标,或者我做错了什么,或者我使用不正确,......
如果我_addcarryx_u64
正确解析英特尔的文档,我相信 C 代码应该生成管道。所以我猜我做错了什么:
描述
将无符号 64 位整数 a 和 b 与无符号 8 位进位 c_in(进位或溢出标志)相加,并将无符号 64 位结果存储在 out 中,并将进位结果存储在 dst(进位或溢出标志)中。
如何生成带有进位添加/带有溢出(adcx
/ adox
)的管道?
我实际上已经准备好要测试的第 5 代 Core i7(注意adx
cpu 标志):
assembly - 何时使用 ADOX 而不是 ADCX?
Intel 指令集参考中提到的唯一区别是使用溢出标志而不是进位标志。什么时候使用ADOX
而不是ADCX
执行带有进位的无符号加法?
mql4 - 如何在 MQL4/5 中设计平均方向运动指数智能交易系统?
我有一个基于 ADX 的交易策略,最简单的方法是当 ADX 在 30 分钟图和小时图上均高于 30 时进入。
我需要在 MQL5 中创建一个 EA,以便在 ADX 在 30 分钟和每小时时间范围内达到 30 级时发出声音警报。
如果有人可以帮助我,我将不胜感激。
python - 如何解释 TA-LIB 结果数组?(技术分析库)
我正在使用 node-talib 开发一种金融技术分析算法,它是 TALIB(技术分析库)的包装器。
给定一个包含 400 个仓位的 marketdata 数组,我执行 ADX,得到一个包含 384 个仓位的数组。这是什么意思?那个数组代表什么?
我添加一个代码示例:
结果是一个浮点数组(总是小于 marketdata.open/close/min/max 长度)。
谢谢
directory - IBM 4690 CBASIC 中的目录列表
我正在寻找正确的 ADX 调用来执行控制器驱动器的目录列表。从 IBM 编程指南中,我看到用于终端的 ADX_TDIR,是否有控制器程序的变体?
r - ADX 函数结果在 r 中不正确
当我使用 ADX 功能时,我没有得到正确的答案。例如,2017 年 10 月 4 日的 ADX(14) 值为 12.87。下面的代码给了我 9.53。任何想法为什么这是关闭的?
r - 从矩阵而不是默认 HLC 到自定义列的 adx 计算
我有一个包含股票价格和其他各种数据的矩阵。它不是普通的雅虎下载,因此开盘、高盘、低盘和收盘的标题是不同的。
我想应用adx <- adx(HLC(x),10)
但是默认情况下 adx 函数使用 HLC 列。我如何选择自己的列进行计算?即我要使用的列的名称是 (x$c,x$H 和 x$l)