summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rwxr-xr-xmain.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/main.c b/main.c
index 4308e55..473e556 100755
--- a/main.c
+++ b/main.c
@@ -41,17 +41,8 @@ int main(int argc, char *argv[]) {
}
period = (uint_t)val;
}
- if (period == 0 || period > BUFFER_SIZE) {
- fprintf(stderr, "Error: period must be between 1 and %d\n", BUFFER_SIZE);
- usage(argv[0]);
- return 1;
- }
-
fp_t input[BUFFER_SIZE];
fp_t output[BUFFER_SIZE];
- for (int_t i = 0; i < (int_t)BUFFER_SIZE; i++) {
- output[i] = 0;
- }
if (!ts_fill(input, BUFFER_SIZE, 0, (fp_t)BUFFER_SIZE)) {
fprintf(stderr, "ts_fill failed\n");
@@ -63,19 +54,15 @@ int main(int argc, char *argv[]) {
ts_constant_t c;
memset(&c, 0, sizeof(c));
- *(uint_t *)c.data = period;
+ memcpy(c.data, &period, sizeof(period));
int ret = ts_average(y, 1, x, 1, BUFFER_SIZE, &c);
if (ret == -1) {
fprintf(stderr, "ts_average failed\n");
return 1;
}
- /* Validate output: first valid value is at index period-1 */
+ /* First valid SMA value is at index period-1 */
uint_t offset = period - 1;
- if (offset >= BUFFER_SIZE) {
- fprintf(stderr, "error: period exceeds buffer size\n");
- return 1;
- }
/* Clamp display range to valid output */
uint_t display_end = DISPLAY_N < BUFFER_SIZE ? DISPLAY_N : BUFFER_SIZE;
@@ -85,7 +72,7 @@ int main(int argc, char *argv[]) {
}
for (uint_t i = offset; i < display_end; i++) {
- printf("input[%" TS_PRIuint "] = %f SMA[%" TS_PRIuint "] = %f\n", i, input[i], i, output[i]);
+ printf("input[%" TS_PRIuint "] = %" TS_PRIfp " SMA[%" TS_PRIuint "] = %" TS_PRIfp "\n", i, input[i], i, output[i]);
}
return 0;