Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use correct math functions from std:: #387

Merged
merged 1 commit into from
Oct 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions internal/c/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,7 @@

// common includes
# include <stdio.h>
# ifdef QB64_MACOSX
# include <cmath>
# else
//#include <math.h> //<-causes overloading abs conflicts in Windows
# include <cmath>
# endif
# include <cmath>
# include <stdint.h>
# include <errno.h>
# include <fcntl.h>
Expand Down
86 changes: 43 additions & 43 deletions internal/c/libqb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9677,8 +9677,8 @@ void lineclip(int32 x1, int32 y1, int32 x2, int32 y2, int32 xmin, int32 ymin, in
return;
}

mx = (x2 - x1) / fabs((double)(y2 - y1));
my = (y2 - y1) / fabs((double)(x2 - x1));
mx = (x2 - x1) / std::fabs((double)(y2 - y1));
my = (y2 - y1) / std::fabs((double)(x2 - x1));
// right wall from right
if (x1 > xmax) {
if (mx < 0) {
Expand Down Expand Up @@ -9782,8 +9782,8 @@ void lineclip(int32 x1, int32 y1, int32 x2, int32 y2, int32 xmin, int32 ymin, in
}
}

mx = (x1 - x2) / fabs((double)(y1 - y2));
my = (y1 - y2) / fabs((double)(x1 - x2));
mx = (x1 - x2) / std::fabs((double)(y1 - y2));
my = (y1 - y2) / std::fabs((double)(x1 - x2));
// right wall from right
if (x2 > xmax) {
if (mx < 0) {
Expand Down Expand Up @@ -13239,7 +13239,7 @@ void sub_circle(double x, double y, double r, uint32 col, double start, double e
iy = y - 0.5;
else
iy = y + 0.5;
r = fabs(r - x); // r is now a radius in pixels
r = std::fabs(r - x); // r is now a radius in pixels

// adjust vertical and horizontal span of the circle based on aspect ratio
xspan = r;
Expand Down Expand Up @@ -13305,15 +13305,15 @@ void sub_circle(double x, double y, double r, uint32 col, double start, double e
arc3 = pi;
arc4 = pi2;
arcinc = (pi / 2) / (double)pixels;
sinb = sin(arcinc);
cosb = cos(arcinc);
sinb = std::sin(arcinc);
cosb = std::cos(arcinc);
lastplotted_x2 = -1;
lastchecked_x2 = -1;
i = 0;

if (line_to_start) {
px = cos(start);
py = sin(start);
px = std::cos(start);
py = std::sin(start);
x2 = px * xspan + 0.5;
y2 = py * yspan - 0.5;
fast_line(ix, iy, ix + x2, iy - y2, col);
Expand Down Expand Up @@ -13387,8 +13387,8 @@ void sub_circle(double x, double y, double r, uint32 col, double start, double e
allplotted:

if (line_from_end) {
px = cos(end);
py = sin(end);
px = std::cos(end);
py = std::sin(end);
x2 = px * xspan + 0.5;
y2 = py * yspan - 0.5;
fast_line(ix, iy, ix + x2, iy - y2, col);
Expand Down Expand Up @@ -20015,34 +20015,34 @@ double func_log(double value) {
error(5);
return 0;
}
return log(value);
return std::log(value);
}

// FIX
double func_fix_double(double value) {
if (value < 0)
return ceil(value);
return std::ceil(value);
else
return floor(value);
return std::floor(value);
}
long double func_fix_float(long double value) {
if (value < 0)
return ceil(value);
return std::ceil(value);
else
return floor(value);
return std::floor(value);
}

// EXP
double func_exp_single(double value) {
if (value <= 88.02969) {
return exp(value);
return std::exp(value);
}
error(6);
return 0;
}
long double func_exp_float(long double value) {
if (value <= 709.782712893) {
return exp(value);
return std::exp(value);
}
error(6);
return 0;
Expand Down Expand Up @@ -21489,7 +21489,7 @@ double func_sqr(double value) {
error(5);
return 0;
}
return sqrt(value);
return std::sqrt(value);
}

qbs *func_command_str = NULL;
Expand Down Expand Up @@ -23172,12 +23172,12 @@ void sub_rmdir(qbs *str) {

long double pow2(long double x, long double y) {
if (x < 0) {
if (y != floor(y)) {
if (y != std::floor(y)) {
error(5);
return 0;
}
}
return pow(x, y);
return std::pow(x, y);
}

int32 func_freefile() { return gfs_fileno_freefile(); }
Expand Down Expand Up @@ -23395,7 +23395,7 @@ float func__mousex(int32 context, int32 passed) {
f -= 0.001f;
if (x2 < x)
f += 0.001f;
return floor(f + 0.5);
return std::floor(f + 0.5);
}

return x;
Expand Down Expand Up @@ -23448,7 +23448,7 @@ float func__mousey(int32 context, int32 passed) {
f -= 0.001f;
if (y2 < y)
f += 0.001f;
return floor(f + 0.5);
return std::floor(f + 0.5);
}

return y;
Expand Down Expand Up @@ -27116,8 +27116,8 @@ void sub_draw(qbs *s) {
// rotate vectors by ta?
if (draw_ta) {
d = draw_ta * 0.0174532925199433;
sin_ta = sin(d);
cos_ta = cos(d);
sin_ta = std::sin(d);
cos_ta = std::cos(d);
px2 = vx;
py2 = vy;
vx = px2 * cos_ta + py2 * sin_ta;
Expand Down Expand Up @@ -27274,8 +27274,8 @@ void sub_draw(qbs *s) {
fy = 1; // reset vectors
// rotate vectors by ta
d = draw_ta * 0.0174532925199433;
sin_ta = sin(d);
cos_ta = cos(d);
sin_ta = std::sin(d);
cos_ta = std::cos(d);
px2 = vx;
py2 = vy;
vx = px2 * cos_ta + py2 * sin_ta;
Expand Down Expand Up @@ -33916,7 +33916,7 @@ double func_arcsec(double num) {
error(5);
return 0;
}
return atan(num / sqrt(1 - num * num)) + (sign - 1) * (2 * atan(1));
return std::atan(num / std::sqrt(1 - num * num)) + (sign - 1) * (2 * std::atan(1));
}

double func_arccsc(double num) {
Expand All @@ -33925,69 +33925,69 @@ double func_arccsc(double num) {
error(5);
return 0;
}
return atan(num / sqrt(1 - num * num)) + (sign - 1) * (2 * atan(1));
return std::atan(num / std::sqrt(1 - num * num)) + (sign - 1) * (2 * std::atan(1));
}

double func_arccot(double num) { return 2 * atan(1) - atan(num); }
double func_arccot(double num) { return 2 * std::atan(1) - std::atan(num); }

double func_sech(double num) {
if (num > 88.02969) {
error(5);
return 0;
}
if (exp(num) + exp(-num) == 0) {
if (std::exp(num) + std::exp(-num) == 0) {
error(5);
return 0;
}
return 2 / (exp(num) + exp(-num));
return 2 / (std::exp(num) + std::exp(-num));
}

double func_csch(double num) {
if (num > 88.02969) {
error(5);
return 0;
}
if (exp(num) - exp(-num) == 0) {
if (std::exp(num) - std::exp(-num) == 0) {
error(5);
return 0;
}
return 2 / (exp(num) - exp(-num));
return 2 / (std::exp(num) - std::exp(-num));
}

double func_coth(double num) {
if (num > 44.014845) {
error(5);
return 0;
}
if (2 * exp(num) - 1 == 0) {
if (2 * std::exp(num) - 1 == 0) {
error(5);
return 0;
}
return 2 * exp(num) - 1;
return 2 * std::exp(num) - 1;
}

double func_sec(double num) {
if (cos(num) == 0) {
if (std::cos(num) == 0) {
error(5);
return 0;
}
return 1 / cos(num);
return 1 / std::cos(num);
}

double func_csc(double num) {
if (sin(num) == 0) {
if (std::sin(num) == 0) {
error(5);
return 0;
}
return 1 / sin(num);
return 1 / std::sin(num);
}

double func_cot(double num) {
if (tan(num) == 0) {
if (std::tan(num) == 0) {
error(5);
return 0;
}
return 1 / tan(num);
return 1 / std::tan(num);
}

void GLUT_key_ascii(int32 key, int32 down) {
Expand Down Expand Up @@ -37082,7 +37082,7 @@ void MAIN_LOOP(void *unused) {
if (!lprint) { // not currently performing an LPRINT operation
lprint_locked = 1;
if (lprint_buffered) {
if (fabs(func_timer(0.001, 1) - lprint_last) >= 10.0) { // 10 seconds elapsed since last LPRINT operation
if (std::fabs(func_timer(0.001, 1) - lprint_last) >= 10.0) { // 10 seconds elapsed since last LPRINT operation
sub__printimage(lprint_image);
lprint_buffered = 0;
static int32 old_dest;
Expand Down
20 changes: 10 additions & 10 deletions internal/c/qbx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ extern int32 sub_gl_called;
double pi_as_double = 3.14159265358979;
void gluPerspective(double fovy, double aspect, double zNear, double zFar) {
double xmin, xmax, ymin, ymax;
ymax = zNear * tan(fovy * pi_as_double / 360.0);
ymax = zNear * std::tan(fovy * pi_as_double / 360.0);
ymin = -ymax;
xmin = ymin * aspect;
xmax = ymax * aspect;
Expand Down Expand Up @@ -820,18 +820,18 @@ template <typename T> static T qbs_cleanup(uint32 base, T passvalue) {


// force abs to return floating point numbers correctly
inline double func_abs(double d) { return fabs(d); }
inline long double func_abs(long double d) { return fabs(d); }
inline float func_abs(float d) { return fabs(d); }
inline double func_abs(double d) { return std::fabs(d); }
inline long double func_abs(long double d) { return std::fabs(d); }
inline float func_abs(float d) { return std::fabs(d); }

inline uint8 func_abs(uint8 d) { return d; }
inline uint16 func_abs(uint16 d) { return d; }
inline uint32 func_abs(uint32 d) { return d; }
inline uint64 func_abs(uint64 d) { return d; }
inline int8 func_abs(int8 d) { return abs(d); }
inline int16 func_abs(int16 d) { return abs(d); }
inline int32 func_abs(int32 d) { return abs(d); }
inline int64 func_abs(int64 d) { return llabs(d); }
inline int8 func_abs(int8 d) { return std::abs(d); }
inline int16 func_abs(int16 d) { return std::abs(d); }
inline int32 func_abs(int32 d) { return std::abs(d); }
inline int64 func_abs(int64 d) { return std::llabs(d); }

extern int32 disableEvents;

Expand Down Expand Up @@ -1412,7 +1412,7 @@ void sub_chain(qbs *f) {
if (TFS == NULL)
TFS = qbs_new(0, 0);
TD = func_timer(0.001E+0, 1);
TL = qbr(floor(TD));
TL = qbr(std::floor(TD));
TL = qbr((TD - TL) * 999);
if (TL < 100)
TL = 100; // ensure value is a 3 digit number
Expand Down Expand Up @@ -2100,7 +2100,7 @@ void TIMERTHREAD(void *unused) {
// if difference between actual time and
// measured time is beyond 'seconds' set
// measured to actual
if (fabs(time_now -
if (std::fabs(time_now -
ontimer[i].last_time) >=
ontimer[i].seconds)
ontimer[i].last_time = time_now;
Expand Down