Sorry, something went wrong.
|
Hey, things look good but I am getting the same failures you are. Do you need us to fix these or do you think you can handle this? |
Sorry, something went wrong.
|
I am looking into it, but if you could look into the remaining failing tests, that would be very much appreciated! The last 3 are all related to bilinear interpolation, but I'm not sure about the RichardsonLucyOnGrayscale test. |
Sorry, something went wrong.
| #if AF_API_VERSION >= 37 | ||
| , f16 ///< 16-bit floating point value | ||
| #endif | ||
| , s8 ///< 8-bit signed integral value /// TODO AF_API_VERSION |
There was a problem hiding this comment.
| , s8 ///< 8-bit signed integral value /// TODO AF_API_VERSION | |
| #if AF_APU_VERSION >= 310 | |
| , s8 ///< 8-bit signed integral value /// TODO AF_API_VERSION | |
| #endif |
Sorry, something went wrong.
There was a problem hiding this comment.
With the current system, if I use 310 API versions 4.0+ will need to be set to 400, not 40. This is not really a problem currently, but maybe needs to be looked at in the future?
Sorry, something went wrong.
|
|
||
| template<> | ||
| struct dtype_traits<signed char> { | ||
| enum { | ||
| af_type = s8 , | ||
| ctype = f32 | ||
| }; | ||
| typedef signed char base_type; | ||
| static const char* getName() { return "schar"; } | ||
| }; |
There was a problem hiding this comment.
| template<> | |
| struct dtype_traits<signed char> { | |
| enum { | |
| af_type = s8 , | |
| ctype = f32 | |
| }; | |
| typedef signed char base_type; | |
| static const char* getName() { return "schar"; } | |
| }; | |
| #if AF_API_VERSION >= 310 | |
| template<> | |
| struct dtype_traits<signed char> { | |
| enum { | |
| af_type = s8 , | |
| ctype = f32 | |
| }; | |
| typedef signed char base_type; | |
| static const char* getName() { return "schar"; } | |
| }; | |
| #endif |
Sorry, something went wrong.
There was a problem hiding this comment.
Public interface changes need to be surrounded with these ifdefs. This includes anything in the include folder but not in the src folder.
Sorry, something went wrong.
| AFAPI array operator&(const array& lhs, const long long& rhs); | ||
| AFAPI array operator&(const array& lhs, const long& rhs); | ||
| AFAPI array operator&(const array& lhs, const short& rhs); | ||
| AFAPI array operator&(const array& lhs, const signed char& rhs); |
There was a problem hiding this comment.
Do the bitwise and logical AND operators need to be protected by the ifdefs? None of the other types have guards.
Sorry, something went wrong.
There was a problem hiding this comment.
Tested on all backends on RTX3070 Ti both on Windows and Ubuntu
Sorry, something went wrong.
Description
Adds signed 8-bit integer support to all arrayfire backends. So far all backends build and most tests pass. Failing tests:
RichardsonLucy doesn't work well with negative values. Test passes when data is 0-127.
Test data for every non-cardinal rotation doesn't work well with s8.
All of the image loading tests appear to be failing due to unsigned->signed conversion overflow related to image loading. (fixed)
Changes to Users
No additional build flags have been added for this feature.
Checklist