title: I need faster floating point math for .NET C# (for multiplying and dividing big arrays)
body: <p>I need fastest possible way to multiply and divide big arrays of data.</p>
  <p>I've read this (wrote by Ben Voigt <a href="https://stackoverflow.com/questions/14158956/simple-math-operations-faster-on-double-than-on-float-datatype">here</a>):</p>
  <blockquote>
  <p>.NET doesn't use MMX or SSE or AVX, as of the current version</p>
  <p>(...)</p>
  <p>modern C++ compilers not only allow SIMD usage, but can auto-vectorize
  ordinary-looking code into SIMD instructions</p>
  </blockquote>
  <p>.</p>
  <p>I think I need:</p>
  <ul>
  <li><p>SSE support with vector operations (for multiplying 4 floats at once)</p>
  </li>
  <li><p>multithreading support (solution/library that will not collide somehow with C# threading)</p>
  </li>
  </ul>
  <p><strong>Is there any library/dll that i can use?</strong></p>
  <p>Edit: any alternatives for Octave? I neeed only 2 operations: divide, multiply. If I understood correctly what is Octave and how it works - I will need to parse output... It cant be fast...</p>
  <hr />
  <p><strong>According to &quot;what have you tried&quot; and &quot;why you don't want to use simple <code>for</code>&quot;:</strong></p>
  <p>I need this for neural network training.
  Network (now) has more than 50 inputs, many neurons (each 50+ weights).
  Learning data contains 100.000+ rows, 50+ fields each.
  Each neuron input needs few (at least 5) multiply operations.</p>
  <p>I have no idea how many learning epochs i need, but i tried to benchmark only multiply operations and i got result: about 16 secs per epoch on my Intel Core Duo T2500 2.0GHz CPU.</p>
  <p>Of course i can buy faster computer, but new computer is worth more than few hours of my work, so I hope it looks logical...</p>