Skip to content

Commit 131a02e

Browse files
committed
update since versions in mlilb.random and mllib.stat
1 parent c619c75 commit 131a02e

File tree

4 files changed

+99
-13
lines changed

4 files changed

+99
-13
lines changed

mllib/src/main/scala/org/apache/spark/mllib/random/RandomDataGenerator.scala

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,28 @@ package org.apache.spark.mllib.random
2020
import org.apache.commons.math3.distribution.{ExponentialDistribution,
2121
GammaDistribution, LogNormalDistribution, PoissonDistribution}
2222

23-
import org.apache.spark.annotation.DeveloperApi
23+
import org.apache.spark.annotation.{Since, DeveloperApi}
2424
import org.apache.spark.util.random.{XORShiftRandom, Pseudorandom}
2525

2626
/**
2727
* :: DeveloperApi ::
2828
* Trait for random data generators that generate i.i.d. data.
2929
*/
3030
@DeveloperApi
31+
@Since("1.1.0")
3132
trait RandomDataGenerator[T] extends Pseudorandom with Serializable {
3233

3334
/**
3435
* Returns an i.i.d. sample as a generic type from an underlying distribution.
3536
*/
37+
@Since("1.1.0")
3638
def nextValue(): T
3739

3840
/**
3941
* Returns a copy of the RandomDataGenerator with a new instance of the rng object used in the
4042
* class when applicable for non-locking concurrent usage.
4143
*/
44+
@Since("1.1.0")
4245
def copy(): RandomDataGenerator[T]
4346
}
4447

@@ -47,17 +50,21 @@ trait RandomDataGenerator[T] extends Pseudorandom with Serializable {
4750
* Generates i.i.d. samples from U[0.0, 1.0]
4851
*/
4952
@DeveloperApi
53+
@Since("1.1.0")
5054
class UniformGenerator extends RandomDataGenerator[Double] {
5155

5256
// XORShiftRandom for better performance. Thread safety isn't necessary here.
5357
private val random = new XORShiftRandom()
5458

59+
@Since("1.1.0")
5560
override def nextValue(): Double = {
5661
random.nextDouble()
5762
}
5863

64+
@Since("1.1.0")
5965
override def setSeed(seed: Long): Unit = random.setSeed(seed)
6066

67+
@Since("1.1.0")
6168
override def copy(): UniformGenerator = new UniformGenerator()
6269
}
6370

@@ -66,17 +73,21 @@ class UniformGenerator extends RandomDataGenerator[Double] {
6673
* Generates i.i.d. samples from the standard normal distribution.
6774
*/
6875
@DeveloperApi
76+
@Since("1.1.0")
6977
class StandardNormalGenerator extends RandomDataGenerator[Double] {
7078

7179
// XORShiftRandom for better performance. Thread safety isn't necessary here.
7280
private val random = new XORShiftRandom()
7381

82+
@Since("1.1.0")
7483
override def nextValue(): Double = {
7584
random.nextGaussian()
7685
}
7786

87+
@Since("1.1.0")
7888
override def setSeed(seed: Long): Unit = random.setSeed(seed)
7989

90+
@Since("1.1.0")
8091
override def copy(): StandardNormalGenerator = new StandardNormalGenerator()
8192
}
8293

@@ -87,16 +98,20 @@ class StandardNormalGenerator extends RandomDataGenerator[Double] {
8798
* @param mean mean for the Poisson distribution.
8899
*/
89100
@DeveloperApi
101+
@Since("1.1.0")
90102
class PoissonGenerator(val mean: Double) extends RandomDataGenerator[Double] {
91103

92104
private val rng = new PoissonDistribution(mean)
93105

106+
@Since("1.1.0")
94107
override def nextValue(): Double = rng.sample()
95108

109+
@Since("1.1.0")
96110
override def setSeed(seed: Long) {
97111
rng.reseedRandomGenerator(seed)
98112
}
99113

114+
@Since("1.1.0")
100115
override def copy(): PoissonGenerator = new PoissonGenerator(mean)
101116
}
102117

@@ -107,16 +122,20 @@ class PoissonGenerator(val mean: Double) extends RandomDataGenerator[Double] {
107122
* @param mean mean for the exponential distribution.
108123
*/
109124
@DeveloperApi
125+
@Since("1.3.0")
110126
class ExponentialGenerator(val mean: Double) extends RandomDataGenerator[Double] {
111127

112128
private val rng = new ExponentialDistribution(mean)
113129

130+
@Since("1.3.0")
114131
override def nextValue(): Double = rng.sample()
115132

133+
@Since("1.3.0")
116134
override def setSeed(seed: Long) {
117135
rng.reseedRandomGenerator(seed)
118136
}
119137

138+
@Since("1.3.0")
120139
override def copy(): ExponentialGenerator = new ExponentialGenerator(mean)
121140
}
122141

@@ -128,16 +147,20 @@ class ExponentialGenerator(val mean: Double) extends RandomDataGenerator[Double]
128147
* @param scale scale for the gamma distribution
129148
*/
130149
@DeveloperApi
150+
@Since("1.3.0")
131151
class GammaGenerator(val shape: Double, val scale: Double) extends RandomDataGenerator[Double] {
132152

133153
private val rng = new GammaDistribution(shape, scale)
134154

155+
@Since("1.3.0")
135156
override def nextValue(): Double = rng.sample()
136157

158+
@Since("1.3.0")
137159
override def setSeed(seed: Long) {
138160
rng.reseedRandomGenerator(seed)
139161
}
140162

163+
@Since("1.3.0")
141164
override def copy(): GammaGenerator = new GammaGenerator(shape, scale)
142165
}
143166

@@ -150,15 +173,19 @@ class GammaGenerator(val shape: Double, val scale: Double) extends RandomDataGen
150173
* @param std standard deviation for the log normal distribution
151174
*/
152175
@DeveloperApi
176+
@Since("1.3.0")
153177
class LogNormalGenerator(val mean: Double, val std: Double) extends RandomDataGenerator[Double] {
154178

155179
private val rng = new LogNormalDistribution(mean, std)
156180

181+
@Since("1.3.0")
157182
override def nextValue(): Double = rng.sample()
158183

184+
@Since("1.3.0")
159185
override def setSeed(seed: Long) {
160186
rng.reseedRandomGenerator(seed)
161187
}
162188

189+
@Since("1.3.0")
163190
override def copy(): LogNormalGenerator = new LogNormalGenerator(mean, std)
164191
}

0 commit comments

Comments
 (0)