fp_contract

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte documentación de Visual Studio 2017 RC.

Determina si se realizará la contracción de punto flotante.

#pragma fp_contract [ON | OFF]  

De manera predeterminada, fp_contract es ON.

Para obtener más información sobre el comportamiento de punto flotante, vea /fp (Especificar comportamiento de punto flotante).

Las directivas pragma de punto flotante incluyen:

En el código generado en este ejemplo no se utiliza la instrucción de multiplicación y suma fusionada (fma) en procesadores Itanium. Si se marca como comentario #pragma fp_contract (off), el código generado utilizará la instrucción fma.

// pragma_directive_fp_contract.cpp  
// compile with: /O2  
#include <stdio.h>  
#include <float.h>  
  
#pragma fp_contract (off)   
  
int main() {  
   double z, b, t;  
  
   for (int i = 0; i < 10; i++) {  
      b = i * 5.5;  
      t = i * 56.025;  
      _set_controlfp(_PC_24, _MCW_PC);  
  
      z = t * i + b;  
      printf_s ("out=%.15e\n", z);  
   }  
}  

out=0,000000000000000e+000
out=6,152500152587891e+001
out=2,351000061035156e+002
out=5,207249755859375e+002
out=9,184000244140625e+002
out=1,428125000000000e+003
out=2,049899902343750e+003
out=2,783724853515625e+003
out=3,629600097656250e+003
out=4,587524902343750e+003

Directives pragma y la palabra clave __pragma

Mostrar: