Fix warnings - blind - suckless command-line video editing utility | |
git clone git://git.suckless.org/blind | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit f3cde9060c57320c9ed7a9b4bcb494bd411fb1f4 | |
parent 42dbdaca968f29457eac192cea065551b496703f | |
Author: Mattias Andrée <[email protected]> | |
Date: Sat, 15 Jul 2017 01:04:14 +0200 | |
Fix warnings | |
Signed-off-by: Mattias Andrée <[email protected]> | |
Diffstat: | |
M src/blind-arithm.c | 9 --------- | |
M src/blind-cross-product.c | 9 --------- | |
M src/blind-dot-product.c | 9 --------- | |
M src/blind-find-rectangle.c | 2 +- | |
M src/blind-from-named.c | 4 ++-- | |
M src/blind-hexagon-tessellation.c | 4 ++-- | |
M src/blind-kernel.c | 5 ----- | |
M src/blind-mosaic-edges.c | 2 +- | |
M src/blind-mosaic.c | 2 +- | |
M src/blind-multiply-matrices.c | 2 +- | |
M src/blind-quaternion-product.c | 9 --------- | |
M src/blind-sinc-wave.c | 10 +++++----- | |
M src/blind-spiral-gradient.c | 4 ++-- | |
M src/blind-tee.c | 4 ++-- | |
M src/blind-to-named.c | 4 ++-- | |
M src/blind-triangular-wave.c | 10 +++++----- | |
M src/blind-vector-projection.c | 9 --------- | |
M src/common.h | 6 ++++++ | |
M src/util.c | 12 ++++++------ | |
M src/util/io.h | 12 ++++++------ | |
M src/util/to.h | 8 ++++---- | |
M src/video-math.h | 70 ++++++++++++++++-------------… | |
22 files changed, 81 insertions(+), 125 deletions(-) | |
--- | |
diff --git a/src/blind-arithm.c b/src/blind-arithm.c | |
@@ -28,11 +28,6 @@ typedef void (*process_func)(struct stream *left, struct str… | |
rh = ((TYPE *)(right->buf + i))[CHI],\ | |
(ALGO)), 0) : 0) | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic push | |
-# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
-#endif | |
- | |
#define X(NAME, ALGO, PIXFMT, TYPE)\ | |
static void\ | |
process_##PIXFMT##_##NAME(struct stream *left, struct stream *right, s… | |
@@ -50,10 +45,6 @@ LIST_OPERATORS(xyza, double) | |
LIST_OPERATORS(xyzaf, float) | |
#undef X | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic pop | |
-#endif | |
- | |
static process_func | |
get_process_xyza(const char *operation) | |
{ | |
diff --git a/src/blind-cross-product.c b/src/blind-cross-product.c | |
@@ -3,11 +3,6 @@ | |
USAGE("right-hand-stream") | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic push | |
-# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
-#endif | |
- | |
#define PROCESS(TYPE, SUFFIX)\ | |
static void\ | |
process_##SUFFIX(struct stream *left, struct stream *right, size_t n)\ | |
@@ -33,10 +28,6 @@ USAGE("right-hand-stream") | |
PROCESS(double, lf) | |
PROCESS(float, f) | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic pop | |
-#endif | |
- | |
int | |
main(int argc, char *argv[]) | |
{ | |
diff --git a/src/blind-dot-product.c b/src/blind-dot-product.c | |
@@ -3,11 +3,6 @@ | |
USAGE("right-hand-stream") | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic push | |
-# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
-#endif | |
- | |
#define PROCESS(TYPE, SUFFIX)\ | |
static void\ | |
process_##SUFFIX(struct stream *left, struct stream *right, size_t n)\ | |
@@ -26,10 +21,6 @@ USAGE("right-hand-stream") | |
PROCESS(double, lf) | |
PROCESS(float, f) | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic pop | |
-#endif | |
- | |
int | |
main(int argc, char *argv[]) | |
{ | |
diff --git a/src/blind-find-rectangle.c b/src/blind-find-rectangle.c | |
@@ -75,7 +75,7 @@ int | |
main(int argc, char *argv[]) | |
{ | |
double colour_lf[4]; | |
- double colour_f[4]; | |
+ float colour_f[4]; | |
ARGBEGIN { | |
case 'a': | |
diff --git a/src/blind-from-named.c b/src/blind-from-named.c | |
@@ -60,7 +60,7 @@ sendfile(int outfd, int infd, off_t *offset, size_t count) | |
break; | |
ret += r; | |
for (p = 0; p < r; p += w) { | |
- w = write(outfd, buf + p, r - p); | |
+ w = write(outfd, buf + p, (size_t)(r - p)); | |
if (w < 0) | |
eprintf("write <stdout>:"); | |
} | |
@@ -99,7 +99,7 @@ main(int argc, char *argv[]) | |
memset(&addr, 0, sizeof(addr)); | |
addr.sun_family = AF_UNIX; | |
- if (strlen(argv[0]) + 1 + abstract > sizeof(addr.sun_path)) { | |
+ if (strlen(argv[0]) + (size_t)(1 + abstract) > sizeof(addr.sun_path)) { | |
errno = ENAMETOOLONG; | |
eprintf("%s:", argv[0]); | |
} | |
diff --git a/src/blind-hexagon-tessellation.c b/src/blind-hexagon-tessellation.c | |
@@ -57,7 +57,7 @@ main(int argc, char *argv[]) | |
eprintf("pixel format %s is not supported, try xyza\n", pixfmt… | |
strcpy(stream.pixfmt, pixfmt); | |
- stream.width = (size_t)(diameter * sqrt(3.)); | |
+ stream.width = (size_t)((double)diameter * sqrt(3.)); | |
stream.height = diameter * 3 / 2; | |
fprint_stream_head(stdout, &stream); | |
efflush(stdout, "<stdout>"); | |
@@ -100,7 +100,7 @@ main(int argc, char *argv[]) | |
} else { | |
k = (stream.width <= x * 4 && x * 4 < stream.w… | |
} | |
- ewriteall(STDOUT_FILENO, colours + k * pixwidth, pixwi… | |
+ ewriteall(STDOUT_FILENO, colours + (size_t)k * pixwidt… | |
} | |
} | |
diff --git a/src/blind-kernel.c b/src/blind-kernel.c | |
@@ -1,11 +1,6 @@ | |
/* See LICENSE file for copyright and license details. */ | |
#include "common.h" | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic push | |
-# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
-#endif | |
- | |
USAGE("[-xyza] kernel [parameter] ...") | |
#define SUBUSAGE(FORMAT) "usage: %s [-xyza] " FORMAT, argv0 | |
diff --git a/src/blind-mosaic-edges.c b/src/blind-mosaic-edges.c | |
@@ -99,7 +99,7 @@ main(int argc, char *argv[]) | |
continue; | |
at_edge: | |
- edges[i >> 3] |= 1 << (i & 7); | |
+ edges[i >> 3] |= (char)(1 << (i & 7)); | |
} | |
for (i = 0; i < n; i++) { | |
v = (edges[i >> 3] >> (i & 7)) & 1; | |
diff --git a/src/blind-mosaic.c b/src/blind-mosaic.c | |
@@ -114,7 +114,7 @@ search_lf(void *restrict output, void *restrict mbuf, struc… | |
static void | |
search_f(void *restrict output, void *restrict mbuf, struct stream *mosaic, | |
- size_t x, size_t y, size_t index, double ch1, double ch2, double ch3,… | |
+ size_t x, size_t y, size_t index, float ch1, float ch2, float ch3, fl… | |
{ | |
SEARCH(float, search_f); | |
} | |
diff --git a/src/blind-multiply-matrices.c b/src/blind-multiply-matrices.c | |
@@ -82,7 +82,7 @@ main(int argc, char *argv[]) | |
usage(); | |
if (natural) { | |
- rev_argv = alloca(argc * sizeof(*rev_argv)); | |
+ rev_argv = alloca((size_t)argc * sizeof(*rev_argv)); | |
for (j = 0; j < argc; j++) | |
rev_argv[j] = argv[argc - 1 - j]; | |
argv = rev_argv; | |
diff --git a/src/blind-quaternion-product.c b/src/blind-quaternion-product.c | |
@@ -3,11 +3,6 @@ | |
USAGE("right-hand-stream") | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic push | |
-# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
-#endif | |
- | |
#define PROCESS(TYPE, SUFFIX)\ | |
static void\ | |
process_##SUFFIX(struct stream *left, struct stream *right, size_t n)\ | |
@@ -33,10 +28,6 @@ USAGE("right-hand-stream") | |
PROCESS(double, lf) | |
PROCESS(float, f) | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic pop | |
-#endif | |
- | |
int | |
main(int argc, char *argv[]) | |
{ | |
diff --git a/src/blind-sinc-wave.c b/src/blind-sinc-wave.c | |
@@ -36,7 +36,7 @@ static int equal = 0; | |
if (equal) {\ | |
for (i = 0; i < n; i++) {\ | |
a = ((TYPE *)(grad->buf))[4 * i + 3];\ | |
- a = (a ? sin(a + theta0y) / a : sin(a … | |
+ a = (a ? sin(a + theta0y) / a : sin(a … | |
((TYPE *)(grad->buf))[4 * i + 0] = a;\ | |
((TYPE *)(grad->buf))[4 * i + 1] = a;\ | |
((TYPE *)(grad->buf))[4 * i + 2] = a;\ | |
@@ -48,10 +48,10 @@ static int equal = 0; | |
y = ((TYPE *)(grad->buf))[4 * i + 1];\ | |
z = ((TYPE *)(grad->buf))[4 * i + 2];\ | |
a = ((TYPE *)(grad->buf))[4 * i + 3];\ | |
- x = (x ? sin(x + theta0x) / x : sin(x … | |
- y = (y ? sin(y + theta0y) / y : sin(y … | |
- z = (z ? sin(z + theta0z) / z : sin(z … | |
- a = (a ? sin(a + theta0a) / a : sin(a … | |
+ x = (x ? sin(x + theta0x) / x : sin(x … | |
+ y = (y ? sin(y + theta0y) / y : sin(y … | |
+ z = (z ? sin(z + theta0z) / z : sin(z … | |
+ a = (a ? sin(a + theta0a) / a : sin(a … | |
((TYPE *)(grad->buf))[4 * i + 0] = x;\ | |
((TYPE *)(grad->buf))[4 * i + 1] = y;\ | |
((TYPE *)(grad->buf))[4 * i + 2] = z;\ | |
diff --git a/src/blind-spiral-gradient.c b/src/blind-spiral-gradient.c | |
@@ -60,7 +60,7 @@ static int with_vector; | |
y2 -= y1;\ | |
u = atan2(y2, x2);\ | |
b = sqrt(x2 * x2 + y2 * y2);\ | |
- b *= spirals;\ | |
+ b *= (TYPE)spirals;\ | |
if (logarithmic)\ | |
b = log(b);\ | |
b /= pow(2 * (TYPE)M_PI, e);\ | |
@@ -100,7 +100,7 @@ static int with_vector; | |
r = (r - v) / (2 * (TYPE)M_PI)… | |
}\ | |
if (angle)\ | |
- r = (int)(r + 1) + v / (2 * (T… | |
+ r = (TYPE)(int)(r + 1) + v / (… | |
else\ | |
r = mod(r, 1 / (TYPE)spirals) … | |
buf[ptr][0] = buf[ptr][1] = buf[ptr][2… | |
diff --git a/src/blind-tee.c b/src/blind-tee.c | |
@@ -11,7 +11,7 @@ int | |
main(int argc, char *argv[]) | |
{ | |
char buf[PIPE_BUF]; | |
- int *fds = alloca(argc * sizeof(*fds)); | |
+ int *fds = alloca((size_t)argc * sizeof(*fds)); | |
size_t i, n = 0, done; | |
ssize_t r, w, *ps; | |
@@ -34,7 +34,7 @@ main(int argc, char *argv[]) | |
for (i = 0; i < n; i++) { | |
if (ps[i] == r) | |
continue; | |
- w = write(fds[i], buf + ps[i], r - ps[i]); | |
+ w = write(fds[i], buf + ps[i], (size_t)(r - ps… | |
if (w < 0) { | |
close(fds[i]); | |
n--; | |
diff --git a/src/blind-to-named.c b/src/blind-to-named.c | |
@@ -28,7 +28,7 @@ esend_fd(int sock, int fd) | |
cmsg->cmsg_type = SCM_RIGHTS; | |
memcpy(CMSG_DATA(cmsg), &fd, sizeof(fd)); | |
- if (sendmsg(sock, &msg, 0) != iov.iov_len) | |
+ if (sendmsg(sock, &msg, 0) != (ssize_t)iov.iov_len) | |
eprintf("sendmsg:"); | |
} | |
@@ -51,7 +51,7 @@ main(int argc, char *argv[]) | |
memset(&addr, 0, sizeof(addr)); | |
addr.sun_family = AF_UNIX; | |
- if (strlen(argv[0]) + 1 + abstract > sizeof(addr.sun_path)) { | |
+ if (strlen(argv[0]) + (size_t)(1 + abstract) > sizeof(addr.sun_path)) { | |
errno = ENAMETOOLONG; | |
eprintf("%s:", argv[0]); | |
} | |
diff --git a/src/blind-triangular-wave.c b/src/blind-triangular-wave.c | |
@@ -21,7 +21,7 @@ static int spiral = 0; | |
a = posmod(a, (TYPE)2);\ | |
a = a > 1 ? 2 - a : a;\ | |
if (spiral)\ | |
- a = (a > 0.5 ? 1 - a : a) * 2;\ | |
+ a = (a > (TYPE)0.5 ? 1 - a : a… | |
((TYPE *)(stream->buf))[4 * i + 0] = a… | |
((TYPE *)(stream->buf))[4 * i + 1] = a… | |
((TYPE *)(stream->buf))[4 * i + 2] = a… | |
@@ -42,10 +42,10 @@ static int spiral = 0; | |
z = z > 1 ? 2 - z : z;\ | |
a = a > 1 ? 2 - a : a;\ | |
if (spiral) {\ | |
- x = (x > 0.5 ? 1 - x : x) * 2;\ | |
- y = (y > 0.5 ? 1 - y : y) * 2;\ | |
- z = (z > 0.5 ? 1 - z : z) * 2;\ | |
- a = (a > 0.5 ? 1 - a : a) * 2;\ | |
+ x = (x > (TYPE)0.5 ? 1 - x : x… | |
+ y = (y > (TYPE)0.5 ? 1 - y : y… | |
+ z = (z > (TYPE)0.5 ? 1 - z : z… | |
+ a = (a > (TYPE)0.5 ? 1 - a : a… | |
}\ | |
((TYPE *)(stream->buf))[4 * i + 0] = x… | |
((TYPE *)(stream->buf))[4 * i + 1] = y… | |
diff --git a/src/blind-vector-projection.c b/src/blind-vector-projection.c | |
@@ -5,11 +5,6 @@ USAGE("[-r | -s] plane-stream") | |
static int level = 1; | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic push | |
-# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
-#endif | |
- | |
#define PROCESS(TYPE, SUFFIX)\ | |
static void\ | |
process_##SUFFIX(struct stream *left, struct stream *right, size_t n)\ | |
@@ -46,10 +41,6 @@ static int level = 1; | |
PROCESS(double, lf) | |
PROCESS(float, f) | |
-#if defined(__GNUC__) && !defined(__clang__) | |
-# pragma GCC diagnostic pop | |
-#endif | |
- | |
int | |
main(int argc, char *argv[]) | |
{ | |
diff --git a/src/common.h b/src/common.h | |
@@ -7,8 +7,14 @@ | |
# pragma clang diagnostic ignored "-Wfloat-equal" | |
# pragma clang diagnostic ignored "-Wformat-nonliteral" | |
# pragma clang diagnostic ignored "-Wcovered-switch-default" | |
+# pragma clang diagnostic ignored "-Wfloat-conversion" | |
+# pragma clang diagnostic ignored "-Wabsolute-value" | |
+# pragma clang diagnostic ignored "-Wconditional-uninitialized" | |
+# pragma clang diagnostic ignored "-Wunreachable-code-return" | |
#elif defined(__GNUC__) | |
# pragma GCC diagnostic ignored "-Wfloat-equal" | |
+# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" | |
+# pragma GCC diagnostic ignored "-Wfloat-conversion" | |
#endif | |
#include "stream.h" | |
diff --git a/src/util.c b/src/util.c | |
@@ -94,9 +94,9 @@ erange: | |
int | |
-writeall(int fd, void *buf, size_t n) | |
+writeall(int fd, const void *buf, size_t n) | |
{ | |
- char *buffer = buf; | |
+ const char *buffer = buf; | |
ssize_t r; | |
while (n) { | |
r = write(fd, buffer, n); | |
@@ -122,13 +122,13 @@ readall(int fd, void *buf, size_t n) | |
break; | |
ptr += (size_t)r; | |
} | |
- return ptr; | |
+ return (ssize_t)ptr; | |
} | |
int | |
-pwriteall(int fd, void *buf, size_t n, off_t ptr) | |
+pwriteall(int fd, const void *buf, size_t n, off_t ptr) | |
{ | |
- char *buffer = buf; | |
+ const char *buffer = buf; | |
ssize_t r; | |
while (n) { | |
r = pwrite(fd, buffer, n, (off_t)ptr); | |
@@ -142,7 +142,7 @@ pwriteall(int fd, void *buf, size_t n, off_t ptr) | |
} | |
int | |
-writezeroes(int fd, void *buf, size_t bufsize, size_t n) | |
+writezeroes(int fd, const void *buf, size_t bufsize, size_t n) | |
{ | |
size_t p, m; | |
for (p = 0; p < n; p += m) { | |
diff --git a/src/util/io.h b/src/util/io.h | |
@@ -20,10 +20,10 @@ | |
#define ewritezeroes(...) enwritezeroes(1, __VA_ARGS__) | |
#define egetfile(...) engetfile(1, __VA_ARGS__) | |
-int writeall(int fd, void *buf, size_t n); | |
+int writeall(int fd, const void *buf, size_t n); | |
static inline void | |
-enwriteall(int status, int fd, void *buf, size_t n, const char *fname) | |
+enwriteall(int status, int fd, const void *buf, size_t n, const char *fname) | |
{ | |
if (writeall(fd, buf, n)) | |
enprintf(status, "write %s:", fname); | |
@@ -40,19 +40,19 @@ enreadall(int status, int fd, void *buf, size_t n, const ch… | |
return (size_t)r; | |
} | |
-int pwriteall(int fd, void *buf, size_t n, off_t ptr); | |
+int pwriteall(int fd, const void *buf, size_t n, off_t ptr); | |
static inline void | |
-enpwriteall(int status, int fd, void *buf, size_t n, off_t ptr, const char *fn… | |
+enpwriteall(int status, int fd, const void *buf, size_t n, off_t ptr, const ch… | |
{ | |
if (pwriteall(fd, buf, n, ptr)) | |
enprintf(status, "pwrite %s:", fname); | |
} | |
-int writezeroes(int fd, void *buf, size_t bufsize, size_t n); | |
+int writezeroes(int fd, const void *buf, size_t bufsize, size_t n); | |
static inline void | |
-enwritezeroes(int status, int fd, void *buf, size_t bufsize, size_t n, const c… | |
+enwritezeroes(int status, int fd, const void *buf, size_t bufsize, size_t n, c… | |
{ | |
if (writezeroes(fd, buf, bufsize, n)) | |
enprintf(status, "write %s:", fname); | |
diff --git a/src/util/to.h b/src/util/to.h | |
@@ -25,7 +25,7 @@ DEF_STR_TO_INT(toi, int, tolli, long long int, "i") | |
#define toji tolli | |
#define DEF_STR_TO_INT(FNAME, TYPE, PRI)\ | |
- static inline TYPE\ | |
+ static TYPE\ | |
en##FNAME##_flag(int status, int flag, const char *s, TYPE min, TYPE m… | |
{\ | |
TYPE ret = 0;\ | |
@@ -42,7 +42,7 @@ DEF_STR_TO_INT(toi, int, tolli, long long int, "i") | |
return en##FNAME##_flag(1, flag, s, min, max);\ | |
}\ | |
\ | |
- static inline TYPE\ | |
+ static TYPE\ | |
en##FNAME##_arg(int status, const char *name, const char *s, TYPE min,… | |
{\ | |
TYPE ret = 0;\ | |
@@ -100,7 +100,7 @@ DEF_STR_TO_INT(toi, int, "i") | |
return 0;\ | |
}\ | |
\ | |
- static inline TYPE\ | |
+ static TYPE\ | |
en##FNAME##_flag(int status, int flag, const char *s)\ | |
{\ | |
TYPE ret = 0;\ | |
@@ -115,7 +115,7 @@ DEF_STR_TO_INT(toi, int, "i") | |
return en##FNAME##_flag(1, flag, s);\ | |
}\ | |
\ | |
- static inline TYPE\ | |
+ static TYPE\ | |
en##FNAME##_arg(int status, const char *name, const char *s)\ | |
{\ | |
TYPE ret = 0;\ | |
diff --git a/src/video-math.h b/src/video-math.h | |
@@ -2,7 +2,7 @@ | |
#include <math.h> | |
static inline double | |
-nnpow(double a, double b) | |
+nnpow_d(double a, double b) | |
{ | |
int neg = a < 0; | |
a = pow(neg ? -a : a, b); | |
@@ -10,7 +10,7 @@ nnpow(double a, double b) | |
} | |
static inline float | |
-nnpowf(float a, float b) | |
+nnpow_f(float a, float b) | |
{ | |
int neg = a < 0; | |
a = powf(neg ? -a : a, b); | |
@@ -18,61 +18,61 @@ nnpowf(float a, float b) | |
} | |
static inline double | |
-posmod(double a, double b) | |
+posmod_d(double a, double b) | |
{ | |
double x = fmod(a, b); | |
return x < 0 ? x + b : x; | |
} | |
static inline float | |
-posmodf(float a, float b) | |
+posmod_f(float a, float b) | |
{ | |
float x = fmodf(a, b); | |
return x < 0 ? x + b : x; | |
} | |
static inline double | |
-degsin(double u) | |
+degsin_d(double u) | |
{ | |
if (!fmod(u, 90)) { | |
- int64_t v = u; | |
+ int64_t v = (int64_t)u; | |
v = ((v / 90) % 4 + 4) % 4; | |
return ((double[]){0, 1, 0, -1})[v]; | |
} | |
- return sin(u * (M_PI / 180.0)); | |
+ return sin(u * (M_PI / 180)); | |
} | |
static inline float | |
-degsinf(float u) | |
+degsin_f(float u) | |
{ | |
if (!fmodf(u, 90)) { | |
- int64_t v = u; | |
+ int64_t v = (int64_t)u; | |
v = ((v / 90) % 4 + 4) % 4; | |
return ((float[]){0, 1, 0, -1})[v]; | |
} | |
- return sin(u * (float)(M_PI / 180.0)); | |
+ return sinf(u * (float)(M_PI / 180)); | |
} | |
static inline double | |
-degcos(double u) | |
+degcos_d(double u) | |
{ | |
if (!fmod(u, 90)) { | |
- int64_t v = u; | |
+ int64_t v = (int64_t)u; | |
v = ((v / 90) % 4 + 4) % 4; | |
return ((double[]){1, 0, -1, 0})[v]; | |
} | |
- return cos(u * (M_PI / 180.0)); | |
+ return cos(u * (M_PI / 180)); | |
} | |
static inline float | |
-degcosf(float u) | |
+degcos_f(float u) | |
{ | |
if (!fmodf(u, 90)) { | |
- int64_t v = u; | |
+ int64_t v = (int64_t)u; | |
v = ((v / 90) % 4 + 4) % 4; | |
return ((float[]){1, 0, -1, 0})[v]; | |
} | |
- return cos(u * (float)(M_PI / 180.0)); | |
+ return cosf(u * (float)(M_PI / 180)); | |
} | |
#define GENERIC(TYPE, FUNC, ...)\ | |
@@ -101,25 +101,25 @@ degcosf(float u) | |
GENERIC(double, FUNC##_d, A, _… | |
GENERIC(float, FUNC##_f, A, _… | |
-#define pow(...) MATH_GENERIC_N(pow, __VA_ARGS__) | |
-#define log2(...) MATH_GENERIC_1(log2, __VA_ARGS__) | |
-#define log(...) MATH_GENERIC_1(log, __VA_ARGS__) | |
-#define abs(...) MATH_GENERIC_1(fabs, __VA_ARGS__) | |
-#define sqrt(...) MATH_GENERIC_1(sqrt, __VA_ARGS__) | |
-#define exp(...) MATH_GENERIC_1(exp, __VA_ARGS__) | |
-#define g_isnan(...) MATH_GENERIC_1(isnan, __VA_ARGS__) | |
-#define g_isinf(...) MATH_GENERIC_1(isinf, __VA_ARGS__) | |
-#define g_isfinite(...) MATH_GENERIC_1(isfinite, __VA_ARGS__) | |
-#define nnpow(...) MATH_GENERIC_N(nnpow, __VA_ARGS__) | |
-#define mod(...) MATH_GENERIC_N(fmod, __VA_ARGS__) | |
-#define posmod(...) MATH_GENERIC_N(posmod, __VA_ARGS__) | |
-#define cos(...) MATH_GENERIC_1(cos, __VA_ARGS__) | |
-#define sin(...) MATH_GENERIC_1(sin, __VA_ARGS__) | |
-#define tan(...) MATH_GENERIC_1(tan, __VA_ARGS__) | |
-#define atan2(...) MATH_GENERIC_N(atan2, __VA_ARGS__) | |
-#define degcos(...) MATH_GENERIC_1(degcos, __VA_ARGS__) | |
-#define degsin(...) MATH_GENERIC_1(degsin, __VA_ARGS__) | |
- | |
+#define pow(...) MATH_GENERIC_N(pow, __VA_ARGS__) | |
+#define log2(...) MATH_GENERIC_1(log2, __VA_ARGS__) | |
+#define log(...) MATH_GENERIC_1(log, __VA_ARGS__) | |
+#define abs(...) MATH_GENERIC_1(fabs, __VA_ARGS__) | |
+#define sqrt(...) MATH_GENERIC_1(sqrt, __VA_ARGS__) | |
+#define exp(...) MATH_GENERIC_1(exp, __VA_ARGS__) | |
+#define g_isnan(...) MATH_GENERIC_1(isnan, __VA_ARGS__) | |
+#define g_isinf(...) MATH_GENERIC_1(isinf, __VA_ARGS__) | |
+#define g_isfinite(...) MATH_GENERIC_1(isfinite, __VA_ARGS__) | |
+#define mod(...) MATH_GENERIC_N(fmod, __VA_ARGS__) | |
+#define cos(...) MATH_GENERIC_1(cos, __VA_ARGS__) | |
+#define sin(...) MATH_GENERIC_1(sin, __VA_ARGS__) | |
+#define tan(...) MATH_GENERIC_1(tan, __VA_ARGS__) | |
+#define atan2(...) MATH_GENERIC_N(atan2, __VA_ARGS__) | |
+ | |
+#define nnpow(...) BLIND_GENERIC_N(nnpow, __VA_ARGS__) | |
+#define posmod(...) BLIND_GENERIC_N(posmod, __VA_ARGS__) | |
+#define degcos(...) BLIND_GENERIC_1(degcos, __VA_ARGS__) | |
+#define degsin(...) BLIND_GENERIC_1(degsin, __VA_ARGS__) | |
#define srgb_encode(...) BLIND_GENERIC_1(srgb_encode, __VA_ARGS__) | |
#define srgb_decode(...) BLIND_GENERIC_1(srgb_decode, __VA_ARGS__) | |