MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

A programming puzzle.

  • To: mathgroup at
  • Subject: [mg60810] A programming puzzle.
  • From: jackgoldberg at
  • Date: Thu, 29 Sep 2005 05:41:27 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

Hello everyone,

I have a simple problem for which I would like an "elegant" solution.  The problem is to convert the series  

a1*b1 + a2*b2 + a3*b3 + ... + an*bn

into the equivalent series 

a1(b1 - b2) + (a1+a2)(b2 - b3) + ... +(a1 + a2 + ... + an-1)(bn-1 - bn) + 
         (a1 + a2 + ... + an)bn

This process, I believe, is called summation-by-parts.  This problem is not hard to do; one simply separates the ai's from the bi's, constructs the "partial" sums for the  ai  series and the differences for the  bi series.  Then a dot product gets the answer.  I am interested in a more elegant solution, if one exists. 
Taking care of all special cases will probably make any solution rather inelegant, so I am taking the liberty granted to all posers of only allowing series which have at least two terms AND the bi's are not constants and  bi = bj is prohibited unless i = j.  (This is, in fact, the situation I am concerned with.)

I think some of you will have fun connocting ingenious solutions ...  Let me know if you find any.  Incidentally, timing is not crucial in my applications of "summation-by-parts" nor is storage of intermediate computations a problem.  Thanks!

Jack Goldberg

  • Prev by Date: Import-Function buggy in Version 5.2 ?
  • Next by Date: Re: Multicore Calculations
  • Previous by thread: Re: Import-Function buggy in Version 5.2 ?
  • Next by thread: Re: A programming puzzle.