fnegate-1.c

来自「linux下的gcc编译器」· C语言 代码 · 共 114 行

C
114
字号
/* Copyright (C) 2002 Free Software Foundation.     Test floating point negation produces the expected results.     Written by Roger Sayle, 21st May 2002.  *//* { dg-do run } *//* { dg-options "-O2 -ffast-math" } */extern void abort ();doubledneg (double x){  return -x;}doubledmult (double x){  return -1.0 * x;}doubleddiv (double x){  return x / -1.0;}floatfneg (float x){  return -x;}floatfmult (float x){  return -1.0f * x;}floatfdiv (float x){  return x / -1.0f;}voidftest(float src, float dst){  if (fneg (src) != dst)    abort ();  if (src != fneg (dst))    abort ();  if (fmult (src) != dst)    abort ();  if (src != fmult (dst))    abort ();  if (fdiv (src) != dst)    abort ();  if (src != fdiv(dst))    abort ();}voiddtest(double src, double dst){  if (dneg (src) != dst)    abort ();  if (src != dneg (dst))    abort ();  if (dmult (src) != dst)    abort ();  if (src != dmult (dst))    abort ();  if (ddiv (src) != dst)    abort ();  if (src != ddiv(dst))    abort ();}intmain (){  ftest (1.0f, -1.0f);  ftest (2.0f, -2.0f);  ftest (-3.0f, 3.0f);  ftest (0.0f, -0.0f);  ftest (-0.0f, 0.0f);  dtest (1.0, -1.0);  dtest (2.0, -2.0);  dtest (-3.0, 3.0);  dtest (0.0, -0.0);  dtest (-0.0, 0.0);  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?