Аутсорсинг вычисления собственных / векторных вычислений от Python до C?

К сожалению, следующий код на python недостаточно быстр для того, что я хочу с ним сделать. В основном я вычисляю центральность собственного вектора взвешенной матрицы смежности. Следует отметить, что я делаю это для край матрица смежности. Поэтому я не могу использовать такие пакеты, как graph-tool, который имеет функцию для центральности собственных векторов узлов.

def eigens(edgeMatrix):
try:
eigenvalue, eigenvector = linalg.eigs(edgeMatrix.T, k=1, which='LR')
except sp.sparse.linalg.ArpackNoConvergence:
return {}

largest = eigenvector.flatten().real
norm = sp.sign(largest.sum())*sp.linalg.norm(largest)
cent_values=map(float,largest/norm)

return cent_values

У меня мало опыта в Си. Моя цель сейчас состоит в том, чтобы как-то расширить свой код на Python на C или C ++, написав код выше на C / C ++. Мне как-то нужно дать свою матрицу смежности (edgeMatrix), который является массивом в качестве аргумента функции.

Я пытался использовать Cython, но, к сожалению, Scipy не поддерживается, и эквивалентный код NumPy намного медленнее, даже с Cython.

Любые советы или рекомендации с благодарностью!

0

Решение

Задача ещё не решена.

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

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

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