public static double[] GetExpectedOutput_OLD1(Tuple <TrackedItemBase, Point, Vector> prevPos, Tuple <TrackedItemBase, Point, Vector> currentPos, TrackedItemHarness harness, EvaluatorArgs evaluatorArgs) { // This is too complicated double[] retVal = null; if (prevPos == null) { //If prev is null, then output should be zeros retVal = GetExpectedOutput_Zeros(harness); } else if (currentPos == null || currentPos.Item1.Token != prevPos.Item1.Token) { //If prev and current tokens don't match, then???? //desiredOutput = GetError_Unmatched(outputArr); // might not even want to add to the error } else if (harness.Time - prevPos.Item1.CreateTime < evaluatorArgs.NewItem_Duration_Multiplier * evaluatorArgs.Delay_Seconds) { //If prev is new, then error size gradient double aliveTime = harness.Time - prevPos.Item1.CreateTime; // figure out how long it's been alive double percent = aliveTime / (evaluatorArgs.NewItem_Duration_Multiplier * evaluatorArgs.Delay_Seconds); // get the percent of the range percent = UtilityCore.Cap(1 - percent, 0, 1); // invert the percent so that an old percent of zero will now be the full error mult double newItemMult = percent * evaluatorArgs.NewItem_ErrorMultiplier; retVal = GetExpectedOutput_Matched(currentPos, harness, evaluatorArgs, newItemMult); } else { //otherwise, standard scoring retVal = GetExpectedOutput_Matched(currentPos, harness, evaluatorArgs); } return(retVal); }