草庐IT

uboot移植

全部标签

c++ - 如何编写可移植的 simd 代码以实现复杂的乘法归约

我想编写快速simd代码来计算复杂数组的乘法归约。在标准C中,这是:#includecomplexfloatf(complexfloatx[],intn){complexfloatp=1.0;for(inti=0;in最多为50。Gcc不能自动矢量化复数乘法,但是,我很乐意假设gcc编译器,如果我知道我想以sse3为目标,我可以关注Howtoenablesse3autovectorizationingcc并写:typedeffloatv4sf__attribute__((vector_size(16)));typedefunion{v4sfv;floate[4];}float4type

c++ - 可移植 C++ 构建系统

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion我正在为C++项目寻找一个良好且易于维护的可移植构建系统。主要平台应包括Windows(VisualStudio8+)和Linux(gcc);Cygwin可能是一个优势。我们正在考虑两种主要的可能性:CMake和Boost.Jam。SCons也可以是一种选择,但我还没有调查过。CMake和Boost.Jam似乎具有以下特点:CMake:(+)生成原生“ma

c++ - 可移植 C++ 构建系统

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion我正在为C++项目寻找一个良好且易于维护的可移植构建系统。主要平台应包括Windows(VisualStudio8+)和Linux(gcc);Cygwin可能是一个优势。我们正在考虑两种主要的可能性:CMake和Boost.Jam。SCons也可以是一种选择,但我还没有调查过。CMake和Boost.Jam似乎具有以下特点:CMake:(+)生成原生“ma

c++ - 可移植比较和交换(原子操作)C/C++ 库?

是否有任何小型库,将各种处理器的类似CAS的操作包装成宏或函数,可跨多个编译器移植?PS。atomic.hpplibrary在boost::interprocess::detail命名空间内。作者拒绝让它成为一个公共(public)的、维护良好的图书馆。让我们重新打开问题,看看是否还有其他选择? 最佳答案 OPA(开放可移植原子)可能非常适合您的需求。https://trac.mcs.anl.gov/projects/openpa/它在MIT风格的许可下为跨多个平台的通用原子操作提供一致的CAPI。图书馆很小,当然可以满足您的大小要

c++ - 可移植比较和交换(原子操作)C/C++ 库?

是否有任何小型库,将各种处理器的类似CAS的操作包装成宏或函数,可跨多个编译器移植?PS。atomic.hpplibrary在boost::interprocess::detail命名空间内。作者拒绝让它成为一个公共(public)的、维护良好的图书馆。让我们重新打开问题,看看是否还有其他选择? 最佳答案 OPA(开放可移植原子)可能非常适合您的需求。https://trac.mcs.anl.gov/projects/openpa/它在MIT风格的许可下为跨多个平台的通用原子操作提供一致的CAPI。图书馆很小,当然可以满足您的大小要

c++ - 如何制作可移植 isnan/isinf 函数

我一直在Linux平台上使用isinf、isnan函数,效果很好。但这在OS-X上不起作用,所以我决定使用在Linux和OS-X上都可以使用的std::isinfstd::isnan。但英特尔编译器无法识别它,根据http://software.intel.com/en-us/forums/showthread.php?t=64188,我猜它是英特尔编译器中的一个错误。所以现在我只想避免麻烦,定义自己的isinf、isnan实现。有谁知道如何做到这一点?编辑:我最终在我的源代码中这样做以使isinf/isnan工作#include#include#ifdef__INTEL_COMPIL

c++ - 如何制作可移植 isnan/isinf 函数

我一直在Linux平台上使用isinf、isnan函数,效果很好。但这在OS-X上不起作用,所以我决定使用在Linux和OS-X上都可以使用的std::isinfstd::isnan。但英特尔编译器无法识别它,根据http://software.intel.com/en-us/forums/showthread.php?t=64188,我猜它是英特尔编译器中的一个错误。所以现在我只想避免麻烦,定义自己的isinf、isnan实现。有谁知道如何做到这一点?编辑:我最终在我的源代码中这样做以使isinf/isnan工作#include#include#ifdef__INTEL_COMPIL

c++ - 对于可移植代码,我应该使用 long long 还是 int64_t?

我有一个用C和C++编写的开源代码库。我正在寻找一种保证至少64位宽的整数类型,它可以在大多数OSX(英特尔,64位)和具有开源C的Linux机器上可靠地编译和C++编译器,最终用户无需做太多额外的工作。Windows和32位客户端支持目前并不重要。我在OSX上做了一些测试,开发者工具附带的最新GCC不支持C+11模式(因此似乎不能保证longlong的可用性)。Clang也不支持这个,虽然它支持longlong如果启用了C99模式,在某个版本之后。当可移植性是一个重要目标时,一般建议使用int64_t代替longlong吗?使用格式说明符似乎很痛苦。我能否可靠地将int64_t转换为

c++ - 对于可移植代码,我应该使用 long long 还是 int64_t?

我有一个用C和C++编写的开源代码库。我正在寻找一种保证至少64位宽的整数类型,它可以在大多数OSX(英特尔,64位)和具有开源C的Linux机器上可靠地编译和C++编译器,最终用户无需做太多额外的工作。Windows和32位客户端支持目前并不重要。我在OSX上做了一些测试,开发者工具附带的最新GCC不支持C+11模式(因此似乎不能保证longlong的可用性)。Clang也不支持这个,虽然它支持longlong如果启用了C99模式,在某个版本之后。当可移植性是一个重要目标时,一般建议使用int64_t代替longlong吗?使用格式说明符似乎很痛苦。我能否可靠地将int64_t转换为

c++ - 打包结构是可移植的吗?

我在Cortex-M4微Controller上有一些代码,想使用二进制协议(protocol)与PC通信。目前,我正在使用使用GCC特定的packed属性的打包结构。这是一个粗略的大纲:structSensor1Telemetry{int16_ttemperature;uint32_ttimestamp;uint16_tvoltageMv;//etc...}__attribute__((__packed__));structTelemetryPacket{Sensor1Telemetrytele1;Sensor2Telemetrytele2;//etc...}__attribute__