We are excited to announce ArrayFire v3.5.1! This release focuses on fixing bugs and improving performance - here are the improvements we think are most important:

<strong>Bug fixes</strong>
<ul>
    <li>We've squashed a long standing bug in the CUDA backend responsible for breaking whenever the second, third, or fourth dimensions were large enough to exceed limits imposed by the CUDA runtime.</li>
    <li>The previous implementation of <code>af::mean()</code> suffered from overflows when the summation of the values lied outside the range of the backing data type. New kernels for each of our backends have been written to prevent this issue.</li>
    <li>The <code>af::canny()</code> function has been patched with a workaround to avoid a bug in Apple's OpenCL driver. We are working on releasing an upcoming patch to fix all examples that are similarly affected.</li>
</ul>

<strong>Performance improvements</strong>
<ul>
    <li>Improved JIT performance.</li>
    <li>Improved CPU element-wise operation performance.</li>
    <li>Improved regions performance using texture objects.</li>
</ul>
[custom_headline type="left" level="h4" looks_like="h4"]Future Releases[/custom_headline]

As always we are working on improving the performance of all of our functions. This has been another exciting update to ArrayFire and we have great plans for the next release. Stay tuned!