C++ 错误:“_mm_sin_ps”未在此范围内声明

2024-04-19

我正在尝试对将函数应用于数组的不同方法进行基准测试。

why is

_mm_sin_ps在我的范围内不知道但是_mm_sqrt_ps is?

我怎样才能让它知道?并且编译没有错误。

#include <random>
#include <iostream>
#include <cmath>
#include <chrono>
#include <algorithm>
#include <valarray>
#include "immintrin.h"
#include <array>
int main()
{
    std::cout<<"start\n";
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<> dis(-1000, 1000);
    int N=100;
    while(N--)
    {   
        std::cout<<"\nN: "<<N;

    const int T1=4E6;
      { 
        int T=T1,T0=T1/4;
        std::array<float,T1> array;
        while(T--)
        {
            array[T]=dis(gen);
        }
        auto start_time = std::chrono::high_resolution_clock::now();
        auto it =array.begin();
        while(T0--)
        {
            __m128 X = _mm_loadu_ps(it);
            __m128 result = _mm_sin_ps(X);
            _mm_storeu_ps(it, result);
            it+=4;
        }
        auto time2=std::chrono::high_resolution_clock::now()-start_time;
            std::cout<<"\nintr1: "<<std::chrono::duration_cast<std::chrono::microseconds>(time2).count();
        }
  }
    std::cout<<"\nfin\n";
    return 0;
}

compiler

g++ -v

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu      4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs   --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable- plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu  --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 

_mm_sin_ps是的一部分SVML https://software.intel.com/en-us/node/524289库,仅随英特尔编译器一起提供。 GCC 开发人员专注于包装机器指令和简单任务,因此其中没有 SVMLimmintrin.h so far.

您必须使用库或自己编写它。 窦实施:

  • 泰勒级数 https://en.wikipedia.org/wiki/Taylor_series#Approximation_and_convergence
  • CORDIC https://en.wikipedia.org/wiki/CORDIC
  • 二次曲线 http://www.mclimatiano.com/faster-sine-approximation-using-quadratic-curve/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 错误:“_mm_sin_ps”未在此范围内声明 的相关文章

