<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Convolution of Two Vectors in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52282#M11044</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As much as I hate to be a naysayer, any approach that use the definition of the convolution will be many times slower than using a fast Fourier transform. From an efficiency point of view, these algorithms are not the best way to solve the problem. If you are going to be doing convolutions often, you might want to invest in SAS/IML.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not very familar with SAS/ETS, but is there any procedure there that can be used to convolve vectors?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 22 Nov 2011 13:18:24 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2011-11-22T13:18:24Z</dc:date>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52262#M11024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are there any functions in Base SAS (I do not have SAS enterprise miner) to compute the convolution of two vectors??? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please guide. Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 12:05:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52262#M11024</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T12:05:26Z</dc:date>
    </item>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52263#M11025</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't think there is in base sas, but there is if you license IML (e.g., &lt;A href="http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#langref_sect138.htm"&gt;http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#langref_sect138.htm&lt;/A&gt; ).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 13:20:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52263#M11025</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-21T13:20:41Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52264#M11026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks art297. I do not have IML. Looking for a way to implement it in Base SAS itself. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a way to implement the vector operations shown below in Base SAS?? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the example below, data table test1 contains three variable Variable1, Variable2 and Variable3. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA test1; &lt;/P&gt;&lt;P&gt;set test1; &lt;/P&gt;&lt;P&gt;DO i = 1 to num;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;set test1 nobs point = i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; variable1&lt;I&gt;=&amp;nbsp; sum(variable2[1:i-1]*variable3[(num-i+2)]:num)];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;END; &lt;/P&gt;&lt;P&gt;RUN; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 16:31:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52264#M11026</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T16:31:55Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52265#M11027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Of course there is, but you would have to show a small example with some data and what should go into the calculations.&amp;nbsp; e.g., when i eq 1 what value should the calculation sum(variable2[1:i-1] get?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is the maximum number of records you will have?&amp;nbsp; If it isn't too big, an easy solution might be to just preload the entire table into an array.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 16:44:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52265#M11027</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-21T16:44:07Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52266#M11028</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi art297, my dataset has close to 10,000 observations.&amp;nbsp; The following is a sample dataset:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;DATA&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; X Y Z;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;1 10 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;2 20 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;3 30 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;4 40 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;5 50 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;I have also given some sample calculations below:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;Iteration 1: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;SUM(X[1:1]*Y[5–2+2:5]) = SUM(X[1:1]*Y[5:5]) = SUM([1]*[50]) = 50&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;Iteration 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;SUM(X[1:2]*Y[5–3+2:5]) = SUM(X[1:2]*Y[4:5]) = SUM([1,2]*[40,50]) = SUM(40+100) = 140&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;Iteration 3:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;SUM(X[1:3]*Y[5–4+2:5]) = SUM(X[1:3]*Y[3:5]) = SUM([1,2,3]*[30,40,50]) = SUM(30+80+150) = 260&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;… so on&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;The final dataset after all the calculations will look like this&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;DATA&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;input&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; X Y Z;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;cards&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;1 10 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;2 20 50 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;3 30 140&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;4 40 260&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;5 50 400&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;Thank you.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 17:23:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52266#M11028</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T17:23:50Z</dc:date>
    </item>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52267#M11029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; In my previous post, Z corresponds to Variable 1, X corresponds to Variable 2 and Y corresponds to Variable 3. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 17:31:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52267#M11029</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T17:31:34Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52268#M11030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This may not be the fastest way, but it should work for any size vectors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA test;&lt;/P&gt;&lt;P&gt;input X Y expZ;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 10 0&lt;/P&gt;&lt;P&gt;2 20 50&lt;/P&gt;&lt;P&gt;3 30 140&lt;/P&gt;&lt;P&gt;4 40 260&lt;/P&gt;&lt;P&gt;5 50 400&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;data want ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set test nobs=nobs ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; z=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; i=_n_-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do p1=1 to i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p2=nobs -i + p1 ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test (keep=x rename=(x=x1)) point=p1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test (keep=y rename=(y=y1)) point=p2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; z1=(x1*y1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; z=sum(z,z1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; *&amp;nbsp; put (_n_ i p1 p2 x1 y1 z1 z) (=);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc print width=min;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&amp;nbsp;&amp;nbsp;&amp;nbsp; expZ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z&amp;nbsp;&amp;nbsp;&amp;nbsp; i&amp;nbsp;&amp;nbsp;&amp;nbsp; x1&amp;nbsp;&amp;nbsp;&amp;nbsp; y1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/P&gt;&lt;P&gt; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&lt;/P&gt;&lt;P&gt; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 140&amp;nbsp;&amp;nbsp;&amp;nbsp; 140&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/P&gt;&lt;P&gt; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 260&amp;nbsp;&amp;nbsp;&amp;nbsp; 260&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&lt;/P&gt;&lt;P&gt; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 400&amp;nbsp;&amp;nbsp;&amp;nbsp; 400&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp; 50&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 18:30:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52268#M11030</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-11-21T18:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52269#M11031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The following doesn't look as tidy as Tom's suggested code but, with 10000 records, took 6 seconds on my machine, while Tom's approach took over a minute:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*create some test data*/&lt;/P&gt;&lt;P&gt;DATA test (drop=i);&lt;/P&gt;&lt;P&gt;&amp;nbsp; input X Y Z;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i=1 to 2000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 10 0&lt;/P&gt;&lt;P&gt;2 20 0&lt;/P&gt;&lt;P&gt;3 30 0&lt;/P&gt;&lt;P&gt;4 40 0&lt;/P&gt;&lt;P&gt;5 50 0&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt; if 0 then set test nobs=nobs;&lt;/P&gt;&lt;P&gt; CALL SYMPUT('NUMREC',nobs);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** put # of records into NUMREC macro var ***/&lt;/P&gt;&lt;P&gt; stop;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** stop, got number of records ***/&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* now read values of x and y into arrays, and then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; reread test and do calculations*/&lt;/P&gt;&lt;P&gt;data want (drop=_:);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _xval(&amp;amp;numrec); /* create two arrays with same number of&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elements as there are records in test&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _yval(&amp;amp;numrec);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until (eof1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* load the array with x and y values */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test end=eof1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _xval(i)=x;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _yval(i)=y;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rec=-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until (eof2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* read in each record separately */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test end=eof2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rec+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do _i=1 to _rec;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z+_xval(_i)*_yval(&amp;amp;numrec-_rec+_i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 19:16:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52269#M11031</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-21T19:16:37Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52270#M11032</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot Tom and Art. I am looking at Art's solution since it is faster (For a record with 8000+ records it takes around 1.9 secs). Speed is very critical since this is going to be called multiple times for optimization. Any faster solution is welcome.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying out one more enhancement to the code with an additional variable A as follows (A is just another variable in the dataset):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO i = 1 to num;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;set test nobs point = i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Z =&amp;nbsp; sum(X[1:i-1]*Y[(num-i+2)]:num)];&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG&gt;X&lt;I&gt; = A&lt;I&gt; + Z&lt;I&gt;;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/STRONG&gt;&lt;I&gt;&lt;I&gt;&lt;I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;END; &lt;/P&gt;&lt;P&gt;RUN; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried the following but it isn't giving the expected solution:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;if 0 then set test nobs=nobs;&lt;/P&gt;&lt;P&gt;CALL SYMPUT('NUMREC',nobs);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** put # of records into NUMREC macro var ***/&lt;/P&gt;&lt;P&gt;stop;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*** stop, got number of records ***/&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* now read values of x and y into arrays, and then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; reread test and do calculations*/&lt;/P&gt;&lt;P&gt;data want (drop=_:);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _xval(&amp;amp;numrec); /* create two arrays with same number of&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elements as there are records in test&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _yval(&amp;amp;numrec);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; array _Aval(&amp;amp;numrec);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until (eof1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* load the array with x and y values */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test end=eof1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _xval(i)=x;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _yval(i)=y;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;_Aval(i) = A;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rec=-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until (eof2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* read in each record separately */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set test end=eof2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rec+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do _i=1 to _rec;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z+_xval(_i)*_yval(&amp;amp;numrec-_rec+_i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;_xval(_i) = _Aval(_i) + z;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can someone please point out the correct approach??? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 22:01:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52270#M11032</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T22:01:32Z</dc:date>
    </item>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52271#M11033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I haven't looked at all of your code, but noticed that you never declared the new array.&amp;nbsp; Make sure that you add one.&amp;nbsp; e.g.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _xval(&amp;amp;numrec); /* create THREE arrays with same number of&lt;/P&gt;&lt;P style="background-color: #eef4f9;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elements as there are records in test&lt;/P&gt;&lt;P style="background-color: #eef4f9;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P style="background-color: #eef4f9;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _yval(&amp;amp;numrec);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array _Aval(&amp;amp;numrec);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 22:09:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52271#M11033</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-21T22:09:49Z</dc:date>
    </item>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52272#M11034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Art,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That was a typo in the code I pasted here. In the actual code have declared it. It still doesn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 22:15:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52272#M11034</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T22:15:08Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52273#M11035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Was this also just a typo?: &lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;-xval(_i) = _Aval(_i) + z;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or should it have been _&lt;STRONG style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #eef4f9;"&gt;xval(_i) &lt;STRONG style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #eef4f9;"&gt;= _Aval(_i) + z;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And, of course, that will use the new values in all of the later calculations.&amp;nbsp; Is that what you want?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 22:21:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52273#M11035</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-21T22:21:24Z</dc:date>
    </item>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52274#M11036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Oops...sorry. That was another typo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New values are to be used in the later calculation. But only the current i is replace in each iteration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 22:28:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52274#M11036</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T22:28:36Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52275#M11037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Then, I suggest that you post an expansion of your original sample data, including the new variable, and what you want as an output.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 22:44:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52275#M11037</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-21T22:44:04Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52276#M11038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please find below the new data and the expected output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;DATA&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt; test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;input X Y A Z;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;cards; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;1 10 0.1 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;2 20 0.2 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;3 30 0.3 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;4 40 0.4 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;5 50 0.5 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;DATA&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt; results;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;input X Y A Z;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;cards; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;1.0 10 0.1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;50.2 20 0.2&amp;nbsp;&amp;nbsp; 50 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;2550.3 30 0.3 2550&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;129553.4 40 0.4&amp;nbsp; 129553&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; font-size: 10pt;"&gt;6581208.5 50 0.5 6581208&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt;; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt; &lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;STRONG style="color: #000080; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;Thank you&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 23:00:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52276#M11038</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-21T23:00:56Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52277#M11039</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You might improve performance by doing the multiplication only once.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=test out=x prefix=x ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var x;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc transpose data=test out=y prefix=y;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; var y;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; call symputx('NOBS',nobs);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if 0 then set test nobs=nobs;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data convolute;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if _n_=1 then set x y;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array x x1-x&amp;amp;nobs ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array y y1-y&amp;amp;nobs;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; array xy (&amp;amp;nobs,&amp;amp;nobs) _temporary_;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if _n_=1 then do ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to &amp;amp;nobs; do j=1 to &amp;amp;nobs ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xy(i,j)=x(i)*y(i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;***** now write summation code using indexes into xy 2-dimensional array ;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Nov 2011 23:33:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52277#M11039</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2011-11-21T23:33:40Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52278#M11040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't see what you want.&amp;nbsp; When, in the calculation and updates, should A be applied and how?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2011 00:25:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52278#M11040</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2011-11-22T00:25:55Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52279#M11041</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Art,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have given an example below. Please let me know if you need any other information. Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: navy; font-size: 10pt;"&gt;DATA&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;input&lt;/SPAN&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; X Y A Z;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;cards&lt;/SPAN&gt;; &lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;1 10 0.1 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;2 20 0.2 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;3 30 0.3 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;4 40 0.4 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;5 50 0.5 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: navy; font-size: 10pt;"&gt;run&lt;/SPAN&gt;&lt;/STRONG&gt;; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: white; margin: 0px 0px 0px 2.25pt;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white; margin: 0px 0px 0px 2.25pt;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;Iteration 1: &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white; margin: 0px 0px 0px 2.25pt;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;SUM(X[1:1]*Y[5–2+2:5]) = SUM(X[1:1]*Y[5:5]) = SUM([1]*[50]) = 50&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;X[2] = Z[2] + A[2] --&amp;gt;&lt;/SPAN&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; X[2] = 50 + 0.2 = 50.2&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;test dataset after iteration 1:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&amp;nbsp; A&amp;nbsp; Z&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 0.1 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;50.2 20 0.2 50 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp; 30 0.3 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp; 40 0.4 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp; 50 0.5 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;This test will be used in the second iteration as follows&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;Iteration 2:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white; margin: 0px 0px 0px 2.25pt;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;SUM(X[1:2]*Y[5–3+2:5]) = SUM(X[1:2]*Y[4:5]) = SUM([1,50.2]*[40,50]) = SUM(40+2510) = 2550&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;X[3] = Z[3] + A[3] --&amp;gt;&lt;/SPAN&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; X[3] = 2550 + 0.3 = 2550.3&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;test dataset after iteration 2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;X&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&amp;nbsp;&amp;nbsp; A&amp;nbsp; Z &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10 0.1 0 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;50.2&amp;nbsp;&amp;nbsp; 20 0.2 50 &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;2550.3 30 0.3 2550&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40 0.4 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50 0.5 0&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2011 10:31:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52279#M11041</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-22T10:31:12Z</dc:date>
    </item>
    <item>
      <title>Re: Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52280#M11042</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Tom. I will try this out. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2011 10:36:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52280#M11042</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-22T10:36:14Z</dc:date>
    </item>
    <item>
      <title>Convolution of Two Vectors</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52281#M11043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hi Tom,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The XY array you have defined holds the following matrix. Could you please explain what summation are you referring to on this XY array? Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="background-color: aqua;"&gt;[ ,1]&amp;nbsp;&amp;nbsp; [,2]&amp;nbsp;&amp;nbsp; [,3]&amp;nbsp;&amp;nbsp; [,4]&amp;nbsp;&amp;nbsp; [,5]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: aqua; font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;[1,]&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: aqua; font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;[2,]&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: aqua; font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;[3,]&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: aqua; font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;[4,]&amp;nbsp; 160&amp;nbsp; 160&amp;nbsp; 160&amp;nbsp; 160&amp;nbsp; 160&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: aqua; font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt;[5,]&amp;nbsp; 250&amp;nbsp; 250&amp;nbsp; 250&amp;nbsp; 250&amp;nbsp; 250&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: white;"&gt;&lt;SPAN lang="EN" style="background-color: aqua; font-family: 'Arial','sans-serif'; color: #333333; font-size: 9pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2011 11:42:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Convolution-of-Two-Vectors/m-p/52281#M11043</guid>
      <dc:creator>vioravis</dc:creator>
      <dc:date>2011-11-22T11:42:44Z</dc:date>
    </item>
  </channel>
</rss>

