Mercurial > hg > dmlib
changeset 663:05eb24a608f0
Some minor touches to evaluator code.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 16 Apr 2013 08:33:43 +0300 |
parents | 81f50da921e5 |
children | 57fc2ec4efdc |
files | dmeval.c dmeval.h |
diffstat | 2 files changed, 26 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/dmeval.c Tue Apr 16 07:46:07 2013 +0300 +++ b/dmeval.c Tue Apr 16 08:33:43 2013 +0300 @@ -6,9 +6,27 @@ #define DM_MAX_BUF 512 #define DM_STACK_SIZE 512 -static DMValue int_clip(DMValue v) +static DMValue func_int_clip(DMValue *v) +{ + return (*v < -1.0f) ? -1.0f : ((*v > 1.0f) ? 1.0f : *v); +} + + +static DMValue func_sin(DMValue *v) { - return (v < -1.0f) ? -1.0f : ((v > 1.0f) ? 1.0f : v); + return sin(*v); +} + + +static DMValue func_cos(DMValue *v) +{ + return cos(*v); +} + + +static DMValue func_pow(DMValue *v) +{ + return pow(v[0], v[1]); } @@ -16,9 +34,10 @@ */ static const DMEvalId dm_eval_basic[] = { - { "sin", ID_FUNC, sin, NULL }, - { "cos", ID_FUNC, cos, NULL }, - { "clip", ID_FUNC, int_clip, NULL }, + { "sin", ID_FUNC, 1, func_sin, NULL }, + { "cos", ID_FUNC, 1, func_cos, NULL }, + { "clip", ID_FUNC, 1, func_int_clip, NULL }, + { "pow", ID_FUNC, 2, func_pow, NULL }, }; static const int ndm_eval_basic = sizeof(dm_eval_basic) / sizeof(dm_eval_basic[0]);