[ 
https://issues.apache.org/jira/browse/STATISTICS-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17739388#comment-17739388
 ] 

Anirudh Joshi commented on STATISTICS-71:
-----------------------------------------

{quote}[...] What about {{Count}} being a {{{}DoubleStorelessStatistics{}}}, on 
which other(s) could depend?
{quote}
I was thinking the same to avoid redundant computations while computing 
multiple statistics. We could implement count as a standalone statistic and use 
composition to avoid redundant computations while computing multiple statistics 
?


DoubleStorelessUnivariateStatistic add(double d);
{quote}{{[...] What's the intended usage?}}{{ }}
{quote}
{{The reason I included this signature is to possibly support chaining during 
the add calls like}}
{code:java}
Mean m = new Mean();
double mean = m.add(1).add(2).add(3).getAsDouble();

double mean = Stream.of(1.0, 2.0, 3.0).map(Mean::add).getAsDouble();{code}
{quote}
[...] E.g. is "Storeless" a required part of the name? Or is it an 
"implementation detail"?
{quote}
I changed the interface name to DoubleStorelessUnivariateStatistic since I feel 
we might actually need 3 interfaces, IntStorelessSummaryStatistics for integer 
data and LongSummaryStatistics for long data, similar to JDK SummaryStatistics. 
I feel its better to have Storeless as part of the interface name to make it 
clear that it is a storeless implementation, so that users are aware that they 
cannot do certain things like compute rolling statistics for instance. But I do 
not have a strong opinion on this and curious to hear other arguments against 
the naming (e.g. if the name is too verbose)


{quote}
[...] be more restrictive in order to forbid meaningless combinations?
{quote}

Not sure if I understand the requirement correctly. What are the kinds of 
combinations we want to restrict here ?

> Implementation of Univariate Statistics
> ---------------------------------------
>
>                 Key: STATISTICS-71
>                 URL: https://issues.apache.org/jira/browse/STATISTICS-71
>             Project: Commons Statistics
>          Issue Type: Task
>          Components: descriptive
>            Reporter: Anirudh Joshi
>            Priority: Minor
>              Labels: gsoc, gsoc2023
>
> Jira ticket to track the implementation of the Univariate statistics required 
> for the updated SummaryStatistics API. 
> The implementation would be "storeless". It should be used for calculating 
> statistics that can be computed in one pass through the data without storing 
> the sample values.
> Currently I have the definition of API as (this might evolve as I continue 
> working)
> {code:java}
> public interface DoubleStorelessUnivariateStatistic extends DoubleSupplier {
>     DoubleStorelessUnivariateStatistic add(double v);
>     long getCount();
>     void combine(DoubleStorelessUnivariateStatistic other);
> } {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to