00001 /* -*- c++ -*- */ 00002 /* 00003 * Copyright 2003,2005 Free Software Foundation, Inc. 00004 * 00005 * This file is part of GNU Radio 00006 * 00007 * GNU Radio is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2, or (at your option) 00010 * any later version. 00011 * 00012 * GNU Radio is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with GNU Radio; see the file COPYING. If not, write to 00019 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00020 * Boston, MA 02111-1307, USA. 00021 */ 00022 00023 /* 00024 * mathematical odds and ends. 00025 */ 00026 00027 #ifndef _GR_MATH_H_ 00028 #define _GR_MATH_H_ 00029 00030 long gr_gcd (long m, long n); 00031 00032 // returns a non-zero value if value is "not-a-number" (NaN), and 0 otherwise 00033 int gr_isnan (double value); 00034 00035 // returns a non-zero value if the value of x has its sign bit set. 00036 // 00037 // This is not the same as `x < 0.0', because IEEE 754 floating point 00038 // allows zero to be signed. The comparison `-0.0 < 0.0' is false, but 00039 // `gr_signbit (-0.0)' will return a nonzero value. 00040 00041 int gr_signbit (double x); 00042 00058 float gr_fast_atan2f(float y, float x); 00059 00060 #endif /* _GR_MATH_H_ */