Джерело
BW Swift | Псс, зараз буде трохи недільного weird-контенту. Але можливо комусь ст...
768 Охват/переглядів
2025-07-27 11:46
Повідомлення №1919
Псс, зараз буде трохи недільного weird-контенту. Але можливо комусь стане у нагоді =) Місяців 9 тому створив та опубліковав невеликий пакет, який назвав EigV. EigV надає єдину функцію для обчислення власних значень та векторів матриці (далі "ейгени", нім. EigenVector).Насправді, як Swift-розробники, ви навряд зіткнетеся з ейгенами в більшості випадків. Але, якщо ви захочете пірнути в Page-Rank алгоритм Google, основи ШІ, Марковський процес (дуже рекомендую ознайомитися), та навіть у реальну фізичну, біологічно, чи квантову механіки: обчислення ейгенів - один з фундаментальних кроків. В Python є дуже швидка функція для цього. Нажаль, для Swift я знайшов декілька застарілих бібліотек, що роблять некоректні обчислення. Далі я знайшов вбудовану c-функцію (dgeev_). Вона приймає 14 параметрів, та абʼюзить inout. Я витратив декілька днів на документацію, експерименти, та логіку коррекції уявних значень. Радий поділитися з вами легкою та ефективною функцією, що за грубим розрахунком працює навіть на 33% швидше за Python аналог.Щодо мене, я її використовував саме для реалізації Марковського процесу для задачі з on-device probabilities prediction. Перегнув, чи ще ні? =)------------------------------Я часто пишу і писав різні здебільшого технічні цікавинки на моєму Linkedin. Можеш підписатися, якщо було цікаво =)