Back in January 1996, in the very beginning of my carrier at AutomationX GmbH, I was asked to help a software engineer to improve an optical measurement system, which was a part of an electronic component production line. The production line had already been delivered to a customer and was being used in the manufacturing, but the results of optical measurements weren't sufficiently stable; a significant bill was pending. We were supposed to successfully complete our mission within 4-6 hours on site.
Upon a brief inspection of what was going on, I suggested use of outlier elimination (standard receipt, what). As no mathematics libraries were used so far, and there has been no way to download any, the only remaining way was to implement it in own code.
On a sheet of paper, I sketched the control flow and necessary formulas and gave it to my colleague. At this point, the above cited sentence sounded. My colleague pointed to the sum sign (upper-case sigma) in the formula for root mean square error and said: "Vassili, there isn't such symbol on the keyboard!" So, I was led to simply verbalize the C code that pictured the algorithm. We left the facility at some 8 pm and never returned to that specific issue any more.
During the years that followed, we often recalled this situation. The story accreted new details, the root problem blurred, the sum operator has transformed itself into the surface integral, and so on... But certain things remained unchanged.
Over and over again, in the simulation software projects, my teammates prefer source code or pseudo code over standard mathematical descriptions. At the same time, I feel great pleasure and great relieve when I see my fellow developers understanding core meanings of our simulation algorithms and actively using this knowledge in the daily work.
In this blog, I will try to build up a kind of mathematics-to-code glossary for my former, actual and future teammates. Follow me at www.facebook.com/vkb.computing for getting more.