diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-12 18:08:47 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-12 18:08:47 -0700 |
commit | fca0ebbe0cc01d37e47822d8a62ea062a845f33d (patch) | |
tree | 557ef7d0bd5d3ddc98ab47cf0273c99cc4a09630 /043space.cc | |
parent | 98f3a94201df11501d417ac2e75a756ab54ac873 (diff) | |
download | mu-fca0ebbe0cc01d37e47822d8a62ea062a845f33d.tar.gz |
1360 - store doubles in memory
This is a far cleaner way to provide *some* floating-point support. We can only represent signed integers up to 2^51 rather than 2^63. But in exchange we don't have to worry about it elsewhere, and it's probably faster than checking tag bits in every operation. Hmm, yeah, surprised how easy this was. I think I'll give up on the other approach. I still don't have non-integer literals. But we won't bother with those until we need them. `3.14159:literal` seems ugly.
Diffstat (limited to '043space.cc')
-rw-r--r-- | 043space.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/043space.cc b/043space.cc index b0ee7f85..2a8ff4fc 100644 --- a/043space.cc +++ b/043space.cc @@ -107,7 +107,7 @@ index_t address(index_t offset, index_t base) { return base+1 + offset; } -:(after "void write_memory(reagent x, vector<long long int> data)") +:(after "void write_memory(reagent x, vector<double> data)") if (x.name == "default-space") { assert(data.size() == 1); Current_routine->calls.top().default_space = data.at(0); @@ -122,9 +122,9 @@ recipe main [ ] +mem: storing 10 in location 1 -:(after "vector<long long int> read_memory(reagent x)") +:(after "vector<double> read_memory(reagent x)") if (x.name == "default-space") { - vector<long long int> result; + vector<double> result; result.push_back(Current_routine->calls.top().default_space); return result; } |