diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-13 10:03:26 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-13 10:03:26 -0700 |
commit | 5497090aa1e708c22cd240913a53dda32bb067aa (patch) | |
tree | 5a9eb76d447736a8199230c9386bd0a374b325dd /021arithmetic.cc | |
parent | 01caf342d072115c27926b1a61c2fc75ab9fbee0 (diff) | |
download | mu-5497090aa1e708c22cd240913a53dda32bb067aa.tar.gz |
1363 - rename 'integer' to 'number'
..now that we support non-integers.
Diffstat (limited to '021arithmetic.cc')
-rw-r--r-- | 021arithmetic.cc | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/021arithmetic.cc b/021arithmetic.cc index 0dedd02d..2bb330a4 100644 --- a/021arithmetic.cc +++ b/021arithmetic.cc @@ -18,7 +18,7 @@ case ADD: { :(scenario add_literal) recipe main [ - 1:integer <- add 23:literal, 34:literal + 1:number <- add 23:literal, 34:literal ] +run: instruction main/0 +run: ingredient 0 is 23 @@ -28,9 +28,9 @@ recipe main [ :(scenario add) recipe main [ - 1:integer <- copy 23:literal - 2:integer <- copy 34:literal - 3:integer <- add 1:integer, 2:integer + 1:number <- copy 23:literal + 2:number <- copy 34:literal + 3:number <- add 1:number, 2:number ] +run: instruction main/2 +run: ingredient 0 is 1 @@ -42,7 +42,7 @@ recipe main [ :(scenario add_multiple) recipe main [ - 1:integer <- add 3:literal, 4:literal, 5:literal + 1:number <- add 3:literal, 4:literal, 5:literal ] +mem: storing 12 in location 1 @@ -65,7 +65,7 @@ case SUBTRACT: { :(scenario subtract_literal) recipe main [ - 1:integer <- subtract 5:literal, 2:literal + 1:number <- subtract 5:literal, 2:literal ] +run: instruction main/0 +run: ingredient 0 is 5 @@ -75,9 +75,9 @@ recipe main [ :(scenario subtract) recipe main [ - 1:integer <- copy 23:literal - 2:integer <- copy 34:literal - 3:integer <- subtract 1:integer, 2:integer + 1:number <- copy 23:literal + 2:number <- copy 34:literal + 3:number <- subtract 1:number, 2:number ] +run: instruction main/2 +run: ingredient 0 is 1 @@ -89,7 +89,7 @@ recipe main [ :(scenario subtract_multiple) recipe main [ - 1:integer <- subtract 6:literal, 3:literal, 2:literal + 1:number <- subtract 6:literal, 3:literal, 2:literal ] +mem: storing 1 in location 1 @@ -111,7 +111,7 @@ case MULTIPLY: { :(scenario multiply_literal) recipe main [ - 1:integer <- multiply 2:literal, 3:literal + 1:number <- multiply 2:literal, 3:literal ] +run: instruction main/0 +run: ingredient 0 is 2 @@ -121,9 +121,9 @@ recipe main [ :(scenario multiply) recipe main [ - 1:integer <- copy 4:literal - 2:integer <- copy 6:literal - 3:integer <- multiply 1:integer, 2:integer + 1:number <- copy 4:literal + 2:number <- copy 6:literal + 3:number <- multiply 1:number, 2:number ] +run: instruction main/2 +run: ingredient 0 is 1 @@ -135,7 +135,7 @@ recipe main [ :(scenario multiply_multiple) recipe main [ - 1:integer <- multiply 2:literal, 3:literal, 4:literal + 1:number <- multiply 2:literal, 3:literal, 4:literal ] +mem: storing 24 in location 1 @@ -158,7 +158,7 @@ case DIVIDE: { :(scenario divide_literal) recipe main [ - 1:integer <- divide 8:literal, 2:literal + 1:number <- divide 8:literal, 2:literal ] +run: instruction main/0 +run: ingredient 0 is 8 @@ -168,9 +168,9 @@ recipe main [ :(scenario divide) recipe main [ - 1:integer <- copy 27:literal - 2:integer <- copy 3:literal - 3:integer <- divide 1:integer, 2:integer + 1:number <- copy 27:literal + 2:number <- copy 3:literal + 3:number <- divide 1:number, 2:number ] +run: instruction main/2 +run: ingredient 0 is 1 @@ -182,10 +182,12 @@ recipe main [ :(scenario divide_multiple) recipe main [ - 1:integer <- divide 12:literal, 3:literal, 2:literal + 1:number <- divide 12:literal, 3:literal, 2:literal ] +mem: storing 2 in location 1 +//: Integer division + :(before "End Primitive Recipe Declarations") DIVIDE_WITH_REMAINDER, :(before "End Primitive Recipe Numbers") @@ -195,6 +197,7 @@ case DIVIDE_WITH_REMAINDER: { long long int quotient = ingredients.at(0).at(0) / ingredients.at(1).at(0); long long int remainder = static_cast<long long int>(ingredients.at(0).at(0)) % static_cast<long long int>(ingredients.at(1).at(0)); products.resize(2); + // very large integers will lose precision products.at(0).push_back(quotient); products.at(1).push_back(remainder); break; @@ -202,7 +205,7 @@ case DIVIDE_WITH_REMAINDER: { :(scenario divide_with_remainder_literal) recipe main [ - 1:integer, 2:integer <- divide-with-remainder 9:literal, 2:literal + 1:number, 2:number <- divide-with-remainder 9:literal, 2:literal ] +run: instruction main/0 +run: ingredient 0 is 9 @@ -214,9 +217,9 @@ recipe main [ :(scenario divide_with_remainder) recipe main [ - 1:integer <- copy 27:literal - 2:integer <- copy 11:literal - 3:integer, 4:integer <- divide-with-remainder 1:integer, 2:integer + 1:number <- copy 27:literal + 2:number <- copy 11:literal + 3:number, 4:number <- divide-with-remainder 1:number, 2:number ] +run: instruction main/2 +run: ingredient 0 is 1 @@ -231,6 +234,6 @@ recipe main [ :(scenario divide_with_decimal_point) recipe main [ # todo: literal floats? - 1:integer <- divide 5:literal, 2:literal + 1:number <- divide 5:literal, 2:literal ] +mem: storing 2.5 in location 1 |