public double SliderFormulateJustMovingColors( double ColorsLength, double FormulaValue, double LocationOfColorMovement, double RepeatLength )
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		if ( RepeatLength == ColorsLength )
		{//AFTER DIAGNOSTICS FINISHED COMPLETELY Don't Do This As It Won't Fix Anomoles; Ctrl-f And Replace Relevant " < " With " <= " Then " > " With " >= " Copy And Paste Back To Get Rid Of Pixel Artifacts If They Happen On fRateDivisor >~192
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue + LocationOfColorMovement;
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue + LocationOfColorMovement;
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				return  RepeatLength - FormulaValue;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue + LocationOfColorMovement;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				FormulaValue = FormulaValue + LocationOfColorMovement;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{//NM Replace With The Code Below Below Function??? Work On Simplifying: FormulaValue = ColorsLength - FormulaValue;
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				FormulaValue = ColorsLength - FormulaValue;//Critical Change
				while ( ColorsLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - ColorsLength;
				while ( ColorsLength - FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue + ColorsLength;
				if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength;
				return  FormulaValue - ColorsLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				FormulaValue = FormulaValue - ColorsLength / 2;//New
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				if ( FormulaValue >= ColorsLength / 2 )
					return  FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;
				//return 99;// */ Potential Problem
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement * RepeatLength / ColorsLength;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= RepeatLength )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
		}
		else
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return FormulaValue - RepeatLength;// ( - )// */
			}//Work On Below
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				//Put In All 3 Places Maybe: FomulaValue = Formula Value + ColorsLength / 2 But That Happens At The Top
				FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return  FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfColorMovement = - LocationOfColorMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfColorMovement <= 0 )
				{
					LocationOfColorMovement = LocationOfColorMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfColorMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfColorMovement = LocationOfColorMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				FormulaValue = FormulaValue - LocationOfColorMovement + numberOfTransitions * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		return FormulaValue;
	}
	public double SliderFormulateSlidingTransitionsSameColors( double ColorsLength, double FormulaValue, double LocationOfStillMovement, double RepeatLength )
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		//FormulaValue = FormulaValue - LocationOfStillMovement; //And Get Rid Of Other LocationOfStillMovement In Slider Formulate For Spinning Same Colors
		if ( RepeatLength == ColorsLength )
		{//WORK ON ALL 9
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				return  RepeatLength - FormulaValue;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				/*while ( LocationOfStillMovement <= 0 )
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				while ( LocationOfStillMovement >= RepeatLength )
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				if ( FormulaValue >= LocationOfStillMovement )
					FormulaValue = FormulaValue - LocationOfStillMovement;//Uncomment For Cool Error */ 
				/*while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{//WORK ON ALL 9
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				//FormulaValue = ColorsLength - FormulaValue;//Critical Change
				FormulaValue = FormulaValue - ColorsLength / 2;//New
				while ( ColorsLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - ColorsLength;
				while ( ColorsLength - FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue + ColorsLength;
				if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength; 
				return  FormulaValue - ColorsLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;

				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;
				if ( FormulaValue >= ColorsLength / 2 )
					return  FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;// */
			}
			else
			{//CHECK THE LINE BELOW TO SEE IF THIS WORKS FOR ASYNCRONOUSLY IMPROPERLY UNFACTORABLE SETTINGS OF RepeatLength And ColorsLength
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )//CHECK FOR THIS KIND OF INSTANCE IF THERE IS A SINGULAR LINE ANOMOLY
					FormulaValue = FormulaValue - ColorsLength;// */
				//System.out.println("numberOfTransitions: " + numberOfTransitions);
				//return FormulaValue;
			}
		}
		else
		{//WORK ON ALL 9
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return RepeatLength - FormulaValue;// ( - )// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return  FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{//CHECK THE LINE BELOW TO SEE IF THIS WORKS FOR ASYNCRONOUSLY IMPROPERLY UNFACTORABLE SETTINGS OF RepeatLength And ColorsLength
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;//0; //- 2 * ( RepeatLength / ColorsLength + 1 );//- ( 2 * ColorsLength ) / RepeatLength;//- ( 2 * ColorsLength ) / RepeatLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;//  ColorsLength / 2; // + RepeatLength
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				//FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;// + ( RepeatLength + ColorsLength ) / 2;// + RepeatLength / 2
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?//Possible Cause Of The Issue Cooment Out: + ( RepeatLength + ColorsLength ) / 2
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//System.out.println("numberOfTransitions: " + numberOfTransitions);
			}
		}
		return FormulaValue;
	}
	public double SliderFormulateDoubleSliding( double ColorsLength, double FormulaValue, double LocationOfStillMovement, double LocationOfColorMovement, double RepeatLength )//Spinning In Terms Of Colors And Repeated Segments Spinning
	{//System.out.println("FormulaValue = " + FormulaValue);
		boolean negativeColorsLength = false, negativeRepeatLength = false;
		if ( ColorsLength < 0 )
		{
			negativeColorsLength = true;
			ColorsLength = Math.abs( ColorsLength );
		}
		if ( RepeatLength < 0 )
		{
			negativeRepeatLength = true;
			RepeatLength = Math.abs( RepeatLength );
		}
		FormulaValue = FormulaValue + LocationOfColorMovement;
		if ( RepeatLength == ColorsLength )
		{
			//FormulaValue = 0; //For Testing Specific SubFunction Only
			if ( negativeRepeatLength && negativeColorsLength )
			{
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				//System.out.println("RepeatLength - FormulaValue: " + ( RepeatLength - FormulaValue ) );
				return  RepeatLength - FormulaValue;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return FormulaValue - RepeatLength;
				}
				return -FormulaValue;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				while ( LocationOfStillMovement <= 0 )
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
				while ( LocationOfStillMovement >= RepeatLength )
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
				if ( FormulaValue >= LocationOfStillMovement )
					FormulaValue = FormulaValue - LocationOfStillMovement;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		else if ( RepeatLength < ColorsLength )	
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{//Perhaps Simplify ALL OF THESE -- -+ +- X On All 3
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				FormulaValue = ColorsLength - FormulaValue;//Critical Change
				while ( ColorsLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - ColorsLength;
				while ( ColorsLength - FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue + ColorsLength;
				if ( FormulaValue - ColorsLength <= -ColorsLength / 2 )
					FormulaValue = FormulaValue + 2 * ColorsLength; 
				return  FormulaValue - ColorsLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = - FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
				//FormulaValue = -FormulaValue / RepeatLength;//Critical Change
				FormulaValue = FormulaValue - ColorsLength / 2;//New
				if ( FormulaValue >= ColorsLength / 2 )
					return  FormulaValue + ColorsLength / 2;
				else
					return - FormulaValue - ColorsLength / 2;// */
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//ColorsLength / ( 2 * RepeatLength );//0;
				FormulaValue = FormulaValue * RepeatLength / ColorsLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement * RepeatLength / ColorsLength;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= RepeatLength )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength;
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + ColorsLength;
				while ( FormulaValue >= ColorsLength )
					FormulaValue = FormulaValue - ColorsLength;// */
			}
		}
		else
		{
			if ( negativeRepeatLength && negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				FormulaValue = RepeatLength - FormulaValue;//Critical Change
				while ( RepeatLength - FormulaValue <= 0 )
					FormulaValue = FormulaValue - RepeatLength;
				while ( RepeatLength - FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue + RepeatLength;
				if ( FormulaValue - RepeatLength <= -RepeatLength / 2 )
					FormulaValue = FormulaValue + 2 * RepeatLength; 
				return  FormulaValue - RepeatLength;// */
			}
			else if ( negativeColorsLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = - FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
			else if ( negativeRepeatLength )
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
				//Bad FormulaValue = - FormulaValue / RepeatLength;//Critical Change
				FormulaValue = FormulaValue - ColorsLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= RepeatLength )
					FormulaValue = FormulaValue - RepeatLength;
				if ( FormulaValue >= RepeatLength / 2 )
				{
					FormulaValue = FormulaValue + 3 * RepeatLength / 2;
					return  FormulaValue - RepeatLength;
				}
				return -FormulaValue;// *//
			}
			else
			{
				//FormulaValue = 0; //For Testing Specific SubFunction Only
				numberOfTransitions = 0;//- ( RepeatLength - 2 * ColorsLength ) / ColorsLength;
				FormulaValue = FormulaValue + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;
				LocationOfStillMovement = - LocationOfStillMovement + ( RepeatLength + ColorsLength ) / 2 + RepeatLength / ColorsLength * RepeatLength / 2;
				while ( LocationOfStillMovement <= 0 )
				{
					LocationOfStillMovement = LocationOfStillMovement + RepeatLength;
					numberOfTransitions++;//Comment Out Both Of These To Not Transition To A Different Color
				}
				while ( LocationOfStillMovement >= ( RepeatLength + ColorsLength ) / 2 )//( RepeatLength + ColorsLength ) / 2 )
				{
					LocationOfStillMovement = LocationOfStillMovement - RepeatLength;
					numberOfTransitions--;//Comment Out Both Of These To Not Transition To A Different Color
				}
				if ( LocationOfStillMovement <= FormulaValue )
					FormulaValue = FormulaValue - LocationOfStillMovement + ( numberOfTransitions + 1 ) * RepeatLength + ( RepeatLength + ColorsLength ) / 2;//Leave For Desyncronization !TEST?
				else
					FormulaValue = FormulaValue + numberOfTransitions * RepeatLength;//Leave For Desyncronization !TEST?
				while ( FormulaValue <= 0 )
					FormulaValue = FormulaValue + RepeatLength;
				while ( FormulaValue >= ( RepeatLength + ColorsLength ) / 2 )
					FormulaValue = FormulaValue - RepeatLength;// */
			}
		}
		return FormulaValue;
	}