2014-01-30 3 views
0

Я пытаюсь перевернуть матрицу размером [249 1 50 20], это код:arrayfire флип бросает исключение

array flipped_delta = flip(delta, 0); 

я получаю следующее исключение:

Unhandled exception at 0x00000001801FCA92 (libafcu.dll) in r.exe: 0xC0000094: Integer division by zero. 

I попробуйте перевернуть с flip(delta, 2) тогда я получаю:

c:\var\lib\hudson\workspace\build-win64-master\jacket\src\cuda\../common/flip.cp 
p:47: CUDA runtime error: invalid configuration argument (9) 

Что я делаю неправильно? спасибо.

+0

Где находится ваш [testcase] (http://sscce.org)? –

+0

Тестовая площадка чего? это одна строка кода. У меня есть матрица в заданном размере, и я пытаюсь перевернуть ее. Не переусердствуйте. – Ran

+1

Перейдите по ссылке, чтобы узнать. Вы должны создать автономный минимальный пример, который воспроизводит проблему, для вашей собственной отладки, прежде чем даже разместить здесь. Когда вы _do_ отправляете сюда, вы отправляете тестовый файл. Одной строки кода недостаточно, чтобы увидеть, что вы делаете. Что делать, если вы неправильно настроили массив? Это не «чрезмерное» что-либо: верьте или нет, у меня есть немного опыта как в отладке проблем программирования, так и в оказании помощи другим в том, чтобы сделать то же самое. (Еще одна ссылка: http://kera.name/articles/2013/10/nobody-writes-testcases-any-more/) –

ответ

3

Я не знаю ArrayFire, но быстрый взгляд на документацию предполагает, что размерность 0 находится по вертикальной оси, но у вас есть только одна строка, поэтому нет ничего, что можно было бы перевернуть. Следовательно, это может быть ошибкой в ​​обработке этого случая, где я ожидал бы не-op вместо этого.

Попробуйте с размерностью 1 (по горизонтали):

array flipped_delta = flip(delta, 1); 

Отказ от ответственности: это может быть или не фактически быть как индексы измерения работают в ArrayFire.

+0

Сбой во всех измерениях, которые я пробовал (0,1,2). Похоже, вы правы, и это ошибка. – Ran

Смежные вопросы