1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifndef _unary_h
2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _unary_h
3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <cmath>
4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <cfloat>
5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <functional>    //*TY 12/26/1998 - added to get unary_function
6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || defined (_STLP_USE_NAMESPACES)
8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottusing std::unary_function;
9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct odd : public unary_function<int, bool> {
12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  bool operator()(int n_) const { return(n_ % 2) == 1; }
13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott};
14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct positive : public unary_function<int, bool> {
16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  bool operator()(int n_) const { return n_ >= 0; }
17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott};
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct square_root : public unary_function<double, double> {
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  double operator()(double x_) const
21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  { return ::sqrt(x_); }
22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott};
23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif // _unary_h
24