Здравствуйте.
Мне нужно извлечь квадратный корень из квадратной матрицы общего вида. Я делаю программную реализацию на С++ - т.е. если кто-нибудь знает какие-нибудь встроенные библиотечные функции IPP и TBB, для работы с распараллеливанием - дайте, пожалуйста, ссылку, это будет идеальный вариант. В документации по IPP смотрел, но не нашел, возможно, плохо искал, и я даже не представляю сколько существует всего руководств по IPP.
По сути самого вопроса: я понимаю, что существует алгоритм через собственные числа, с разложением типа

, но я не хотел бы его использовать; в книге Голуб, Дж., Ван Лоун Ч. Матричные вычисления.- М.: Мир, 1999. (с.493), я нашел алгоритм возведения матрицы в произвольную степень, который вычисляет

, но только для целых степеней. Можно ли этот алгоритм адаптировать для дробных степеней?
Вот алгоритм: пусть

- двоичное представление требуемой степени,

Код:
Z = A, q=0
WHILE beta_q = 0
Z=Z^2
q=q+1
END
F=Z
FOR k=q+1:t
Z=Z^2
IF beta_k!=0
F=FZ
END
END
Или если есть какой-то иной способ, подскажите пожалуйста.
Спасибо.