/*-*-C++-*------------------------------------------------------------------
 * gaol -- Just Another Interval Library
 *--------------------------------------------------------------------------
 * This file is part of the gaol distribution. Gaol was primarily 
 * developed at the Swiss Federal Institute of Technology, Lausanne, 
 * Switzerland, and is now developed at the Institut de Recherche 
 * en Informatique de Nantes, France.
 *
 * Copyright (c) 2001 Swiss Federal Institute of Technology, Switzerland
 * Copyright (c) 2002 Institut de Recherche en Informatique de Nantes, France
 *--------------------------------------------------------------------------
 * gaol is a software distributed WITHOUT ANY WARRANTY. Read the associated 
 * COPYING file for information.
 *--------------------------------------------------------------------------
 * CVS: $Id: gaol_mathlib.h,v 1.6 2006/03/21 14:31:47 goualard Exp $
 * Last modified: Tue Mar 21 15:27:20 2006 on pc-dubreil-123.irin.sciences.univ-nantes.prive
 * By: Frederic Goualard <Frederic.Goualard@lina.univ-nantes.fr>
 *--------------------------------------------------------------------------*/

/*!
  \file   gaol_mathlib.h
  \brief  Interface of MathLib to gaol

  This file allows the C library MathLib to be called from libraries written
  in C++

  \author Frederic Goualard
  \date   2002-08-21
*/


#ifndef __gaol_mathlib_h__
#define __gaol_mathlib_h__

#include "gaol/gaol_config.h"

#if defined (_MSC_VER)
# define _MATHLIB_DLL_ extern "C" __declspec(dllimport)
#elif defined (__GNUC__)
# define _MATHLIB_DLL_ extern "C" __attribute__ ((visibility("default")))
#else
# define _MATHLIB_DLL_ extern "C"
#endif

_MATHLIB_DLL_ unsigned short Init_Lib();
_MATHLIB_DLL_ void Exit_Lib(unsigned short);
_MATHLIB_DLL_ double uasin(double );
_MATHLIB_DLL_ double uacos(double );
_MATHLIB_DLL_ double uatan(double );
_MATHLIB_DLL_ double uatan2(double ,double );
_MATHLIB_DLL_ double ulog(double );
_MATHLIB_DLL_ double ulog2(double );
_MATHLIB_DLL_ double uexp(double );
_MATHLIB_DLL_ double uexp2(double );
_MATHLIB_DLL_ double usin(double );
_MATHLIB_DLL_ double ucos(double );
_MATHLIB_DLL_ double utan(double );
_MATHLIB_DLL_ double ucot(double );
_MATHLIB_DLL_ double usqrt(double );
_MATHLIB_DLL_ double upow(double , double );
_MATHLIB_DLL_ double uremainder(double , double );

#endif /* __gaol_mathlib_h__ */
