From 495cc1df494505378977995eeb76b05f20f0b235 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 13 Jun 2010 17:49:42 +0200 Subject: import firmware from LEGO v1.29 --- AT91SAM7S256/SAM7S256/Include/ymath.h | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 AT91SAM7S256/SAM7S256/Include/ymath.h (limited to 'AT91SAM7S256/SAM7S256/Include/ymath.h') diff --git a/AT91SAM7S256/SAM7S256/Include/ymath.h b/AT91SAM7S256/SAM7S256/Include/ymath.h new file mode 100644 index 0000000..c8d3587 --- /dev/null +++ b/AT91SAM7S256/SAM7S256/Include/ymath.h @@ -0,0 +1,91 @@ +/* ymath.h internal header */ +#ifndef _YMATH +#define _YMATH + +#ifndef _SYSTEM_BUILD +#pragma system_include +#endif + +#include +_C_STD_BEGIN +_C_LIB_DECL + + /* MACROS FOR _Dtest RETURN (0 => ZERO) */ +#define _DENORM (-2) /* C9X only */ +#define _FINITE (-1) +#define _INFCODE 1 +#define _NANCODE 2 + + /* TYPE DEFINITIONS */ + +#if __SHORT_SIZE__ != 2 +#error "Float implementation assumes short is 2 bytes" +#endif + +typedef union +{ /* pun float types as integer array */ + unsigned short _Word[__LONG_DOUBLE_SIZE__ / 2]; + float _Float; + double _Double; + long double _Long_double; +} _Dconst; + + /* double DECLARATIONS */ +__INTRINSIC double _Cosh(double, double); +__INTRINSIC short _Dtest(double); +__INTRINSIC short _Exp(double *, double, short); +__INTRINSIC double _Log(double, int); +__INTRINSIC double _Sin(double, unsigned int); +__INTRINSIC double _Sinh(double, double); +extern const _Dconst _Denorm, _Hugeval, _Inf, _Nan, _Snan; + + /* float DECLARATIONS */ +#ifndef _FLOAT_IS_DOUBLE + __INTRINSIC float _FCosh(float, float); + __INTRINSIC short _FDtest(float); + __INTRINSIC short _FExp(float *, float, short); + __INTRINSIC float _FLog(float, int); + __INTRINSIC float _FSin(float, unsigned int); + __INTRINSIC float _FSinh(float, float); + extern const _Dconst _FDenorm, _FHugeval, _FInf, _FNan, _FSnan; +#endif /* _FLOAT_IS_DOUBLE */ + + /* long double DECLARATIONS */ +#ifndef _LONG_DOUBLE_IS_DOUBLE + __INTRINSIC long double _LCosh(long double, long double); + __INTRINSIC short _LDtest(long double); + __INTRINSIC short _LExp(long double *, long double, short); + __INTRINSIC long double _LLog(long double, int); + __INTRINSIC long double _LSin(long double, unsigned int); + __INTRINSIC long double _LSinh(long double, long double); + extern const _Dconst _LDenorm, _LInf, _LNan, _LSnan; +#endif /* _LONG_DOUBLE_IS_DOUBLE */ + + /* long double ADDITIONS TO math.h NEEDED FOR complex */ +__INTRINSIC long double (atan2l)(long double, long double); +__INTRINSIC long double (cosl)(long double); +__INTRINSIC long double (expl)(long double); +__INTRINSIC long double (ldexpl)(long double, int); +__INTRINSIC long double (logl)(long double); +__INTRINSIC long double (powl)(long double, long double); +__INTRINSIC long double (sinl)(long double); +__INTRINSIC long double (sqrtl)(long double); +__INTRINSIC long double (tanl)(long double); + /* float ADDITIONS TO math.h NEEDED FOR complex */ +__INTRINSIC float (atan2f)(float, float); +__INTRINSIC float (cosf)(float); +__INTRINSIC float (expf)(float); +__INTRINSIC float (ldexpf)(float, int); +__INTRINSIC float (logf)(float); +__INTRINSIC float (powf)(float, float); +__INTRINSIC float (sinf)(float); +__INTRINSIC float (sqrtf)(float); +__INTRINSIC float (tanf)(float); +_END_C_LIB_DECL +_C_STD_END +#endif /* _YMATH */ + +/* + * Copyright (c) 1992-2002 by P.J. Plauger. ALL RIGHTS RESERVED. + * Consult your license regarding permissions and restrictions. +V3.12:0576 */ -- cgit v1.2.3