View Source quantile_estimator (quantile_estimator v1.0.1)

Summary

Types

data_sample/0

-type data_sample() :: number().

invariant/0

-type invariant() :: fun((number(), number()) -> number()).

Functions

compress(Quantile_estimator)

-spec compress(#quantile_estimator{samples_count :: number(),
                                   data_count :: number(),
                                   inserts_since_compression :: number(),
                                   data ::
                                       [#group{v :: number(),
                                               g :: number(),
                                               delta :: number(),
                                               rank :: number()}],
                                   invariant :: function()}) ->
                  #quantile_estimator{samples_count :: number(),
                                      data_count :: number(),
                                      inserts_since_compression :: number(),
                                      data ::
                                          [#group{v :: number(),
                                                  g :: number(),
                                                  delta :: number(),
                                                  rank :: number()}],
                                      invariant :: function()}.

f_biased(Epsilon)

-spec f_biased(number()) -> invariant().

f_targeted(Targets)

-spec f_targeted([{number(), number()}]) -> invariant().

insert(V, Quantile_estimator)

-spec insert(data_sample(),
             #quantile_estimator{samples_count :: number(),
                                 data_count :: number(),
                                 inserts_since_compression :: number(),
                                 data ::
                                     [#group{v :: number(),
                                             g :: number(),
                                             delta :: number(),
                                             rank :: number()}],
                                 invariant :: function()}) ->
                #quantile_estimator{samples_count :: number(),
                                    data_count :: number(),
                                    inserts_since_compression :: number(),
                                    data ::
                                        [#group{v :: number(),
                                                g :: number(),
                                                delta :: number(),
                                                rank :: number()}],
                                    invariant :: function()}.

inserts_since_compression(Quantile_estimator)

-spec inserts_since_compression(#quantile_estimator{samples_count :: number(),
                                                    data_count :: number(),
                                                    inserts_since_compression :: number(),
                                                    data ::
                                                        [#group{v :: number(),
                                                                g :: number(),
                                                                delta :: number(),
                                                                rank :: number()}],
                                                    invariant :: function()}) ->
                                   non_neg_integer().

new(Invariant)

-spec new(invariant()) ->
             #quantile_estimator{samples_count :: number(),
                                 data_count :: number(),
                                 inserts_since_compression :: number(),
                                 data ::
                                     [#group{v :: number(),
                                             g :: number(),
                                             delta :: number(),
                                             rank :: number()}],
                                 invariant :: function()}.

quantile(Phi, Quantile_estimator)

-spec quantile(number(),
               #quantile_estimator{samples_count :: number(),
                                   data_count :: number(),
                                   inserts_since_compression :: number(),
                                   data ::
                                       [#group{v :: number(),
                                               g :: number(),
                                               delta :: number(),
                                               rank :: number()}],
                                   invariant :: function()}) ->
                  number().