No. double_t
es al menos tan ancho como doble; es decir, podría ser lo mismo que el doble. Nota al pie 190 en el estándar C99 hace que la clara intención:
Los tipos float_t y double_t se pretende que sean tipos más eficientes de la implementación al menos tan anchas como flotador y doble, respectivamente.
Como notó Michael Burr, no puede establecer FLT_EVAL_METHOD
.
Si desea el tipo de punto flotante más amplio en cualquier sistema disponible solo con C99, use long double
. Tenga en cuenta que en algunas plataformas será el mismo que double
(e incluso podría ser el mismo que float
).
Además, si "trabaja con métodos numéricos", debe tener en cuenta que para muchos (más parejos) métodos numéricos, el error de aproximación del método es mucho mayor que el error de redondeo de doble precisión, por lo que a menudo no beneficio de usar tipos más amplios. Existen excepciones, por supuesto. ¿En qué tipo de métodos numéricos estás trabajando, específicamente?
Editar: en serio, ya sea (a) sólo tiene que utilizar long double
y lo llaman un día o (b) tomar algunas semanas para aprender acerca de cómo se llevan a la práctica de punto flotante en las plataformas de los que están orientados, y cuáles son los requisitos de precisión reales para los algoritmos que está implementando.
Gracias. ¿El doble largo es más ancho que double_t? Esto estoy confundido. – yCalleecharan
@yCalleecharan: En algunas plataformas, sí, en algunas plataformas, no. Por ejemplo, en OSX/Intel, 'double' y' double_t' son IEEE-754 double, mientras que 'long double' es x87 double extended type, que tiene más precisión. En una plataforma donde la aritmética de punto flotante se codifica a la unidad x87 por defecto (¿Windows, tal vez?), 'Double_t' podría ser lo mismo que' long double'. Es poco probable que 'double_t' sea * más amplio * que' long double' (aunque no imposible, IIRC). –
En cuanto a los métodos numéricos que estoy usando, es simplemente un método de 4º orden de Runge Kutta para integrar un conjunto de ODE. Tuve que no dimensionar mis ecuaciones para obtener valores "agradables" ya que las ecuaciones no son lineales y la no linealidad puede conducir a fenómenos de caos. Estoy usando herramientas no lineales como un diagrama de bifurcación y un mapa de poincare. Como las soluciones de los ODE son delicadas, intento trabajar con la mayor precisión posible. – yCalleecharan