help naming new library (math / computer science experts needed)

I am working on a new library. It is a computational framework where the computations follow the following pattern: - Users build a computational object by selecting the computations they are interested in (or author their own computational primimtives which fit within the framework). - Users push data into the object one sample at a time - The object computes the requested quantities in the most efficient method possible (resolving dependencies between requested calculations, cacheing intermediate results, etc.) - The object may or may not be stateful. What should such a library be called? Is there an accepted term for such a computational model? -- Eric Niebler Boost Consulting www.boost-consulting.com

I am working on a new library. It is a computational framework where the computations follow the following pattern:
- Users build a computational object by selecting the computations they are interested in (or author their own computational primimtives which fit within the framework). - Users push data into the object one sample at a time - The object computes the requested quantities in the most efficient method possible (resolving dependencies between requested calculations, cacheing intermediate results, etc.) - The object may or may not be stateful.
What should such a library be called? Is there an accepted term for such a computational model?
I don't know if there is an accepted term, but it sounds a little like an "accumulator". I thought of using a model like this for a statistics lib, but never got around to writing it (it's an excellent way of calculating the mean + std deviation etc). It's also a lot like an output iterator :-) John.

John Maddock wrote:
I am working on a new library. It is a computational framework where the computations follow the following pattern:
- Users build a computational object by selecting the computations they are interested in (or author their own computational primimtives which fit within the framework). - Users push data into the object one sample at a time - The object computes the requested quantities in the most efficient method possible (resolving dependencies between requested calculations, cacheing intermediate results, etc.) - The object may or may not be stateful.
What should such a library be called? Is there an accepted term for such a computational model?
A flowgraph ? (well a Directed Acylic Graph probably), that's what we call them in a compositing/3D application anyway. Your computation object is obviously an optimising compiler, you've essentially described the high level concepts within Apple's Shake, or any of the other similar tools. Other possible metaphors: pipeline, composition, schematic, process tree, recipe Kevin -- | Kevin Wheatley, Cinesite (Europe) Ltd | Nobody thinks this | | Senior Technology | My employer for certain | | And Network Systems Architect | Not even myself |

On 17/11/05, John Maddock <john@johnmaddock.co.uk> wrote:
I don't know if there is an accepted term, but it sounds a little like an "accumulator".
Well, I'm no math/cs expert, but I like the accululator name, since it seems very much like an alternate interface to std::accumulate. It might be nice to have these accumulators be able to act either as predicates or the initial value for std::accumulate; perhaps something along the lines of one the following: double average = std::accumulate( cont.begin(), cont.end(), 0.0, boost::accumulator< boost::arithmetic_mean<double> >() ); double average = std::accumulate( cont.begin(), cont.end(), boost::accumulator< boost::arithmetic_mean<int, double> >() ).value(); Although the first looks like it'd have some efficiency issues, and the second one isn't the nicest interface and could have some copying problems, but I'm sure there's someone here smarter than me that can make it work :P - Scott McMurray

Eric Niebler wrote:
I am working on a new library. It is a computational framework where the computations follow the following pattern:
- Users build a computational object by selecting the computations they are interested in (or author their own computational primimtives which fit within the framework). - Users push data into the object one sample at a time - The object computes the requested quantities in the most efficient method possible (resolving dependencies between requested calculations, cacheing intermediate results, etc.) - The object may or may not be stateful.
What should such a library be called? Is there an accepted term for such a computational model?
IIUC, the idea shares concepts with Adobe's Adam. They use the term "spreadsheet" in that context. Despite the lack of any visual representation, I like the term because it describes the concept very concisely. Regards, m Send instant messages to your online friends http://au.messenger.yahoo.com

On Thu, 17 Nov 2005 07:10:41 -0200, Eric Niebler <eric@boost-consulting.com> wrote:
I am working on a new library. It is a computational framework where the computations follow the following pattern:
- Users build a computational object by selecting the computations they are interested in (or author their own computational primimtives which fit within the framework). - Users push data into the object one sample at a time - The object computes the requested quantities in the most efficient method possible (resolving dependencies between requested calculations, cacheing intermediate results, etc.) - The object may or may not be stateful.
What should such a library be called? Is there an accepted term for such a computational model?
It seems similar to Adaptive Computing, or Incremental Computation. See Adaptive Functional Programming by Umut A. Acar, Guy E. Blelloch, Robert Harper and Monads for Incremental Computing by Magnus Carlsson HTH, Bruno
participants (6)
-
Bruno MartÃnez
-
Eric Niebler
-
John Maddock
-
Kevin Wheatley
-
Martin Wille
-
me22