Logo Search packages:      
Sourcecode: helium version File versions  Download package

primfloat.h

/*-----------------------------------------------------------------------
  The Lazy Virtual Machine.

  Daan Leijen.

  Copyright 2001, Daan Leijen. All rights reserved. This file is
  distributed under the terms of the GNU Library General Public License.
-----------------------------------------------------------------------*/

/* $Id: primfloat.h 224 2004-05-06 18:45:09Z uust $ */
#ifndef _primfloat_h
#define _primfloat_h


#include "fail.h" /* just for [exn_arithmetic] */


floating_t float_of_string( const char* s );
long fp_near_int( double x ) ;

/*----------------------------------------------------------------------
-- IEEE floating point interface
----------------------------------------------------------------------*/
enum fp_round {
  fp_round_near,
  fp_round_up,
  fp_round_down,
  fp_round_zero,

  fp_round_count
};

enum fp_round fp_get_round( void );
enum fp_round fp_set_round( enum fp_round rnd );

long fp_sticky_mask( enum exn_arithmetic ex );
long fp_get_sticky( void );
long fp_set_sticky( long sticky );


long fp_trap_mask_default(void);
long fp_trap_mask( enum exn_arithmetic ex );
long fp_get_traps( void );
long fp_set_traps( long traps );

/* the following two functions can be called from
   a signal handler and should always succeed */
long fp_clear( void );
void fp_reset( void );
void fp_save( long* sticky, long* traps, enum fp_round* round );
void fp_restore( long sticky, long traps, enum fp_round round );

#endif /* _primfloat_h */

Generated by  Doxygen 1.6.0   Back to index