Online Algebra Calculator
Many of users do not use powerful Maxima computer algebra system for systematic work, but for ad hoc algebraic calculations – equations, functions, matrixes, etc. only. To do this job, it is not useful to download the whole application from a web site.
Function: tree_reduce (<F>, <s>)
![Tree_reduce Example tree_reduce (f, [a, b, c, d]);
tree_reduce (f, [a, b, c, d, e]);](http://maxima-online.org//plot.html?g=i-783964783.png&t=img&db=r-988821011)
Function: tree_reduce (<F>, <s>, <s_0>) Extends the binary function <F> to an n-ary function by composition, where <s> is a set or list.
tree_reduce is equivalent to the following: Apply <F> to successive pairs of elements to form a new list [<F>(<s_1>, <s_2>), <F>(<s_3>, <s_4>), ...], carrying the final element unchanged if there are an odd number of elements. Then repeat until the list is reduced to a single element, which is the return value.
When the optional argument <s_0> is present, the result is equivalent tree_reduce(<F>, cons(<s_0>, <s>).
For addition of floating point numbers, tree_reduce may return a sum that has a smaller rounding error than either rreduce or lreduce.
The elements of <s> and the partial results may be arranged in a minimum-depth binary tree, thus the name "tree_reduce".
Examples:
tree_reduce applied to a list with an even number of elements.
(%i1) tree_reduce (f, [a, b, c, d]);
(%o1) f(f(a, b), f(c, d)) tree_reduce applied to a list with an odd number of elements.
(%i1) tree_reduce (f, [a, b, c, d, e]);
(%o1) f(f(f(a, b), f(c, d)), e)(%o1) true (%i2)