Eigen - это библиотека шаблонов C++ для линейной алгебры: матриц, векторов и связанных алгоритмов.
1 ответ

Результат SelfAdjointEigenSolver, сохраненный как член, повторно инициализируется, когда в другой области видимости

Я пытаюсь запустить PCA на блоке собственной матрицы. Наблюдения во входной матрице находятся в столбцах. Я хочу сохранить собственные векторы в виде матрицы для последующего использования. Но матрица (m_pcaCoefs) "переинициализируется", когда я исп…
24 апр '18 в 08:33
1 ответ

Собственная сумма (), чтобы плавать

У меня есть Eigen TensorMap в моей пользовательской операции тензорного потока типа Eigen::TensorMap<Eigen::Tensor<float, 1, 1, long int>, 16, Eigen::MakePointer> Подбор номера с него работает: float a = Tbuf(0); Но если хотите подвести …
02 мар '18 в 12:05
1 ответ

Как мне создать матрицу комплексных чисел в Eigen

У меня есть матрица размером NxM, и я хотел бы создать матрицу комплексных чисел размером N/2 x M, где действительные числа - это левая сторона матрицы, а сложная часть - это правая сторона. Я придумал это: auto complexmatrix= Shapes.block(0,0,Shape…
28 янв '13 в 13:52
4 ответа

Как оптимизировать этот продукт из трех матриц в C++ для x86?

У меня есть ключевой алгоритм, в котором большая часть времени выполнения тратится на вычисление продукта с плотной матрицей: A*A'*Y, where: A is an m-by-n matrix, A' is its conjugate transpose, Y is an m-by-k matrix Typical characteristics: - k is …
0 ответов

Eigen - Создать разреженную матрицу с элементами вектора на k-й диагонали

В Эйгене asDiagonal Функция создает диагональную матрицу, используя вектор. Эта функция размещает элементы вектора только на главной диагонали. Существует ли быстрый способ создания разреженной матрицы с элементами вектора на k-й диагонали? Для прим…
29 мар '17 в 15:59
1 ответ

Как написать сторонний библиотечный класс-оболочку вокруг шаблонов выражений

Мы пытаемся внедрить новый код C++ в моей исследовательской группе для выполнения большого численного моделирования (конечные элементы, методы конечных разностей, оптимизация топологии и т. Д.). Программное обеспечение будет использоваться людьми из…
10 мар '15 в 16:09
2 ответа

Ошибка при создании объекта из шаблонного класса

Я пытался найти способ выборки случайных векторов из многомерного нормального распределения в C++, имеющего как средний вектор, так и ковариационную матрицу, во многом как в Matlab mvnrnd функция работает. Я нашел соответствующий код для класса, кот…
03 май '13 в 14:25
1 ответ

Eigen::NullaryExpr вход для оператора

Может кто-нибудь, пожалуйста, помогите мне с пониманием Eigen::NullaryExpr(). У меня есть функтор с оператором () внутри template<typename Scalar> struct scalar_op template<typename Index> inline const Scalar operator()(Index, Index = 0,…
14 мар '16 в 19:56
1 ответ

C++ Spectra с разреженной матрицей RowMajor

Я пытаюсь использовать библиотеку Spectra 3.5 на моем компьютере с Linux, и оболочка SparseGenMatProd для умножения Matrix-Vector, похоже, работает только тогда, когда разреженная матрица имеет формат ColMajor. Это нормальное поведение, и если да, т…
22 авг '18 в 17:20
1 ответ

Как изменяется собственный необработанный буфер даже при передаче ссылки на функцию

Я создавал программу на C++ с возможностью взаимодействия с python через необработанный буфер, если быть точным, тупой. И я использовал собственную библиотеку для матричных операций. Потом я обнаружил это очень странное поведение. Как вы, возможно, …
28 окт '16 в 17:07
0 ответов

Многопоточный линейный решатель Eigen - с использованием прекондиционера IncompleteLU с Bicgstab

Я пытаюсь решить большую разреженную матрицу с BICGSTAB в Eigen. Я должен выполнить код параллельно, и кажется, что предварительное условие IncompleteLU - единственный способ, которым мое решение сходится. Однако, когда я использую BIGSTAB с предвар…
15 сен '18 в 02:52
1 ответ

Должен ли я перейти на MTL4 с Eigen, если мне также нужно использовать ODE?

Я ищу матричные библиотеки C++ для работы в системе Linux (Fedora). Намерение состоит в том, чтобы реализовать непрерывные аттракторные нейронные сети и тому подобное для вычислительной нейробиологии. Я уже начал использовать Eigen. Тем не менее, я …
08 янв '13 в 03:17
1 ответ

Ошибка при компиляции библиотеки Eigen v3.3.4 с VS2017 + nvcc (CUDA 9.0)

Я попытался скомпилировать следующий код, где я использую Eigen и CUDA одновременно, и я получаю ошибку. #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> #include <iostream> #include <Eigen/Dense> …
19 янв '18 в 12:41
1 ответ

Нарезается ли произведение собственных плотно-разреженных матриц?

Я знаю, что разреженный продукт нарезается в соответствии с документацией: https://eigen.tuxfamily.org/dox/TopicMultiThreading.html А как насчет плотно-разреженных?
21 апр '18 в 19:50
1 ответ

Производительность умножения матрицы Eigen3 зависит от процессора?

В последние месяцы я работал с умножением компьютерных матриц и провел несколько тестов с использованием openMP и eigen3. Испытания проводились на следующих машинах: Компьютер 1: Процессор Intel Core i7-3610QM @ 2,30 ГГц / 6 ГБ ddr3 Компьютер 2: Шес…
1 ответ

Получение местоположения максимального коэффициента библиотеки Eigen C++ Vector

Я столкнулся с проблемой из-за неправильного понимания документации или из-за ошибки. Я хочу получить положение максимального коэффициента вектора: #include <Eigen/Core> #include <iostream> int main(int argc, char *argv[]) { Eigen::Vecto…
30 май '14 в 16:36
0 ответов

Предупреждение: использование приведения в старом стиле [-Wold-style-cast]

Ubuntu 18.04, gcc версия 6.4.0 20180424 (Ubuntu 6.4.0-17ubuntu1) Следующая программа вызывает библиотеку Eigen в среде сборки Openfoam2.3.1 (библиотека классов Computational Fluid Dynamics (CFD)), и она создается компилятором g ++ - 5. Среда оболочк…
20 дек '18 в 15:58
5 ответов

Как удалить определенную строку или столбец при использовании Eigen Library C++

Я использую библиотеку Eigen для моего проекта. Я ищу, как удалить определенную строку или столбец из данной матрицы в Eigen. Я не успешен. MatrixXd A = X1 X2 X3 X4 Y1 Y2 Y3 Y4 Z1 Z2 Z3 Z4 A1 A2 A3 A4 MatrixXd Atransform = X1 X2 X4 Y1 Y2 Y4 Z1 Z2 Z4…
08 ноя '12 в 13:58
0 ответов

Brew установить CGAL и Eigen включить файлы

Я использовал Homebrew для установки CGAL и пакета решения зависимостей Eigen, и в этом порядке В своем коде я пытаюсь использовать решатель Eigen: typedef CGAL::Eigen_solver_traits<double> Solver; Но при построении этого кода я получаю эту ош…
28 фев '16 в 23:15
0 ответов

Создайте MatrixXd из VectorXds

Мне нужно создать MatrixXd, объединяющий несколько VectorXds в виде столбцов. Я не знаю количество строк в векторе во время компиляции (здесь я использовал 10 как размер, чтобы показать мою проблему) Я упоминал здесь, и здесь у меня есть следующие к…
12 янв '18 в 17:43