diff --git a/jdk8-javadoc.patch b/jdk8-javadoc.patch new file mode 100644 index 0000000..4ee1ed5 --- /dev/null +++ b/jdk8-javadoc.patch @@ -0,0 +1,144 @@ +diff -ruN src/main/java/com/tdunning/math/stats/ArrayDigest.java src/main/java/com/tdunning/math/stats/ArrayDigest.java +--- src/main/java/com/tdunning/math/stats/ArrayDigest.java 2014-05-13 05:05:45.000000000 +0200 ++++ src/main/java/com/tdunning/math/stats/ArrayDigest.java 2015-07-13 09:16:26.231915177 +0200 +@@ -26,7 +26,7 @@ + + /** + * Array based implementation of a TDigest. +- *

++ *
+ * This implementation is essentially a one-level b-tree in which nodes are collected into + * pages typically with 32 values per page. Commonly, an ArrayDigest contains 500-3000 + * centroids. With 32 values per page, we have about 32 values per page and about 30 pages +@@ -394,7 +394,7 @@ + } + + /** +- * Returns a cursor pointing to the first element <= x. Exposed only for testing. ++ * Returns a cursor pointing to the first element <= x. Exposed only for testing. + * @param x The value used to find the cursor. + * @return The cursor. + */ +@@ -418,7 +418,7 @@ + } + + /** +- * Returns an iterator which will give each element <= to x in non-increasing order. ++ * Returns an iterator which will give each element <= to x in non-increasing order. + * + * @param x The upper bound of all returned elements + * @return An iterator that returns elements in non-increasing order. +diff -ruN src/main/java/com/tdunning/math/stats/AVLTreeDigest.java src/main/java/com/tdunning/math/stats/AVLTreeDigest.java +--- src/main/java/com/tdunning/math/stats/AVLTreeDigest.java 2014-05-13 05:05:45.000000000 +0200 ++++ src/main/java/com/tdunning/math/stats/AVLTreeDigest.java 2015-07-13 09:17:02.072307855 +0200 +@@ -234,7 +234,7 @@ + + /** + * @param q The quantile desired. Can be in the range [0,1]. +- * @return The minimum value x such that we think that the proportion of samples is <= x is q. ++ * @return The minimum value x such that we think that the proportion of samples is <= x is q. + */ + @Override + public double quantile(double q) { +diff -ruN src/main/java/com/tdunning/math/stats/TDigest.java src/main/java/com/tdunning/math/stats/TDigest.java +--- src/main/java/com/tdunning/math/stats/TDigest.java 2014-05-13 05:05:45.000000000 +0200 ++++ src/main/java/com/tdunning/math/stats/TDigest.java 2015-07-13 09:19:06.591672123 +0200 +@@ -21,21 +21,21 @@ + + /** + * Adaptive histogram based on something like streaming k-means crossed with Q-digest. +- *

++ *
+ * The special characteristics of this algorithm are: +- *

++ *
+ * a) smaller summaries than Q-digest +- *

++ *
+ * b) works on doubles as well as integers. +- *

+- * c) provides part per million accuracy for extreme quantiles and typically <1000 ppm accuracy for middle quantiles +- *

++ *
++ * c) provides part per million accuracy for extreme quantiles and typically <1000 ppm accuracy for middle quantiles ++ *
+ * d) fast +- *

++ *
+ * e) simple +- *

+- * f) test coverage > 90% +- *

++ *
++ * f) test coverage > 90% ++ *
+ * g) easy to adapt for use with map-reduce + */ + public abstract class TDigest { +@@ -91,10 +91,10 @@ + /** + * Re-examines a t-digest to determine whether some centroids are redundant. If your data are + * perversely ordered, this may be a good idea. Even if not, this may save 20% or so in space. +- *

++ *
+ * The cost is roughly the same as adding as many data points as there are centroids. This +- * is typically < 10 * compression, but could be as high as 100 * compression. +- *

++ * is typically < 10 * compression, but could be as high as 100 * compression. ++ *
+ * This is a destructive operation that is not thread-safe. + */ + public abstract void compress(); +@@ -107,7 +107,7 @@ + public abstract long size(); + + /** +- * Returns the fraction of all points added which are <= x. ++ * Returns the fraction of all points added which are <= x. + */ + public abstract double cdf(double x); + +diff -ruN src/main/java/com/tdunning/math/stats/TreeDigest.java src/main/java/com/tdunning/math/stats/TreeDigest.java +--- src/main/java/com/tdunning/math/stats/TreeDigest.java 2014-05-13 05:05:45.000000000 +0200 ++++ src/main/java/com/tdunning/math/stats/TreeDigest.java 2015-07-13 09:18:30.988282043 +0200 +@@ -26,21 +26,21 @@ + + /** + * Adaptive histogram based on something like streaming k-means crossed with Q-digest. +- *

++ *
+ * The special characteristics of this algorithm are: +- *

++ *
+ * a) smaller summaries than Q-digest +- *

++ *
+ * b) works on doubles as well as integers. +- *

+- * c) provides part per million accuracy for extreme quantiles and typically <1000 ppm accuracy for middle quantiles +- *

++ *
++ * c) provides part per million accuracy for extreme quantiles and typically <1000 ppm accuracy for middle quantiles ++ *
+ * d) fast +- *

++ *
+ * e) simple +- *

+- * f) test coverage > 90% +- *

++ *
++ * f) test coverage > 90% ++ *
+ * g) easy to adapt for use with map-reduce + */ + public class TreeDigest extends AbstractTDigest { +@@ -232,7 +232,7 @@ + + /** + * @param q The quantile desired. Can be in the range [0,1]. +- * @return The minimum value x such that we think that the proportion of samples is <= x is q. ++ * @return The minimum value x such that we think that the proportion of samples is <= x is q. + */ + @Override + public double quantile(double q) { diff --git a/t-digest-3.0.tar.gz b/t-digest-3.0.tar.gz new file mode 100644 index 0000000..5fe4306 Binary files /dev/null and b/t-digest-3.0.tar.gz differ diff --git a/t-digest.spec b/t-digest.spec new file mode 100644 index 0000000..42d480f --- /dev/null +++ b/t-digest.spec @@ -0,0 +1,48 @@ +%global url https://github.com/tdunning/%{name} + +Name: t-digest +Version: 3.0 +Release: 1 +Summary: A new data structure for on-line accumulation of statistics +License: ASL 2.0 +URL: https://github.com/tdunning/t-digest +Source0: %{url}/archive/%{name}-%{version}.tar.gz +Patch0: jdk8-javadoc.patch + +BuildArch: noarch +BuildRequires: maven-local +Requires: java + +%description +A new data structure for accurate on-line accumulation of rank-based statistics +eg. quantiles and trimmed means. The t-digest algorithm is also very parallel +friendly making it useful in map-reduce and parallel streaming applications. + +%package javadoc +Summary: Javadoc for %{name} +%description javadoc +This package contains the API documentation for %{name}. + +%prep +%setup -q -n %{name}-%{name}-%{version} +%patch0 +%pom_remove_plugin :maven-javadoc-plugin +%pom_remove_plugin :maven-release-plugin +%pom_remove_plugin :maven-source-plugin + +%build +%mvn_build --force + +%install +%mvn_install + +%files -f .mfiles +%doc README.md +%license LICENSE NOTICES + +%files javadoc -f .mfiles-javadoc +%license LICENSE NOTICES + +%changelog +* Mon Jul 27 2020 maminjie - 3.0-1 +- package init diff --git a/t-digest.yaml b/t-digest.yaml new file mode 100644 index 0000000..752b1be --- /dev/null +++ b/t-digest.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: tdunning/t-digest +tag_prefix: "t-digest-" +seperator: "."