Hi. Le ven. 10 janv. 2020 à 22:45, Alex Herbert <alex.d.herb...@gmail.com> a écrit : > > > > > On 10 Jan 2020, at 18:12, Gilles Sadowski <gillese...@gmail.com> wrote: > > > >> ... > > > > IIUC, precision (without resorting to "BigDecimal") was the purpose of > > "LinearCombination". +1 for making the appropriate changes to the > > existing "value" method. > > [I'd suggest to open a JIRA issue and mention the rest of the alternatives > > there, for future reference; but I wouldn't add them to the API until there > > is a need for it.] > > OK. If the purpose is precision and to avoid BigDecimal then switching to > dot3 seems the best option as it performs one pass over the round-off errors > to improve the summation in the case of badly conditioned dot products. This > is an alternative to sorting the input products before (and during) summing > and faster. > > I’ll write the code to allow expansion to dot4, dot5, etc but not add this to > the API. > > Previously I used the timings from the summation only for the 2.2x slower > estimate. The timings for the dot product are better. Dot2 to dot3 should be > 12.5 to 18.5 so about 50% slower (table 6.5 in Ogita’s paper). > > I am going to set up a JMH module for numbers as I would like to benchmark > the operations in Complex. This is for reference with regard to the idea to > create the previously discussed ComplexList that stores the numbers as > primitive arrays and then does operations by creating instances of Complex > and then returning the results to the primitive arrays. I hope to show that > for most operations the overhead of creating Complex objects is negligible. > There may be cases where special implementations would be useful such as > multiply or divide of two lists in a paired operation. > > I was going to use the format from [rng] for the JMH module thus: > > commons-numbers/commons-numbers-examples/examples-jmh > > However I do not have any other examples.
One never knows. Perhaps others will come up. E.g. usage of "Complex" in order to call JTransform... Gilles > So perhaps just a single child module that is included via a profile as it > need not be a distributed artifact: > > commons-numbers/commons-numbers-mmh > > WDYT? > > I can build the new LinearCombination methods and put the old ones in the jmh > project with a test of relative speed. > > Then I’ll get back to Complex (which is nearing completion) and the > ComplexList. > > Alex > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org