Оператор XOR в Eigen

Я новичок в реализации Eigen Library в VS C ++ 2010.
Моя проблема в том, что я не могу найти оператор XOR, чтобы сделать это в моей матрице. Я использую ^, чтобы сделать мои операции XOR C ++, и это работает, но в Eigen это не работает. Может кто-нибудь сказать мне, есть ли оператор XOR для Eigen? Я все готов прочитать документацию, но не могу найти ее. Вот код, над которым я работаю:

m(0,1) = 1;
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++) {
m(i + 1,j + 1) = m(i,j) ^ m(i, j + 2);
cout << m(i,j) << " ";
}
cout << endl;
}

Спасибо за вашу помощь.

0

Решение

Не уверен насчет вашего вопроса, так как очень важные фрагменты вашего кода отсутствуют (объявление m). Попробуем дать ответ при разных предположениях:

1) предоставленный вами отсканированный код — это код, который вы хотите, но он работает не так, как задумано:

Если вы заявили m как

Eigen::Matrix<int,9,9> m;

Код должен работать. Что-то вроде Eigen::Matrix<float,9,9> не будет работать, так как ^ Оператор не определен для типов с плавающей точкой в ​​C ++. Eigen::MatrixXf будет динамическая версия вашей матрицы, и приведет к той же ошибке. Вы не указываете, в чем заключается ошибка, поэтому она также может быть чем-то совершенно другим, например неправильные размеры m

2) Предоставленный вами фрагмент работает на вас, и вы пытаетесь повторить ту же функциональность с помощью встроенных собственных операторов:

Здесь нет ^ оператор, определенный на собственных типах в ссылка. Но опять же, оператор в вашем урезанном состоянии не относится к собственным типам, как возвращаемое значение вашей операции доступа m(i,j) является ссылкой ValueType на любой тип, который вы использовали для объявления m с.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]