Chapter 6. Programming for Math and Engineering

This chapter will focus on computation that is mathematical and engineering oriented, such as digital signal filtering, or any other mathematical computation that may apply to any Big Data of (usually) simple items.

A lot of the examples within this chapter will use libraries such as Math.NET Numerics or AForge.Math. These libraries are available for free through NuGet Package Manager.

In this chapter, we will cover the following topics:

  • Evaluating the performance of data types
  • Real-time applications
  • Case study: the Fourier transform
  • Sliding processing

Introduction

Performance impact regarding complex computation is often a primary concern for mathematicians and engineers who deal with C# coding.

Throughput is usually the main performance goal when dealing with scientific data because the faster the application can do its job, the faster the result will be available to the user. This high computational speed improves updating a UI in a higher FPS or processing more asynchronous data for a non-UI application. This always affects the end user considerably.

As opposed to an enterprise world in which big datasets of complex data and logics with simple operations exist, in the mathematical or engineering world, these datasets are usually huge but always of primary types, such as floating-point numbers or sometimes timestamps.

Saving a single millisecond per item when processing 100,000 items per second means saving lot of time, so, fixing usually unintended mistakes or computations that are not optimized has become a main task of any programmer.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.17.176.72