Я хотел бы установить автоматически более высокую точность моего delta_prime по сравнению с моим typedef t_float, чтобы избежать проблем с отменой, чтобы пользователь мог изменить t_float, если захочет. Может быть, я могу попытаться получить точность поплавка, но я не знаю, как я могу это сделать правильно.Автоматически устанавливать более высокую точность для float в C
В моей typedefs.h:
typedef double t_float;
В некоторых code.c:
t_float solve_quadratic(const t_float a, const t_float b_prime, const t_float c)
{
long double delta_prime = b_prime * b_prime - a * c;
if (delta_prime < 0.0)
return INF;
return (b_prime + sqrt(delta_prime))/a;
}
См. Http://math.stackexchange.com/questions/187242/quadratic-equation-error. – lhf
Это не отвечает на мой вопрос. И в моем случае я хочу избежать b^2 = ac отмены ... – coincoin
Рассматривали ли вы, если что-то вроде [MPFR] (http://www.mpfr.org/) является жизнеспособной альтернативой? –