/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 */

/**
 * This package contains the library's interface to be used by client
 * code that needs a generator of sequences of pseudo-random numbers
 * that are <i>uniformly distributed</i> in a specified range.
 *
 * <p><strong>Jumpable Generators</strong>
 *
 * <p>Interfaces are specified for generators that are capable of advancing
 * forward a large number of steps in the output period of the generator in a
 * single jump. This can be used to create a series of non-overlapping generators
 * for use in multithreaded applications.
 *
 * <p>Note that there is not a one-to-one relationship between the number of output random
 * values from a provider and the number of steps from the underlying state cycle. This
 * is due to:
 * <ol>
 * <li>Possible use of rejection algorithms to output a random value using multiple
 * values from the state cycle.</li>
 * <li>The number of bits required to generate a random value differing from the
 * number of bits generated by the underlying source of randomness. For example
 * generation of a 64-bit {@code long} value using a 32-bit source of randomness.</li>
 * </ol>
 *
 * <p>Users are advised to use jumping generators with care to avoid
 * overlapping output of multiple generators in parallel computations.
 * A cautious approach is to use a jump distance far larger than the expected
 * output length used by each generator.
 */

package org.apache.commons.rng;
