LINUX.ORG.RU

Matrix in Qt


0

0

Подскажите библиотеку для работы с матрицами на Qt (либо чтоб можно было использовать в Qt). Нужно считать детерминант и строить обратную матрицу, если кто-нибудь писал подобное (к примеру, по методу Гаусса) прошу поделитесь исходником.

Ответ на: комментарий от Amp

The QMatrix class specifies 2D transformations of a coordinate system.
void QMatrix::setMatrix ( qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy ).

Не подходит. мне нужно работать с данными и размерности матриц около 20х20 (до 100х100)

werwolf
() автор топика
Ответ на: комментарий от vertexua

подкинь какой-нить примерчик, там самый обычный, создание 5и-мерной матрици, и поиск обратной к ней матрици. Буду очень благодарен.

werwolf
() автор топика

Единственное, что я знаю в этом направлении - это Python с его Numpy... Попробуйте покопать в сторону того, что использовалось в QtiPlot. Изучите его исходники что ли...

Divius ★★
()

double * и понеслась. За полчаса можно написать. А исходником только за деньги.

Reset ★★★★★
()
Ответ на: комментарий от vertexua

тогда уж классику предлагать надо — lapack

Reset ★★★★★
()
Ответ на: комментарий от Amp

Есть QMatrix в QtGui.

deprecated. Лучше уж QGenericMatrix

The QGenericMatrix class is a template class that represents a NxM transformation matrix with N columns and M rows.

Gorthauer ★★★★★
()
Ответ на: комментарий от Reset

>double * и понеслась. За полчаса можно написать.

За полчаса там получится явно не то, что хотелось, да ещё и не так хорошо работающее.

anonymous
()
Ответ на: комментарий от Reset

где-то был тест в котором оно безбожно сливало обычному stl'ю

не встречал, и сильно сомневаюсь что дело не в кривых руках тестеров. если есть пруфлинк - было бы интересно посмотреть

jtootf ★★★★★
()
Ответ на: комментарий от Reset

>Гаусс пишется за полчаса.

Может и так, но на создание удобного продуманного API для либы, а также на продумывание архитектуры уйдёт времени побольше. Если конечно топикстартер хочет что-то в меру серьёзное с возможностью расширения, а не налепленный на один раз костыль.

anonymous
()
Ответ на: комментарий от anonymous

Какого API ? Какой архитектуры ? Ты для hello world'а тоже API и архитектуру сочиняешь?

void inverse_matrix(double * dst, const double * src, int n)
{
 ....
  for ...
    for ...
      for ..
}

double det(const double * a, int n)
{
 ....
  for ...
    for ...
      for ..
}
Reset ★★★★★
()
Ответ на: комментарий от Reset

>Какого API ? Какой архитектуры ?

Ну я думал, что топикстартеру надо что-то посерьёзнее, чем просто две функции. Таки он библиотеку просил. Ведь, как мне кажется, для такой простой вещи, как эти две функции, человек на форум не напишет - быстрее самому.

anonymous
()
Ответ на: комментарий от anonymous

Мне нужна хорошая библиотека, без косяков, хотя достаточно и самых основных операций над матрицами. Мне посоветовали Eigen ("http://eigen.tuxfamily.org"), используется в КДЕ, но прикрутить ее в Qt у меня не вышло, кто с ней работал, подскажите как ее правильно нужно использовать в своих проэктах, либо поделитесь примером.

werwolf
() автор топика
Ответ на: комментарий от Reset

>>STL vector of vectors

Руки отрывать за это.

Не могли бы вы аргументировано ответить, чем плох данный вариант. Ну кроме того, что размер строк может быть несогласован.

SSN
()
Ответ на: комментарий от SSN

скоростью и несовместимостью со сторонними библиотеками

Reset ★★★★★
()
Ответ на: комментарий от werwolf

Сказали же уже, что lapack есть. В нем багов нет, так как код уже 40 лет вылизывается.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.