Update LFSR.java

This commit is contained in:
Andrea Cavalli 2020-06-27 15:17:22 +02:00
parent 646753d788
commit 6e2c0feddf

View File

@ -3,6 +3,7 @@ package org.warp.commonutils.random;
import java.math.BigInteger;
import java.util.Iterator;
import java.util.Random;
import org.jetbrains.annotations.NotNull;
/**
* Linear feedback shift register
@ -58,12 +59,13 @@ public class LFSR implements Iterable<BigInteger> {
this.taps = primitivePoly.shiftRight(1);
}
@NotNull
@Override
public Iterator<BigInteger> iterator() {
public LFSRIterator iterator() {
return new LFSRIterator(start);
}
private class LFSRIterator implements Iterator<BigInteger> {
public class LFSRIterator implements Iterator<BigInteger> {
// The last one we returned.
private BigInteger last = null;
@ -110,6 +112,12 @@ public class LFSR implements Iterable<BigInteger> {
return last;
}
public BigInteger next(BigInteger last) {
this.last = last;
next = null;
return next();
}
@Override
public void remove() {
throw new UnsupportedOperationException("Not supported.");