随机推荐

  • 扩展 AbstractTableModel 中的自定义 setValueAt 方法

    我正在用 Java 开发 DVD 租赁系统 但遇到了视图问题 这是我的代码 import javax swing import javax swing table AbstractTableModel import javax swing
  • Android TimePickerDialog 样式指南/文档?

    我正在尝试为 sdk 21 Lollipop 设置 TimePickerDialog 的样式 到目前为止 我已经弄清楚如何更改 XML 中的默认颜色方案
  • 不使用 iTunes Connect 进行应用内购买?

    我有一个向用户销售产品的网站 可下载 我正在创建一个 iPhone 应用程序 希望能够使用 3 0 的应用内购买来销售一些产品 现在文档提到 任何你想出售的东西都必须上传到 iTunes Connect 并得到 Apple 的批准 但我希望
  • 绘制这样的相关矩阵图的最佳方法是什么?

    I used ggpairs to generate this plot 这是它的代码 load packages library ggplot2 library GGally library plyr library dplyr libr
  • 使用 Google Reflections 获取所有类的列表 - 但 java.* 似乎丢失了

    我正在使用 google Reflections 包来构建可调用的所有类的索引 以下代码应该返回 JVM 中加载的所有类 List
  • C#中从WebApi获取数据

    我有 webapi 和她的方法 HttpPost HttpGet ActionName GetData public MyData GetData FromUri MyData data return datamanager get dat
  • 使用 YouTube API 仅搜索 YouTube 上的音乐曲目

    我想使用 YouTube API v3 来仅搜索音乐曲目 没有猫或藤蔓或任何其他非音乐视频 我在 API Explorer 和文档中查找了有关此事的任何指示 但找不到任何有用的信息 如何只搜索音乐 是否还可以按发行年份或音乐流派过滤搜索结果
  • 如何使用邮递员查看返回的 html 呈现为网页

    我正在与邮递员一起测试 Flask 应用程序 我注意到 如屏幕截图所示 我收到了返回的 HTML 我知道过去我能够看到返回的 HTML 呈现为网页 但现在我不能 尽管单击各种按钮 如何将返回的 html 作为网页查看 In order to
  • 如何在 odoo 8 中导入 QOH

    我想通过 odoo 前端或使用后端 postgres 查询 更新 odoo 中的库存 我的股票价值保存在 csv 文件中 最后 我想批量更新现有数量 终于解决了 按照步骤操作即可 步骤1 1 gt 在仓库模块中选择产品 在列表视图中打开 2
  • 检测我们何时移回 Flutter 中的上一页

    我们从 Page1 移至 Page2 但现在从 Page2 移回 Page1 如下所示 Navigator of context pop 我们如何在 Page1 上检测到我们返回了 Navigator push context Materi
  • 使用 .NET 创建采用 JPEG 压缩的多页 TIFF

    有没有办法使用 NET 创建多页 TIFF 和 JPEG 压缩 我可以使用 LZW 压缩创建 TIFF 但文件非常大 好像EncoderValue枚举 我用来设置压缩 甚至没有合适的成员 你可以看看 gt gt 这篇文章 https sta
  • 这个查询可以安全地避免 SQL 注入吗?

    该脚本使用 PHP 编写 作为数据库 我使用 MySQL 这是脚本本身 unsafe variable GET user input sql sprintf INSERT INTO table column VALUES s unsafe
  • Drupal Studs 帮助我使用 form_alter 钩子(我就快到了)

    所以我认为我在概念上已经差不多了 但需要一些缺失的指导 目标是向普通用户注册表单添加一些字段 对其进行一些样式设置 然后将其提交并将额外的字段存储在表中 这是我到目前为止所拥有的 有人可以给我最后的推动并让我继续前进吗 请帮我 另外 如何应
  • Ionic2/Cordova typescript 项目中的 Moment.js 插件

    在我用 Typescript 编写的 Ionic 2 项目中 我使用 moment js 库 我使用代码片段导入它 import as moment from moment 这样做之后 在我的组件中我可以正常使用 moment 即 let
  • setlocale() 的用途是什么?

    我正在学习c 我发现了C 库的这个函数 setlocale http www cplusplus com reference clocale setlocale http www cplusplus com reference clocal
  • Caffe:如果内存中只能容纳一小部分,我该怎么办?

    我正在尝试训练一个非常大的模型 因此 我只能将非常小的批量大小放入 GPU 内存中 处理小批量的结果非常噪声梯度估计 https stackoverflow com a 33717093 1714410 我该怎么做才能避免这个问题 您可以更
  • PHP in_array() / array_search() 奇怪的行为

    我在使用 PHP 函数时发现了一些奇怪的行为in array 我有一个像这样的数组 arr TRUE some string something else 现在如果我想检查是否 test 显然不在数组中 但是in array 仍然返回 TR
  • 制作自定义 Android 闹钟以进行提醒

    我正在制作药物提醒应用程序 在该应用程序中 我添加了添加有关医生预约提醒的功能 在我的应用程序中 允许用户设置他 她自己的日期和时间 并且在该日期和时间应该触发警报 请帮助我 我已从此线程中参考 如何在Android中设置闹钟 https
  • 使用 mysql 选择 id 周围的行之前和之后

    我需要使用 mySQL 获取 ID 周围的 ID Example 表中ID 2 4 5 9 11 15 19 22 25 例如 我需要知道 ID 9 周围的 5 个 ID 查询应返回 4 5 9 11 15 Thanks 一个可能的解决方案
  • C++ 错误:“_mm_sin_ps”未在此范围内声明

    我正在尝试对将函数应用于数组的不同方法进行基准测试 why is mm sin ps在我的范围内不知道但是 mm sqrt ps is 我怎样才能让它知道 并且编译没有错误 include