From eb22734b85f857900bffd3a856626629c0f15019 Mon Sep 17 00:00:00 2001 From: joewilliams Date: Fri, 30 Mar 2012 15:22:30 -0700 Subject: [PATCH] initial commit --- LICENSE | 201 ++++++++++++++++++++++++ README.md | 1 + rebar | Bin 0 -> 101515 bytes rebar.config | 3 + src/bear.erl | 372 ++++++++++++++++++++++++++++++++++++++++++++ src/bear_scutil.erl | 75 +++++++++ 6 files changed, 652 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100755 rebar create mode 100644 rebar.config create mode 100644 src/bear.erl create mode 100644 src/bear_scutil.erl diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..11069ed --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5b941da --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +### bear : a set of statistics functions for erlang diff --git a/rebar b/rebar new file mode 100755 index 0000000000000000000000000000000000000000..77abae6f3d390972ba56040645c0a770acf007df GIT binary patch literal 101515 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 j|xmlpl_iv_ZW? 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 +%%% @doc +%%% statistics functions for calucating based on id and a list of values +%%% @end +%%%------------------------------------------------------------------ + +-module(bear). + +-compile([export_all]). + +-export([ + get_statistics/1, + get_statistics/2 + ]). + +-define(HIST_BINS, 10). + +-define(STATS_MIN, 5). + +-record(scan_result, {n=0, sumX=0, sumXX=0, sumInv=0, sumLog, max, min}). +-record(scan_result2, {x2=0, x3=0, x4=0}). + +-compile([native]). + +get_statistics(Values) when length(Values) < ?STATS_MIN -> + [ + {min, 0.0}, + {max, 0.0}, + {arithmetic_mean, 0.0}, + {geometric_mean, 0.0}, + {harmonic_mean, 0.0}, + {median, 0.0}, + {variance, 0.0}, + {standard_deviation, 0.0}, + {skewness, 0.0}, + {kurtosis, 0.0}, + {percentile, + [ + {75, 0.0}, + {95, 0.0}, + {99, 0.0}, + {999, 0.0} + ] + }, + {histogram, [{0, 0}]} + ]; +get_statistics(Values) -> + Scan_res = scan_values(Values), + Scan_res2 = scan_values2(Values, Scan_res), + Variance = variance(Scan_res, Scan_res2), + SortedValues = lists:sort(Values), + [ + {min, Scan_res#scan_result.min}, + {max, Scan_res#scan_result.max}, + {arithmetic_mean, arithmetic_mean(Scan_res)}, + {geometric_mean, geometric_mean(Scan_res)}, + {harmonic_mean, harmonic_mean(Scan_res)}, + {median, percentile(SortedValues, Scan_res, 0.5)}, + {variance, Variance}, + {standard_deviation, std_deviation(Scan_res, Scan_res2)}, + {skewness, skewness(Scan_res, Scan_res2)}, + {kurtosis, kurtosis(Scan_res, Scan_res2)}, + {percentile, + [ + {75, percentile(SortedValues, Scan_res, 0.75)}, + {95, percentile(SortedValues, Scan_res, 0.95)}, + {99, percentile(SortedValues, Scan_res, 0.99)}, + {999, percentile(SortedValues, Scan_res, 0.999)} + ] + }, + {histogram, get_histogram(Values, Scan_res, Scan_res2)} + ]. + +get_statistics(Values, _) when length(Values) < ?STATS_MIN -> + 0.0; +get_statistics(_, Values) when length(Values) < ?STATS_MIN -> + 0.0; +get_statistics(Values1, Values2) when length(Values1) /= length(Values2) -> + 0.0; +get_statistics(Values1, Values2) -> + [ + {covariance, get_covariance(Values1, Values2)}, + {tau, get_kendall_correlation(Values1, Values2)}, + {rho, get_pearson_correlation(Values1, Values2)}, + {r, get_spearman_correlation(Values1, Values2)} + ]. + +%%%=================================================================== +%%% Internal functions +%%%=================================================================== + +scan_values([X|Values]) -> + scan_values(Values, #scan_result{n=1, sumX=X, sumXX=X*X, + sumLog=math_log(X), + max=X, min=X, sumInv=inverse(X)}). + +scan_values([X|Values], + #scan_result{n=N, sumX=SumX, sumXX=SumXX, sumLog=SumLog, + max=Max, min=Min, sumInv=SumInv}=Acc) -> + scan_values(Values, + Acc#scan_result{n=N+1, sumX=SumX+X, sumXX=SumXX+X*X, + sumLog=SumLog+math_log(X), + max=max(X,Max), min=min(X,Min), + sumInv=SumInv+inverse(X)}); +scan_values([], Acc) -> + Acc. + +scan_values2(Values, #scan_result{n=N, sumX=SumX}) -> + scan_values2(Values, SumX/N, #scan_result2{}). + +scan_values2([X|Values], Mean, #scan_result2{x2=X2, x3=X3, x4=X4}=Acc) -> + Diff = X-Mean, + Diff2 = Diff*Diff, + Diff3 = Diff2*Diff, + Diff4 = Diff2*Diff2, + scan_values2(Values, Mean, Acc#scan_result2{x2=X2+Diff2, x3=X3+Diff3, + x4=X4+Diff4}); +scan_values2([], _, Acc) -> + Acc. + + +arithmetic_mean(#scan_result{n=N, sumX=Sum}) -> + Sum/N. + +geometric_mean(#scan_result{n=N, sumLog=SumLog}) -> + math:exp(SumLog/N). + +harmonic_mean(#scan_result{n=N, sumInv=Sum}) -> + N/Sum. + +percentile(SortedValues, #scan_result{n=N}, Percentile) + when is_list(SortedValues) -> + Element = round(Percentile * N), + lists:nth(Element, SortedValues). + +%% Two pass variance +%% Results match those given by the 'var' function in R +variance(#scan_result{n=N}, #scan_result2{x2=X2}) -> + X2/(N-1). + +std_deviation(Scan_res, Scan_res2) -> + math:sqrt(variance(Scan_res, Scan_res2)). + +%% http://en.wikipedia.org/wiki/Skewness +%% +%% skewness results should match this R function: +%% skewness <- function(x) { +%% m3 <- mean((x - mean(x))^3) +%% skew <- m3 / (sd(x)^3) +%% skew +%% } +skewness(#scan_result{n=N}=Scan_res, #scan_result2{x3=X3}=Scan_res2) -> + case math:pow(std_deviation(Scan_res,Scan_res2), 3) of + 0.0 -> + 0.0; %% Is this really the correct thing to do here? + Else -> + (X3/N)/Else + end. + +%% http://en.wikipedia.org/wiki/Kurtosis +%% +%% results should match this R function: +%% kurtosis <- function(x) { +%% m4 <- mean((x - mean(x))^4) +%% kurt <- m4 / (sd(x)^4) - 3 +%% kurt +%% } +kurtosis(#scan_result{n=N}=Scan_res, #scan_result2{x4=X4}=Scan_res2) -> + case math:pow(std_deviation(Scan_res,Scan_res2), 4) of + 0.0 -> + 0.0; %% Is this really the correct thing to do here? + Else -> + ((X4/N)/Else) - 3 + end. + +get_histogram(Values, Scan_res, Scan_res2) -> + Bins = get_hist_bins(Scan_res#scan_result.min, + Scan_res#scan_result.max, + std_deviation(Scan_res, Scan_res2), + length(Values) + ), + + Dict = lists:foldl(fun (Value, Dict) -> + update_bin(Value, Bins, Dict) + end, + dict:from_list([{Bin, 0} || Bin <- Bins]), + Values), + + lists:sort(dict:to_list(Dict)). + +update_bin(Value, [Bin|_Bins], Dict) when Value =< Bin -> + dict:update_counter(Bin, 1, Dict); +update_bin(Values, [_Bin|Bins], Dict) -> + update_bin(Values, Bins, Dict). + +%% two pass covariance +%% (http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Covariance) +%% matches results given by excel's 'covar' function +get_covariance(Values, _) when length(Values) < ?STATS_MIN -> + 0.0; +get_covariance(_, Values) when length(Values) < ?STATS_MIN -> + 0.0; +get_covariance(Values1, Values2) when length(Values1) /= length(Values2) -> + 0.0; +get_covariance(Values1, Values2) -> + {SumX, SumY, N} = foldl2(fun (X, Y, {SumX, SumY, N}) -> + {SumX+X, SumY+Y, N+1} + end, {0,0,0}, Values1, Values2), + MeanX = SumX/N, + MeanY = SumY/N, + Sum = foldl2(fun (X, Y, Sum) -> + Sum + ((X - MeanX) * (Y - MeanY)) + end, + 0, Values1, Values2), + Sum/N. + +get_kendall_correlation(Values, _) when length(Values) < ?STATS_MIN -> + 0.0; +get_kendall_correlation(_, Values) when length(Values) < ?STATS_MIN -> + 0.0; +get_kendall_correlation(Values1, Values2) when length(Values1) /= length(Values2) -> + 0.0; +get_kendall_correlation(Values1, Values2) -> + bear_scutil:kendall_correlation(Values1, Values2). + +get_spearman_correlation(Values, _) when length(Values) < ?STATS_MIN -> + 0.0; +get_spearman_correlation(_, Values) when length(Values) < ?STATS_MIN -> + 0.0; +get_spearman_correlation(Values1, Values2) when length(Values1) /= length(Values2) -> + 0.0; +get_spearman_correlation(Values1, Values2) -> + TR1 = ranks_of(Values1), + TR2 = ranks_of(Values2), + Numerator = 6 * foldl2(fun (X, Y, Acc) -> + Diff = X-Y, + Acc + Diff*Diff + end, 0, TR1,TR2), + N = length(Values1), + Denominator = math:pow(N,3)-N, + 1-(Numerator/Denominator). + +ranks_of(Values) when is_list(Values) -> + [Fst|Rest] = revsort(Values), + TRs = ranks_of(Rest, [], 2, Fst, 1), + Dict = gb_trees:from_orddict(TRs), + L = lists:foldl(fun (Val, Acc) -> + Rank = gb_trees:get(Val, Dict), + [Rank|Acc] + end, [], Values), + lists:reverse(L). + +ranks_of([E|Es],Acc, N, E, S) -> + ranks_of(Es, Acc, N+1, E, S); +ranks_of([E|Es], Acc, N, P, S) -> + ranks_of(Es,[{P,(S+N-1)/2}|Acc], N+1, E, N); +ranks_of([], Acc, N, P, S) -> + [{P,(S+N-1)/2}|Acc]. + + +get_pearson_correlation(Values, _) when length(Values) < ?STATS_MIN -> + 0.0; +get_pearson_correlation(_, Values) when length(Values) < ?STATS_MIN -> + 0.0; +get_pearson_correlation(Values1, Values2) when length(Values1) /= length(Values2) -> + 0.0; +get_pearson_correlation(Values1, Values2) -> + {SumX, SumY, SumXX, SumYY, SumXY, N} = + foldl2(fun (X,Y,{SX, SY, SXX, SYY, SXY, N}) -> + {SX+X, SY+Y, SXX+X*X, SYY+Y*Y, SXY+X*Y, N+1} + end, {0,0,0,0,0,0}, Values1, Values2), + Numer = (N*SumXY) - (SumX * SumY), + case math:sqrt(((N*SumXX)-(SumX*SumX)) * ((N*SumYY)-(SumY*SumY))) of + 0.0 -> + 0.0; %% Is this really the correct thing to do here? + Denom -> + Numer/Denom + end. + +revsort(L) -> + lists:reverse(lists:sort(L)). + +%% Foldl over two lists +foldl2(F, Acc, [I1|L1], [I2|L2]) when is_function(F,3) -> + foldl2(F, F(I1, I2, Acc), L1, L2); +foldl2(_F, Acc, [], []) -> + Acc. + +%% wrapper for math:log/1 to avoid dividing by zero +math_log(0) -> + 1; +math_log(X) -> + math:log(X). + +%% wrapper for calculating inverse to avoid dividing by zero +inverse(0) -> + 0; +inverse(X) -> + 1/X. + +get_hist_bins(Min, Max, StdDev, Count) -> + BinWidth = get_bin_width(StdDev, Count), + BinCount = get_bin_count(Min, Max, BinWidth), + case get_bin_list(BinWidth, BinCount, []) of + List when length(List) =< 1 -> + [Max]; + Bins -> + %% add Min to Bins + [Bin + Min || Bin <- Bins] + end. + +get_bin_list(Width, Bins, Acc) when Bins > length(Acc) -> + Bin = ((length(Acc) + 1) * Width ), + get_bin_list(Width, Bins, [round_bin(Bin)| Acc]); +get_bin_list(_, _, Acc) -> + lists:usort(Acc). + +round_bin(Bin) -> + Base = case erlang:trunc(math:pow(10, round(math:log10(Bin) - 1))) of + 0 -> + 1; + Else -> + Else + end, + %io:format("bin ~p, base ~p~n", [Bin, Base]), + round_bin(Bin, Base). + +round_bin(Bin, Base) when Bin rem Base == 0 -> + Bin; +round_bin(Bin, Base) -> + Bin + Base - (Bin rem Base). + +% the following is up for debate as far as what the best method +% of choosing bin counts and widths. these seem to work *good enough* +% in my testing + +% bin width based on Sturges +% http://www.jstor.org/pss/2965501 +get_bin_width(StdDev, Count) -> + %io:format("stddev: ~p, count: ~p~n", [StdDev, Count]), + case round((3.5 * StdDev) / math:pow(Count, 0.3333333)) of + 0 -> + 1; + Else -> + Else + end. + +% based on the simple ceilng function at +% http://en.wikipedia.org/wiki/Histograms#Number_of_bins_and_width +% with a modification to attempt to get on bin beyond the max value +get_bin_count(Min, Max, Width) -> + %io:format("min: ~p, max: ~p, width ~p~n", [Min, Max, Width]), + round((Max - Min) / Width) + 1. diff --git a/src/bear_scutil.erl b/src/bear_scutil.erl new file mode 100644 index 0000000..e684fb7 --- /dev/null +++ b/src/bear_scutil.erl @@ -0,0 +1,75 @@ +%% taken from http://crunchyd.com/scutil/ +%% All code here is MIT Licensed +%% http://scutil.com/license.html + +-module(bear_scutil). + +-export([ + kendall_correlation/2 + ]). +-compile([export_all]). +-compile([native]). + +% seems to match the value returned by the 'cor' (method="kendal") R function +% http://en.wikipedia.org/wiki/Kendall_tau_rank_correlation_coefficient +kendall_correlation(List1, List2) when is_list(List1), is_list(List2) -> + {RA,_} = lists:unzip(tied_ordered_ranking(List1)), + {RB,_} = lists:unzip(tied_ordered_ranking(List2)), + + Ordering = lists:keysort(1, lists:zip(RA,RB)), + {_,OrdB} = lists:unzip(Ordering), + + N = length(List1), + P = lists:sum(kendall_right_of(OrdB, [])), + + -(( (4*P) / (N * (N - 1))) - 1). + +%%%=================================================================== +%%% Internal functions +%%%================================================================== + +simple_ranking(List) when is_list(List) -> + lists:zip(lists:seq(1,length(List)),lists:reverse(lists:sort(List))). + +tied_ranking(List) -> + tied_rank_worker(simple_ranking(List), [], no_prev_value). + +tied_ordered_ranking(List) when is_list(List) -> + tied_ordered_ranking(List, tied_ranking(List), []). + +tied_ordered_ranking([], [], Work) -> + lists:reverse(Work); + +tied_ordered_ranking([Front|Rem], Ranks, Work) -> + {value,Item} = lists:keysearch(Front,2,Ranks), + {IRank,Front} = Item, + tied_ordered_ranking(Rem, Ranks--[Item], [{IRank,Front}]++Work). + +kendall_right_of([], Work) -> + lists:reverse(Work); +kendall_right_of([F|R], Work) -> + kendall_right_of(R, [kendall_right_of_item(F,R)]++Work). + +kendall_right_of_item(B, Rem) -> + length([R || R <- Rem, R < B]). + +tied_add_prev(Work, {FoundAt, NewValue}) -> + lists:duplicate( length(FoundAt), {lists:sum(FoundAt)/length(FoundAt), NewValue} ) ++ Work. + +tied_rank_worker([], Work, PrevValue) -> + lists:reverse(tied_add_prev(Work, PrevValue)); + +tied_rank_worker([Item|Remainder], Work, PrevValue) -> + case PrevValue of + no_prev_value -> + {BaseRank,BaseVal} = Item, + tied_rank_worker(Remainder, Work, {[BaseRank],BaseVal}); + {FoundAt,OldVal} -> + case Item of + {Id,OldVal} -> + tied_rank_worker(Remainder, Work, {[Id]++FoundAt,OldVal}); + {Id,NewVal} -> + tied_rank_worker(Remainder, tied_add_prev(Work, PrevValue), {[Id],NewVal}) + + end + end.