2017-01-09 13 views
1

У меня есть проблема с Эйгеном, как показано ниже:Как понять ошибку из Эйгена

LKSSP0.5psk: /usr/include/eigen3/Eigen/src/Core/Block.h:134: Эйген: : Block :: Block (XprType &, Eigen :: Index, Eigen :: Index) [с XprType = Eigen :: Matrix; int BlockRows = 2; int BlockCols = 2; bool InnerPanel = false; Эйген :: Index = длинный ИНТ]: Утверждение `StartRow> = 0 & & BlockRows> = 1 & & StartRow + BlockRows < = xpr.rows() & & startCol> = 0 & & BlockCols> = 1 & & startCol + BlockCols < = xpr.cols() 'не удалось. команда завершается по сигналу 6 27650.16user 5.67system 1: 17: 34elapsed 594% CPU (0avgtext + 0avgdata 525396maxresident) к 328inputs + 77192outputs (1major + 17571minor) PageFaults 0swaps

Может кто-нибудь помочь понять, что это значит так что я могу решить проблему? Благодарю.

+4

Это означает, что вы делаете что-то неправильно и должны действовать через ваш код с помощью отладчика. Если вы не знаете, как использовать отладчик, я предлагаю вам начать с [этого простого учебника] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –

ответ

2

Ключевое слово в этом сообщении - «утверждение». Ошибка assertion, поскольку базовые условия матрицы не выполняются. Отлаживайте код, найдите строку, содержащую assert, и проверьте условия.

Эта часть:

Утверждение `StartRow> = 0 & & BlockRows> = 1 & & StartRow + BlockRows < = xpr.rows() & & startCol> = 0 & & BlockCols> = 1 & & startCol + BlockCols < = xpr.cols() 'не удалось.

перечислены условия, которые должны быть выполнены для того, чтобы программы, чтобы идти на (например, StartRow> = 0), но вы не знаете, которые фактически не выполняются, если вы не отлаживать код и проверьте. В этом случае вы указали отрицательное количество столбцов/строк, относящихся к элементу вне границ матрицы, или значение переменной BlockRows меньше 1.

+0

Спасибо за объяснение. –

+1

Нет проблем. Если вы считаете, что этот ответ удовлетворяет вас, вы можете принять его отдельно от поддержки, чтобы указать, что вы считаете, что ваша проблема будет решена. – KjMag