With the recent progress in computing, and more specifically artificial intelligence (mainly neural networks), it is not strange that we see more and more sources say that it is only a question of time before such a computer program will eventually surpass the capabilities and intelligence of the human brain. A scary thought for one, an interesting thought for another. But if this is indeed a possibility, what will this mean for (human) consciousness and our understanding of it?

This article will explore the consequences for the existence of consciousness in a very specific type of computer simulation: a deterministic simulation.

Edit – Jan 25 2019

After discussing the subject of my previous CodeProject publication with others, I got curious how other languages handle the mid point values. I was happily surprised that almost every language did have this subject covered. However, there are a lot of differences between languages.

To hopefully help someone in the future, I have mapped the rounding methods in a table. X’s in bold are default implementations, other X’s are optional parameters or separate methods.

The language names in the table link to the documentation I used.

Without further ado, the big “programming language/rounding method table”:

* The table references Python 3.7 but Python 2 actually has a different round implementation. It will round half away form zero.** The mode keywords in Ruby are :up for “round half away from zero” and :down for “round half towards zero”, making them quite confusing in my opinion.

Of course, I’ve added this table to the article as well. Check it out here:

About a week ago, I was working on some code that was moving two entities along the x-axis. Inside the library, their x value was a double, but the public interface only allowed for meters in the form of an integer. I used Math.Round to translate the double value into that integer.

One of the requirements for the code was that the entities could never be closer than one meter to each other. I used the rounded value to check this.

As you might have guessed by now, the code kept failing. Even though both entities started out exactly one meter apart, had the same starting speed and were accelerating with the same speed, using the same algorithm, the code kept failing.

At first, I thought it was some kind of double precision error. But this wouldn’t make much sense, as the algorithm would result in the same precision loss. After some debugging, I eventually found out it was not the double but Math.Round that was behaving differently than I had anticipated.

Due to the complexity of the subject, and the size of the article it has taken me a while to finish. But part one of the Familiar Existence series is finally ready!

This article ventures into a world in which we assume the physical is indeed the seed of consciousness. What would this mean? What can we learn from it? What is a world in which matter exists over mind?