Add headers and docs for additional functions.

This commit is contained in:
Stephen Heumann 2021-12-24 15:57:29 -06:00
parent 98529a9342
commit bccbcb132b
3 changed files with 35 additions and 2 deletions

View File

@ -75,9 +75,15 @@ long double acoshl(long double);
double asin(double); double asin(double);
float asinf(float); float asinf(float);
long double asinl(long double); long double asinl(long double);
double asinh(double);
float asinhf(float);
long double asinhl(long double);
double atan(double); double atan(double);
float atanf(float); float atanf(float);
long double atanl(long double); long double atanl(long double);
double atanh(double);
float atanhf(float);
long double atanhl(long double);
double atan2(double, double); double atan2(double, double);
float atan2f(float, float); float atan2f(float, float);
long double atan2l(long double, long double); long double atan2l(long double, long double);
@ -126,6 +132,9 @@ long double fmodl(long double, long double);
double frexp(double, int *); double frexp(double, int *);
float frexpf(float, int *); float frexpf(float, int *);
long double frexpl(long double, int *); long double frexpl(long double, int *);
double hypot(double, double);
float hypotf(float, float);
long double hypotl(long double, long double);
int ilogb(double); int ilogb(double);
int ilogbf(float); int ilogbf(float);
int ilogbl(long double); int ilogbl(long double);

View File

@ -38,7 +38,9 @@
#define acos(x) __tg_x(acos,(x)) #define acos(x) __tg_x(acos,(x))
#define acosh(x) __tg_x(acosh,(x)) #define acosh(x) __tg_x(acosh,(x))
#define asin(x) __tg_x(asin,(x)) #define asin(x) __tg_x(asin,(x))
#define asinh(x) __tg_x(asinh,(x))
#define atan(x) __tg_x(atan,(x)) #define atan(x) __tg_x(atan,(x))
#define atanh(x) __tg_x(atanh,(x))
#define atan2(y,x) __tg_real_x_y(atan2,(y),(x)) #define atan2(y,x) __tg_real_x_y(atan2,(y),(x))
#define cbrt(x) __tg_real_x(cbrt,(x)) #define cbrt(x) __tg_real_x(cbrt,(x))
#define ceil(x) __tg_real_x(ceil,(x)) #define ceil(x) __tg_real_x(ceil,(x))
@ -55,6 +57,7 @@
#define floor(x) __tg_real_x(floor,(x)) #define floor(x) __tg_real_x(floor,(x))
#define fmod(x,y) __tg_real_x_y(fmod,(x),(y)) #define fmod(x,y) __tg_real_x_y(fmod,(x),(y))
#define frexp(x,nptr) __tg_real_x_other(frexp,(x),(nptr)) #define frexp(x,nptr) __tg_real_x_other(frexp,(x),(nptr))
#define hypot(x,y) __tg_real_x_y(hypot,(x),(y))
#define ilogb(x) __tg_real_x(ilogb,(x)) #define ilogb(x) __tg_real_x(ilogb,(x))
#define ldexp(x,n) __tg_real_x_other(ldexp,(x),(n)) #define ldexp(x,n) __tg_real_x_other(ldexp,(x),(n))
#define llrint(x) __tg_real_x(llrint,(x)) #define llrint(x) __tg_real_x(llrint,(x))

View File

@ -457,7 +457,7 @@ Generic selection expressions are primarily useful within macros, which can give
23. (C11) Character constants and string literals may now have prefixes indicating they should use Unicode encodings. The prefixes u8, u, and U indicate UTF-8, UTF-16, and UTF-32 encodings, respectively. The u8 prefix may only be used on string literals. The U and u prefixes may be used on string literals or character constants. U- and u-prefixed character constants have the types char32_t and char16_t (as defined in <uchar.h>); U- and u-prefixed string literals are treated as arrays of those types. For example, the string literal U"abc" designates an array with four members of type char32_t: the three letters encoded in UTF-32, plus a null terminator. 23. (C11) Character constants and string literals may now have prefixes indicating they should use Unicode encodings. The prefixes u8, u, and U indicate UTF-8, UTF-16, and UTF-32 encodings, respectively. The u8 prefix may only be used on string literals. The U and u prefixes may be used on string literals or character constants. U- and u-prefixed character constants have the types char32_t and char16_t (as defined in <uchar.h>); U- and u-prefixed string literals are treated as arrays of those types. For example, the string literal U"abc" designates an array with four members of type char32_t: the three letters encoded in UTF-32, plus a null terminator.
24. (C99) Floating-point constants may now be expressed in a hexadecimal format. These consist of a leading 0X or 0x, followed by a sequence of hexadecimal digits optionally containing a period, then P or p, then an exponent expressed as a sequence of decimal digits optionally preceded by + or -. These designate the number given by the hexadecimal digit sequence (with any digits after the period being the fractional part) multiplied by 2 raised to the specified exponent. For example, the constant 0xF.8p-1 is equivalent to 7.75. 24. (C99) Floating-point constants may now be expressed in a hexadecimal format. These consist of a leading 0X or 0x, followed by a sequence of hexadecimal digits optionally containing a period, then P or p, then an exponent expressed as a sequence of decimal digits optionally preceded by + or -. These designate the number given by the hexadecimal digit sequence (with any digits after the period being the fractional part) multiplied by 2 raised to the specified exponent. For example, the constant 0xF.8p-1 is equivalent to 7.75. Note that ORCA/C currently only supports this hexadecimal floating-point format in C source code, not as an input or output format for any library functions.
25. (C99) When a function parameter is declared with an array type, type qualifiers and/or the keyword "static" may be included within the angle brackets that designate the array type. For example, a function may be defined as: 25. (C99) When a function parameter is declared with an array type, type qualifiers and/or the keyword "static" may be included within the angle brackets that designate the array type. For example, a function may be defined as:
@ -897,12 +897,26 @@ These macros accept arguments of any real floating types, i.e. float, double, or
Also, note that under ORCA/C these functions generally will not set errno for error conditions (e.g. domain and range errors). However, they do set floating-point exceptions as appropriate. The <fenv.h> functions documented above can be used to retrieve these exceptions, allowing errors to be detected. Also, note that under ORCA/C these functions generally will not set errno for error conditions (e.g. domain and range errors). However, they do set floating-point exceptions as appropriate. The <fenv.h> functions documented above can be used to retrieve these exceptions, allowing errors to be detected.
#include <math.h> #include <math.h>
dou acosh(double x); double acosh(double x);
float acoshf(float x); float acoshf(float x);
long double acoshl(long double x); long double acoshl(long double x);
These functions return the (non-negative) inverse hyperbolic cosine of x. These functions return the (non-negative) inverse hyperbolic cosine of x.
#include <math.h>
double asinh(double x);
float asinhf(float x);
long double asinhl(long double x);
These functions return the inverse hyperbolic sine of x.
#include <math.h>
double atanh(double x);
float atanhf(float x);
long double atanhl(long double x);
These functions return the inverse hyperbolic tangent of x.
#include <math.h> #include <math.h>
double cbrt(double x); double cbrt(double x);
float cbrtf(float x); float cbrtf(float x);
@ -950,6 +964,13 @@ long double fminl(long double x, long double y);
These functions return the minimum numeric value of their arguments. If one argument is a NaN, the other argument is returned. These functions return the minimum numeric value of their arguments. If one argument is a NaN, the other argument is returned.
#include <math.h>
double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);
These functions return the square root of x^2 + y^2, without undue overflow or underflow.
#include <math.h> #include <math.h>
int ilogb(double x); int ilogb(double x);
int ilogbf(float x); int ilogbf(float x);