Exemplo n.º 1
0
 public int DualFibonacci()
 {
     if (prandDoubler == null)
     {
         prandDoubler = new RPseudoRandI();
         prandDoubler.Iterate(iDualIterationOffset);
     }
     return(RMath.SafeAdd(prandDoubler.Fibonacci(), Fibonacci()));
 }
Exemplo n.º 2
0
 public void ResetDualFibonacci(int iIterations, int offset)
 {
     if (offset < 0)
     {
         offset = 0;
     }
     iDualIterationOffset       = iIterations;
     prandDoubler               = new RPseudoRandI();
     prandDoubler.fibonacciprev = offset;
     prandDoubler.Iterate(iDualIterationOffset);
     xDualFibonacciOffset = offset;
 }
Exemplo n.º 3
0
 public void ResetDualFibonacciToRPseudoRandom(int iIterations, int limit)
 {
     if (limit < 0)
     {
         limit = 0;
     }
     iDualIterationOffset = iIterations;
     if (prandDoubler == null)
     {
         prandDoubler = new RPseudoRandI();
     }
     prandDoubler.ResetFibonacciToRPseudoRandom(limit);
     prandDoubler.Iterate(iIterations);
     xDualFibonacciOffset = RMath.SafeSubtract(prandDoubler.fibonacciprev, fibonacciprev);
 }
Exemplo n.º 4
0
        public RPseudoRandI()
        {
            tempprev             = 0;
            fibonacci            = 1;
            fibonacciprev        = 0;
            xDualFibonacciOffset = 10;
            prandDoubler         = null;
            max = int.MaxValue;
            //int iTest=0;
            //while (RMath.FractionPartOf(max)==0) {
            //	max/=2;
            //  iTest=RMath.SafeAdd(iTest,1);
            //}
            //if (iTest>0) max*=2;

            ResetFibonacci();
            //WOULD CAUSE INFINITE RECURSION:
            //ResetDualFibonacci(0,xDualFibonacciOffset); //DON'T DO NOW!
        }