Я работаю над версией уравнения состояния морской воды на Python (http://www.teos-10.org/). Библиотека зависит от обращения уравнений, таких как p = f(t,d), где вы можете напрямую вычислить f(t,d), если вы знали t и d, но обычно у вас есть t и p. Это всего лишь проблема поиска корня, и в библиотеке есть варианты использования методов Ньютона, деления пополам или Брента. (В частности, для метода Брента см. вики https://en.wikipedia.org/wiki/Brent%27s_method.)
Однако библиотека находит корни для отдельных значений t и p. Я хочу, чтобы моя версия была доступна для построения графиков и исследования уравнения состояния, поэтому я хочу разрешить векторные (числовые массивы) значения t и p. Векторизация методов Ньютона и бисекции была довольно простой, но метод Брента имеет множество условий, которые я не могу усвоить.
Есть какие-нибудь советы о том, как векторизовать этот метод? Что еще более важно, будет ли эта векторизация на самом деле быстрее, чем циклический перебор значений в массивах t и p?