1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifndef BASE_FLOAT_UTIL_H_ 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define BASE_FLOAT_UTIL_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "build/build_config.h" 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include <float.h> 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include <math.h> 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_SOLARIS) 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <ieeefp.h> 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace base { 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottinline bool IsFinite(const double& number) { 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#if defined(OS_POSIX) 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return finite(number) != 0; 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#elif defined(OS_WIN) 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return _finite(number) != 0; 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} // namespace base 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif // BASE_FLOAT_UTIL_H_ 31