WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit c53afe9

Browse files
committed
libs: Add a few missing signatures for math.
1 parent 468e382 commit c53afe9

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed

libs/math.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ func init() {
107107
buf.WriteString("float hypotf(float x, float y);\n")
108108
buf.WriteString("double fmax(double x, double y);\n")
109109
buf.WriteString("float fmaxf(float x, float y);\n")
110+
buf.WriteString("double fmin(double x, double y);\n")
111+
buf.WriteString("float fminf(float x, float y);\n")
112+
buf.WriteString("int isfinite(double x);\n")
110113
lib.Header = buf.String()
111114
return lib
112115
})

libs/math_test.go

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package libs
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/require"
7+
8+
"github.com/gotranspile/cxgo/types"
9+
)
10+
11+
var expMathH = `#ifndef _cxgo_MATH_H
12+
#define _cxgo_MATH_H
13+
#include <cxgo_builtin.h>
14+
15+
const double M_PI_val = 3.1415;
16+
#define M_PI M_PI_val
17+
double sin(double);
18+
float sinf(float);
19+
double asin(double);
20+
float asinf(float);
21+
double sinh(double);
22+
float sinhf(float);
23+
double asinh(double);
24+
float asinhf(float);
25+
double cos(double);
26+
float cosf(float);
27+
double acos(double);
28+
float acosf(float);
29+
double cosh(double);
30+
float coshf(float);
31+
double acosh(double);
32+
float acoshf(float);
33+
double tan(double);
34+
float tanf(float);
35+
double atan(double);
36+
float atanf(float);
37+
double tanh(double);
38+
float tanhf(float);
39+
double atanh(double);
40+
float atanhf(float);
41+
double round(double);
42+
#define roundf(x) round(x)
43+
double ceil(double);
44+
float ceilf(float);
45+
double floor(double);
46+
float floorf(float);
47+
double fabs(double);
48+
float fabsf(float);
49+
double pow(double, double);
50+
float powf(float, float);
51+
double sqrt(double);
52+
float sqrtf(float);
53+
double exp(double);
54+
float expf(float);
55+
double exp2(double);
56+
float exp2f(float);
57+
double log(double);
58+
float logf(float);
59+
double log10(double);
60+
float log10f(float);
61+
double log2(double);
62+
float log2f(float);
63+
double atan2(double y, double x);
64+
float atan2f(float y, float x);
65+
double modf(double x, double *iptr);
66+
float modff(float value, float *iptr);
67+
double ldexp(double x, _cxgo_go_int exp);
68+
double fmod(double x, double exp);
69+
int isnan(double x);
70+
double frexp(double x, int* exp);
71+
double hypot(double x, double y);
72+
float hypotf(float x, float y);
73+
double fmax(double x, double y);
74+
float fmaxf(float x, float y);
75+
double fmin(double x, double y);
76+
float fminf(float x, float y);
77+
int isfinite(double x);
78+
79+
80+
#endif // _cxgo_MATH_H
81+
`
82+
83+
func TestMathH(t *testing.T) {
84+
c := NewEnv(types.Config32())
85+
l, ok := c.GetLibrary(mathH)
86+
require.True(t, ok)
87+
require.Equal(t, expMathH, l.Header, "\n%s", l.Header)
88+
}

0 commit comments

Comments
 (0)