diff options
-rw-r--r-- | 064random.cc | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/064random.cc b/064random.cc new file mode 100644 index 00000000..98ec3156 --- /dev/null +++ b/064random.cc @@ -0,0 +1,42 @@ +:(before "End Primitive Recipe Declarations") +RANDOM, +:(before "End Primitive Recipe Numbers") +Recipe_number["random"] = RANDOM; +:(before "End Primitive Recipe Implementations") +case RANDOM: { + products.resize(1); + // todo: replace rand() + products.at(0).push_back(rand()); + break; +} + +:(before "End Primitive Recipe Declarations") +MAKE_RANDOM_NONDETERMINISTIC, +:(before "End Primitive Recipe Numbers") +Recipe_number["make-random-nondeterministic"] = MAKE_RANDOM_NONDETERMINISTIC; +:(before "End Primitive Recipe Implementations") +case MAKE_RANDOM_NONDETERMINISTIC: { + srand(time(NULL)); + break; +} + +:(before "End Primitive Recipe Declarations") +ROUND, +:(before "End Primitive Recipe Numbers") +Recipe_number["round"] = ROUND; +:(before "End Primitive Recipe Implementations") +case ROUND: { + assert(scalar(ingredients.at(0))); + products.resize(1); + products.at(0).push_back(rint(ingredients.at(0).at(0))); + break; +} + +:(scenario round_to_nearest_integer) +recipe main [ + 1:number <- round 12.2 +] ++mem: storing 12 in location 1 + +:(before "End Includes") +#include<math.h> |