Files
harbour-core/harbour/contrib/hbmisc/mathx.c
Viktor Szakats f2480e5443 2007-12-01 02:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/make_b32_all.bat
   * contrib/make_vc_all.bat
   * contrib/Makefile
   - contrib/msql
   + contrib/hbmsql
   * contrib/hbmsql/common.mak
   * contrib/hbmsql/Makefile
   - contrib/libmisc
   + contrib/hbmisc
   - contrib/mysql
   + contrib/hbmysql
   - contrib/odbc
   + contrib/hbodbc
   - contrib/ole
   + contrib/hbole
   - contrib/pgsql
   + contrib/hbpgsql
   * contrib/hbpgsql/common.mak
   * contrib/hbpgsql/Makefile
   - contrib/samples
   + contrib/hbclipsm
   * contrib/hbclipsm/common.mak
   * contrib/hbclipsm/Makefile
2007-12-01 01:34:59 +00:00

173 lines
2.6 KiB
C

/*
* $Id$
*/
#include <math.h>
#include "hbapi.h"
#ifndef M_PI_2
#define M_PI_2 1.57079632679489661923
#endif
HB_FUNC( ACOS )
{
if( hb_pcount() > 0 )
{
double dNumber = hb_parnd(1);
if( dNumber >= -1 && dNumber <= 1 )
hb_retnd( acos(dNumber) );
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( ASIN )
{
if( hb_pcount() > 0 )
{
double dNumber = hb_parnd(1);
if( dNumber >= -1 && dNumber <= 1 )
hb_retnd( asin(dNumber) );
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( ATAN )
{
if( hb_pcount() > 0 )
{
double dNumber = hb_parnd(1);
if( dNumber >= -M_PI_2 && dNumber <= M_PI_2 )
hb_retnd( atan(dNumber) );
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( COS )
{
if( hb_pcount() > 0 )
{
hb_retnd( cos( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( COSH )
{
if( hb_pcount() > 0 )
{
hb_retnd( cosh( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( LOG10 )
{
if( hb_pcount() > 0 )
{
hb_retnd( log10( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( SIN )
{
if( hb_pcount() > 0 )
{
hb_retnd( sin( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( SINH )
{
if( hb_pcount() > 0 )
{
hb_retnd( sinh( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( TAN )
{
if( hb_pcount() > 0 )
{
hb_retnd( tan( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( TANH )
{
if( hb_pcount() > 0 )
{
hb_retnd( tanh( hb_parnd(1) ) );
}
else
/* TODO: Error or return NAN */
hb_retnd(0);
}
HB_FUNC( PI )
{
hb_retnd( 3.141592653589793 );
}
HB_FUNC( CEIL )
{
if( ISNUM( 1 ) )
hb_retnd( ceil( hb_parnd( 1 ) ) );
else
/* TODO: Error or return NAN */
hb_retnd( 0 );
}
HB_FUNC( FLOOR )
{
if( ISNUM( 1 ) )
hb_retnd( floor( hb_parnd( 1 ) ) );
else
/* TODO: Error or return NAN */
hb_retnd( 0 );
}
HB_FUNC( FRACTION )
{
if( ISNUM( 1 ) )
hb_retnd( hb_parnd( 1 ) - hb_parnl( 1 ) );
else
/* TODO: Error or return NAN */
hb_retnd( 0 );
}