gpt4 book ai didi

android - 如何解决错误:在此范围内未声明 'vreinterpretq_u32_f64'-在Android上使用Eigen构建

转载 作者:行者123 更新时间:2023-12-02 10:38:24 25 4
gpt4 key购买 nike

我正在尝试为具有Eigen作为依赖项的Android构建Tensorflow Lite。
在构建过程中出现此错误:

   .../eigen/Eigen/src/Core/arch/NEON/Complex.h:383:83: error: 'vreinterpretq_u32_f64' was not declared in this scope
Packet2d eq_swapped = vreinterpretq_f64_u32(vrev64q_u32(vreinterpretq_u32_f64(eq)));
^

经过一番挖掘,我发现:
  • vreinterpretq_u32_f64确实未在Eigen中定义,并且
  • Eigen仅具有标准库作为依赖项

  • 那么,该功能究竟应从何而来? (我确实有明确包含的标准库android-ndk-r17c / sources / cxx-STL / llvm-libc++)我是否缺少某些包含项?
    有人可以帮助我对此有所启发吗?

    谢谢。

    最佳答案

    似乎vreinterpretq_u32_f64vreinterpretq_f64_u32没有定义。
    如果查看Eigen/src/Core/arch/NEON/PacketMath.h行604,则会定义vreinterpretq_f64_u64vreinterpretq_u64_f64
    考虑 vector 宽度为128位,vreinterpretq_u32_f64应该从f64x2转换为u32x4,类似于vreinterpretq_f64_u32
    只需在Eigen/src/Core/arch/NEON/PacketMath.h的第604行之后添加这两个定义

    template <typename T> float64x2_t vreinterpretq_f64_u32(T a) { return (float64x2) a; }
    template <typename T> uint32x4_t vreinterpretq_u32_f64(T a) { return (uint32x4) a; }

    希望这可以帮助!

    关于android - 如何解决错误:在此范围内未声明 'vreinterpretq_u32_f64'-在Android上使用Eigen构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58408911/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com