// Path: benchmark/src/jmh/java/biz/k11i/rng/util/ThreadLocalRandomGenerator.java
// public class ThreadLocalRandomGenerator implements RandomGenerator {
//     @Override
//     public void setSeed(int seed) {
//         ThreadLocalRandom.current().setSeed(seed);
//     }
// 
//     @Override
//     public void setSeed(int[] seed) {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     public void setSeed(long seed) {
//         ThreadLocalRandom.current().setSeed(seed);
//     }
// 
//     @Override
//     public void nextBytes(byte[] bytes) {
//         ThreadLocalRandom.current().nextBytes(bytes);
//     }
// 
//     @Override
//     public int nextInt() {
//         return ThreadLocalRandom.current().nextInt();
//     }
// 
//     @Override
//     public int nextInt(int n) {
//         return ThreadLocalRandom.current().nextInt(n);
//     }
// 
//     @Override
//     public long nextLong() {
//         return ThreadLocalRandom.current().nextLong();
//     }
// 
//     @Override
//     public boolean nextBoolean() {
//         return ThreadLocalRandom.current().nextBoolean();
//     }
// 
//     @Override
//     public float nextFloat() {
//         return ThreadLocalRandom.current().nextFloat();
//     }
// 
//     @Override
//     public double nextDouble() {
//         return ThreadLocalRandom.current().nextDouble();
//     }
// 
//     @Override
//     public double nextGaussian() {
//         return ThreadLocalRandom.current().nextGaussian();
//     }
// }


import biz.k11i.rng.util.ThreadLocalRandomGenerator;
import org.apache.commons.math3.distribution.ExponentialDistribution;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import java.util.concurrent.ThreadLocalRandom;
package biz.k11i.rng;



@State(Scope.Benchmark)
public class ExponentialBenchmark {
    private ExponentialDistribution exponentialDistribution;

    @Setup
    public void setUp() {
        exponentialDistribution = new ExponentialDistribution(
// Path: benchmark/src/jmh/java/biz/k11i/rng/util/ThreadLocalRandomGenerator.java
// public class ThreadLocalRandomGenerator implements RandomGenerator {
//     @Override
//     public void setSeed(int seed) {
//         ThreadLocalRandom.current().setSeed(seed);
//     }
// 
//     @Override
//     public void setSeed(int[] seed) {
//         throw new UnsupportedOperationException();
//     }
// 
//     @Override
//     public void setSeed(long seed) {
//         ThreadLocalRandom.current().setSeed(seed);
//     }
// 
//     @Override
//     public void nextBytes(byte[] bytes) {
//         ThreadLocalRandom.current().nextBytes(bytes);
//     }
// 
//     @Override
//     public int nextInt() {
//         return ThreadLocalRandom.current().nextInt();
//     }
// 
//     @Override
//     public int nextInt(int n) {
//         return ThreadLocalRandom.current().nextInt(n);
//     }
// 
//     @Override
//     public long nextLong() {
//         return ThreadLocalRandom.current().nextLong();
//     }
// 
//     @Override
//     public boolean nextBoolean() {
//         return ThreadLocalRandom.current().nextBoolean();
//     }
// 
//     @Override
//     public float nextFloat() {
//         return ThreadLocalRandom.current().nextFloat();
//     }
// 
//     @Override
//     public double nextDouble() {
//         return ThreadLocalRandom.current().nextDouble();
//     }
// 
//     @Override
//     public double nextGaussian() {
//         return ThreadLocalRandom.current().nextGaussian();
//     }
// }


// Path: benchmark/src/jmh/java/biz/k11i/rng/ExponentialBenchmark.java
import biz.k11i.rng.util.ThreadLocalRandomGenerator;
import org.apache.commons.math3.distribution.ExponentialDistribution;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import java.util.concurrent.ThreadLocalRandom;

package biz.k11i.rng;



@State(Scope.Benchmark)
public class ExponentialBenchmark {
    private ExponentialDistribution exponentialDistribution;

    @Setup
    public void setUp() {
        exponentialDistribution = new ExponentialDistribution(
                new ThreadLocalRandomGenerator(),