Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tlc2.value.BoolValue;
- import tlc2.value.FcnRcdValue;
- import tlc2.value.IntValue;
- import tlc2.value.IntervalValue;
- import tlc2.value.ModelValue;
- import tlc2.value.Value;
- public class OpenAddressing {
- private static final int minT = 1;
- public static IntValue shiftR(final IntValue n, final IntValue pos) {
- return IntValue.gen(n.val >>> pos.val);
- }
- // rescale(k,maxF,minF,fp,p)
- public static IntValue rescale(final IntValue k, final IntValue maxF, final IntValue minF, final IntValue fp,
- final IntValue p) {
- return IntValue.gen(rescale(k.val, maxF.val, minF.val, fp.val, p.val));
- }
- static int rescale(final int maxT, final int maxF, final int minF, final int fp) {
- return rescale(maxT, maxF, minF, fp, 0);
- }
- static int rescale(final int maxT, final int maxF, final int minF, final int fp, final int probe) {
- final float factor = (maxT - minT) / ((maxF - minF) * 1f);
- int idx = Math.round(factor * (fp - minF) + minT) + probe;
- // Modulo might return an index of maxT.
- while (idx > maxT) {
- idx = idx % (maxT + 1) + 1;
- }
- return idx;
- }
- public static Value noDupes(final IntervalValue fps, final FcnRcdValue frv, final ModelValue exclude) {
- final boolean[] arr = new boolean[fps.size()];
- for (final Value value : frv.values) {
- if (value != exclude) {
- final int val = Math.abs(((IntValue) value).val);
- if (arr[val - fps.low] == true) {
- return BoolValue.ValFalse;
- }
- arr[val - fps.low] = true;
- }
- }
- return BoolValue.ValTrue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement