summaryrefslogtreecommitdiff
path: root/src/haversine/libs/pcg/pcg-advance-128.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/haversine/libs/pcg/pcg-advance-128.c')
-rw-r--r--src/haversine/libs/pcg/pcg-advance-128.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/haversine/libs/pcg/pcg-advance-128.c b/src/haversine/libs/pcg/pcg-advance-128.c
deleted file mode 100644
index be72009..0000000
--- a/src/haversine/libs/pcg/pcg-advance-128.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * PCG Random Number Generation for C.
- *
- * Copyright 2014 Melissa O'Neill <oneill@pcg-random.org>
- *
- * 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.
- *
- * For additional information about the PCG random number generation scheme,
- * including its license and other licensing options, visit
- *
- * http://www.pcg-random.org
- */
-
-/*
- * This code is derived from the canonical C++ PCG implementation, which
- * has many additional features and is preferable if you can use C++ in
- * your project.
- *
- * Repetative C code is derived using C preprocessor metaprogramming
- * techniques.
- */
-
-#include "pcg_variants.h"
-
-/* Multi-step advance functions (jump-ahead, jump-back)
- *
- * The method used here is based on Brown, "Random Number Generation
- * with Arbitrary Stride,", Transactions of the American Nuclear
- * Society (Nov. 1994). The algorithm is very similar to fast
- * exponentiation.
- *
- * Even though delta is an unsigned integer, we can pass a
- * signed integer to go backwards, it just goes "the long way round".
- */
-
-#if PCG_HAS_128BIT_OPS
-pcg128_t pcg_advance_lcg_128(pcg128_t state, pcg128_t delta, pcg128_t cur_mult,
- pcg128_t cur_plus)
-{
- pcg128_t acc_mult = 1u;
- pcg128_t acc_plus = 0u;
- while (delta > 0) {
- if (delta & 1) {
- acc_mult *= cur_mult;
- acc_plus = acc_plus * cur_mult + cur_plus;
- }
- cur_plus = (cur_mult + 1) * cur_plus;
- cur_mult *= cur_mult;
- delta /= 2;
- }
- return acc_mult * state + acc_plus;
-}
-#endif
-