<div style="white-space:pre-wrap">Take a look at the Surge library. </div><br><div class="gmail_quote"><div dir="ltr">On Tue., 22 Nov. 2016 at 4:24 am, Kenny Leung via swift-users &lt;<a href="mailto:swift-users@swift.org">swift-users@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If only you could write this directly in Swift and have it use accelerate…<br class="gmail_msg">
<br class="gmail_msg">
-Kenny<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
&gt; On Nov 18, 2016, at 8:07 PM, Jacob Bandes-Storch via swift-users &lt;<a href="mailto:swift-users@swift.org" class="gmail_msg" target="_blank">swift-users@swift.org</a>&gt; wrote:<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; I must have forgotten how matrices work—I think it&#39;s actually this direction. And I also lost an m :-)<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; &lt;image.png&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; On Fri, Nov 18, 2016 at 7:55 PM, Jacob Bandes-Storch &lt;<a href="mailto:jtbandes@gmail.com" class="gmail_msg" target="_blank">jtbandes@gmail.com</a>&gt; wrote:<br class="gmail_msg">
&gt; Can&#39;t you achieve this with a single vector*matrix multiplication?<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; [1/n,  1/n,  ...,  1/n] * A  =  [mean(col 1); mean(col 2); ...; mean(col n)]<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; Or in more legible form:<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; &lt;image.png&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; Jacob<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; On Fri, Nov 18, 2016 at 5:36 AM, Yuma Decaux via swift-users &lt;<a href="mailto:swift-users@swift.org" class="gmail_msg" target="_blank">swift-users@swift.org</a>&gt; wrote:<br class="gmail_msg">
&gt; Hello everyone,<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; Nice to meet y&#39;all, and here&#39;s my first question:<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; I am currently setting a semantically easy to use accelerate operation extension set for my research.<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; I have done all the basic operations, vector to scalar, vector to vector, matrix mult matrix, transpose etc, but would like to know what the best approach might be for getting the mean for a matrix, as I am not sure if the result is what I think it is. In fact, I would like an output of m by 1 from an n by m matrix with means of each column vector.<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; The function is:<br class="gmail_msg">
&gt; func vDSP_meanvD(UnsafePointer&lt;Double&gt;, vDSP_Stride, UnsafeMutablePointer&lt;Double&gt;, vDSP_Length)<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; I assume for a vector this is fine since it is 1 dimensional, but for matrices here is my question:<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; What is the approach to take?<br class="gmail_msg">
&gt; 1-Do I slice my matrix into m copies of size n where M_i(n by m) and pass them all through vDSP_meanvD?<br class="gmail_msg">
&gt; 2- Does the stride argument take care of this, in that if I have stride of n, then the ranges [0:n], [n+1: 2n], [2n+1: 3n] will have their mean and std computed?<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; Thanks for any pointer<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; Best regards,<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; _______________________________________________<br class="gmail_msg">
&gt; swift-users mailing list<br class="gmail_msg">
&gt; <a href="mailto:swift-users@swift.org" class="gmail_msg" target="_blank">swift-users@swift.org</a><br class="gmail_msg">
&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-users</a><br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt;<br class="gmail_msg">
&gt; _______________________________________________<br class="gmail_msg">
&gt; swift-users mailing list<br class="gmail_msg">
&gt; <a href="mailto:swift-users@swift.org" class="gmail_msg" target="_blank">swift-users@swift.org</a><br class="gmail_msg">
&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-users</a><br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
swift-users mailing list<br class="gmail_msg">
<a href="mailto:swift-users@swift.org" class="gmail_msg" target="_blank">swift-users@swift.org</a><br class="gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-users</a><br class="gmail_msg">
</blockquote></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature">-- Howard.</div>