小编Kim*_*y W的帖子

如何在AVX或SSE指令中进行间接加载(聚集 - 分散)?

我一直在寻找一段时间,但似乎无法在文档或SO上找到任何有用的东西.这个问题并没有真正帮助我,因为它引用了修改程序集,我用C语言写作.

我有一些代码进行间接访问,我想要进行矢量化.

for (i = 0; i < LENGTH; ++i) {
   foo[bar[i]] *= 2;
}
Run Code Online (Sandbox Code Playgroud)

由于我有索引我想要加倍内部bar,我想知道是否有办法将这些索引加载foo到矢量寄存器然后我可以应用我的数学并将其存储回相同的索引.

像下面这样的东西.该loadstore说明我只是做了,因为我找不到AVX和SSE文档中像他们一样东西.我想我读过AVX2有类似功能的地方,但我正在使用的处理器不支持AVX2.

for (i = 0; i < LENGTH; i += 8) {
   // For simplicity, I'm leaving out any pointer type casting
   __m256 ymm0 = _mm256_load_indirect(bar+i);
   __m256 ymm1 = _mm256_set1_epi32(2); // Set up vector of just 2's
   __m256 ymm2 = _mm256_mul_ps(ymm0, ymm1);
   _mm256_store_indirect(ymm2, bar+i);
}
Run Code Online (Sandbox Code Playgroud)

在AVX或SSE中是否有任何指令允许我从不同的数组加载带有索引数组的向量寄存器?如果没有明确的功能,还是围绕它的任何"hacky"方式?

c sse vector intel avx

11
推荐指数
1
解决办法
1894
查看次数

如何将ifstream返回到刚刚在C++中读取的行的开头?

在我使用ifstream从文件中读取一行之后,有没有办法将流重新带回到我刚读过的行的开头?

using namespace std;
//Some code here
ifstream ifs(filename);
string line;
while(ifs >> line)
{
   //Some code here related to the line I just read

   if(someCondition == true)
   {
    //Go back to the beginning of the line just read
   }
   //More code here
} 
Run Code Online (Sandbox Code Playgroud)

因此,如果someCondition为true,则在下一个while循环迭代期间读取的下一行将是我刚才读到的同一行.否则,下一个while循环迭代将在文件中使用以下行.如果您需要进一步澄清,请不要犹豫.提前致谢!

更新#1

所以我尝试了以下方法:

while(ifs >> line)
{
   //Some code here related to the line I just read
   int place = ifs.tellg();
   if(someCondition == true)
   {
    //Go back to the beginning of the line just read
    ifs.seekg(place); …
Run Code Online (Sandbox Code Playgroud)

c++ file ifstream

6
推荐指数
1
解决办法
1万
查看次数

PDF.js如何打印多页pdf?

我正在尝试将打印功能添加到嵌入在使用PDF.js库的网页中的多页 PDF.这是有问题的,因为我只有一个页面在用户正在查看它时呈现,并且页面实际上呈现为画布元素中的图像.

在这种情况下,这个问题没有用,因为它适用于单页PDF,可以接受打印画布的当前内容.与这个问题相同.我还想避免在另一个选项卡/窗口中打开PDF并告诉用户自己打印,这会将其嵌入到页面中.

浏览Mozilla的文档,我没有找到任何只打印PDF的本机函数,但是,我将开始玩renderingIntent它似乎可以设置为'print'.

编辑: redingIntent似乎没有任何影响,PDF静止图像呈现为"显示"或"打印"的方式相同.

javascript printing pdf pdf.js

6
推荐指数
1
解决办法
2870
查看次数

PHP尚未使用实体转义的字符串转义

我正在使用第三方API,该API似乎返回的数据已带有实体代码。如The Lion&#8217;s Pride

如果我从API中按原样打印字符串,则它在浏览器中的显示效果就很好(在上面的示例中,它将放在撇号中)。但是,我不能相信,API将始终使用实体在未来,所以我想使用类似htmlentitieshtmlspecialchars之前,我打印自己。这样做的问题是它将再次在实体代码中对“&”号进行编码,并且最终结果将出现The Lion&amp;#8217;s Pride在HTML源代码中,而HTML源代码不会呈现任何用户友好的内容。

如何使用htmlentitieshtmlspecialchars仅在尚未在字符串上使用它的情况下?是否有内置方法来检测字符串中是否已经存在实体?

php string html-entities

5
推荐指数
1
解决办法
167
查看次数

标签 统计

avx ×1

c ×1

c++ ×1

file ×1

html-entities ×1

ifstream ×1

intel ×1

javascript ×1

pdf ×1

pdf.js ×1

php ×1

printing ×1

sse ×1

string ×1

vector ×1