rjhogan / Adept-2

Combined array and automatic differentiation library in C++
http://www.met.reading.ac.uk/clouds/adept/
Apache License 2.0
163 stars 29 forks source link

quick_e.h does not support 32-bit arm targets (e.g armeabi-v7a). #19

Closed nordstroem closed 3 years ago

nordstroem commented 3 years ago

There are missing symbols, some examples:

The issue is that these are only defined in the arm_neon.h header for 64 bit targets (__aarch64__). Is this something that is planned to be fixed? Or should vectorization be disabled for 32 bit arm targets?

rjhogan commented 3 years ago

Thanks for alerting me to this. I had tested NEON vectorization on my Raspberry Pi with the 64-bit Manjaro OS. As you say, NEON is much more limited on 32-bit targets, lacking not only vectorized double precision operations, but also some basic single precision operations like division (confirmed when I tried the 32-bit Raspian OS). It doesn't seem worth figuring out what small subset of vectorized floating-point operations I could still support in Adept, so in the latest commit I've disabled vectorization for 32-bit ARM targets.

nordstroem commented 3 years ago

Great! Thanks for adressing this.