/*
 * Copyright (c) 1999
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */

#ifndef _STLP_CMATH

#ifndef _STLP_OUTERMOST_HEADER_ID
#  define _STLP_OUTERMOST_HEADER_ID  0x110
#  define _STLP_CMATH
#  include <stl/_prolog.h>
#endif

#if (_STLP_OUTERMOST_HEADER_ID != 0x110)
#  include _STLP_NATIVE_CPP_C_HEADER(cmath)
#else
#  ifndef _STLP_INTERNAL_CMATH
#    include <stl/_cmath.h>
#  endif
#endif

#if (_STLP_OUTERMOST_HEADER_ID ==  0x110 )
#  include <stl/_epilog.h>
#  undef _STLP_OUTERMOST_HEADER_ID
#endif

#endif /* _STLP_CMATH */

// Local Variables:
// mode:C++
// End:
