问题标签 [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.

0 投票
2 回答
2406 浏览

visual-c++ - _addcarry_u64 和 _addcarryx_u64 与 MSVC 和 ICC

MSVC 和 ICC 都支持内在函数_addcarry_u64_addcarryx_u64.

根据英特尔的内在指南白皮书,这些应该分别映射到adcxadox。但是,通过查看生成的程序集,很明显它们分别映射到adcadcx,并且没有内在的映射到adox.

此外,告诉编译器/arch:AVX2MSVC中启用 AVX2或-march=core-avx2在 Linux 上使用 ICC 没有区别。 我不确定如何使用 MSVC 和 ICC 启用 ADX。

MSVC的文档列出_addcarryx_u64了 ADX 的技术,而_addcarry_u64没有列出的技术。但是,MSVC 文档中这些内在函数的链接直接指向 Intel Intrinsic 指南,该指南与 MSVC 自己的文档和生成的程序集相矛盾。

由此我得出结论,英特尔的内在指南和白皮书是错误的。

这对于 MSVC 来说是有意义的,因为它不允许内联汇编,它应该提供一种使用adc它的方法_addcarry_u64

adcxand的一大优点adox是它们在不同的标志(进位CF和溢出OF)上运行,这允许两个独立的并行进位链。但是,既然没有内在的东西,adox这怎么可能呢?使用 ICC 至少可以使用内联汇编,但对于 64 位模式的 MSVC,这是不可能的。


微软和英特尔的文档(白皮书和在线内部指南)现在都同意了。

_addcarry_u64内在文档说只adc生产. _addcarryx_u64内在函数可以产生adcx或。adox但是,使用 MSVC 2013 和 2015,_addcarryx_u64只能生成adcx. ICC同时生产。

0 投票
3 回答
1880 浏览

c++ - 使用来自 clang 的进位代码产生良好的添加

我正在尝试生成添加两个由多个机器字组成的数字的代码(当前使用 clang++-3.8)。为了暂时简化事情,我只添加了 128 位数字,但我希望能够概括这一点。

首先是一些typedef:

和一个“结果”类型:

第一个函数 ,f采用两对无符号字并返回结果,作为中间步骤,在添加它们之前将这两个 64 位字放入一个 128 位字中,如下所示:

这实际上像这样很好地内联:

现在,我使用 clang 多精度原语编写了一个更简单的函数,如下所示:

这将产生以下程序集:

在这种情况下,有一个额外的添加。不是在低位词上做一个普通add的,然后在高位词上做一个adc,它只是add对高位词,然后add是低位词,然后adc再次对高位词做一个,参数为零。

这看起来可能还不错,但是当您尝试使用较大的单词(例如 192 位、256 位)时,您很快就会得到一团糟的ors 和其他处理进位链的指令,而不是简单的add, adc, adc, ..链。 ... adc_

多精度原语似乎在他们打算做的事情上做得很糟糕。

所以我正在寻找的是我可以推广到任何长度的代码(不需要这样做,就足够了,所以我可以弄清楚如何去做),clang 以一种与它一样有效的方式产生添加它内置 128 位类型(不幸的是我不能轻易概括)。我认为这应该只是一个adcs 链,但我欢迎参数和代码,它应该是别的东西。

0 投票
0 回答
340 浏览

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 代码中所做的:

有谁知道该怎么做?谢谢

0 投票
2 回答
356 浏览

c - adcx 和 adox 的测试用例

我正在测试带有进位的英特尔 ADX添加和带有溢出的添加到管道添加大整数。我想看看预期的代码生成应该是什么样子。从_addcarry_u64 和 _addcarryx_u64 与 MSVC 和 ICC,我认为这将是一个合适的测试用例:

当我使用and检查从 GCC 6.1 生成的代码时,它显示 serialized 。并产生类似的结果:-O3-madxaddc-O1-O2

所以我猜测测试用例没有达到目标,或者我做错了什么,或者我使用不正确,......

如果我_addcarryx_u64正确解析英特尔的文档,我相信 C 代码应该生成管道。所以我猜我做错了什么:

描述

将无符号 64 位整数 a 和 b 与无符号 8 位进位 c_in(进位或溢出标志)相加,并将无符号 64 位结果存储在 out 中,并将进位结果存储在 dst(进位或溢出标志)中。

如何生成带有进位添加/带有溢出(adcx/ adox)的管道?


我实际上已经准备好要测试的第 5 代 Core i7(注意adxcpu 标志):

0 投票
1 回答
491 浏览

assembly - 何时使用 ADOX 而不是 ADCX?

Intel 指令集参考中提到的唯一区别是使用溢出标志而不是进位标志。什么时候使用ADOX而不是ADCX执行带有进位的无符号加法?

0 投票
1 回答
612 浏览

mql4 - 如何在 MQL4/5 中设计平均方向运动指数智能交易系统?

我有一个基于 ADX 的交易策略,最简单的方法是当 ADX 在 30 分钟图和小时图上均高于 30 时进入。

我需要在 MQL5 中创建一个 EA,以便在 ADX 在 30 分钟和每小时时间范围内达到 30 级时发出声音警报。

如果有人可以帮助我,我将不胜感激。

0 投票
1 回答
1269 浏览

python - 如何解释 TA-LIB 结果数组?(技术分析库)

我正在使用 node-talib 开发一种金融技术分析算法,它是 TALIB(技术分析库)的包装器。

给定一个包含 400 个仓位的 marketdata 数组,我执行 ADX,得到一个包含 384 个仓位的数组。这是什么意思?那个数组代表什么?

我添加一个代码示例:

结果是一个浮点数组(总是小于 marketdata.open/close/min/max 长度)。

谢谢

0 投票
1 回答
103 浏览

directory - IBM 4690 CBASIC 中的目录列表

我正在寻找正确的 ADX 调用来执行控制器驱动器的目录列表。从 IBM 编程指南中,我看到用于终端的 ADX_TDIR,是否有控制器程序的变体?

0 投票
2 回答
423 浏览

r - ADX 函数结果在 r 中不正确

当我使用 ADX 功能时,我没有得到正确的答案。例如,2017 年 10 月 4 日的 ADX(14) 值为 12.87。下面的代码给了我 9.53。任何想法为什么这是关闭的?

0 投票
1 回答
37 浏览

r - 从矩阵而不是默认 HLC 到自定义列的 adx 计算

我有一个包含股票价格和其他各种数据的矩阵。它不是普通的雅虎下载,因此开盘、高盘、低盘和收盘的标题是不同的。

我想应用adx <- adx(HLC(x),10)但是默认情况下 adx 函数使用 HLC 列。我如何选择自己的列进行计算?即我要使用的列的名称是 (x$c,x$H 和 x$l)