def appendFrac(whole, originalNext, averagedWhole=None): if(averagedWhole is None): averagedWhole = copy.copy(whole) scaledNexts = interpulation.getScaledVectors(originalNext) longestOverlap = 0 bestExtention = None bestOverlap = None for next in scaledNexts: for j in reversed(xrange(1,len(next))): if(j > len(whole)-1): continue match = True gap = np.mean(whole[-j:]) - np.mean(next[:j]) for i in xrange(j): if(not isEqual(whole[-j+i], next[i], gap)): match = False break if(match and j>longestOverlap): longestOverlap = j bestExtention = next[j:] bestOverlap = next[:j] if(bestExtention is not None): for i in xrange(len(bestOverlap)): averagedWhole[-i] = ( whole[-i] + bestOverlap[-i])/2.0 pass return whole + bestExtention.tolist(), averagedWhole + bestExtention.tolist() return whole, averagedWhole
def prependFrac(whole, originalNext, m1=MEAN_COEFF, m2=STD_COEFF, epsilon=EPSILON_FACTOR, gap=GAP_FACTOR, overlap=OVERLAP_FACTOR): scaledNexts = interpulation.getScaledVectors(originalNext) longestOverlap = 0 bestExtention = None bestOverlap = None for next in scaledNexts: for j in reversed(xrange(int(OVERLAP_FACTOR*len(next)),len(next))): if(j > len(whole)-1): continue match = checkMoments(whole[:j],next[:j], m1, m2, epsilon, gap, overlap) if(match and j>longestOverlap): longestOverlap = j bestExtention = next[:-j] bestOverlap = next[-j:] if(bestExtention is not None): for i in xrange(len(bestOverlap)): #whole[i] = ( whole[i] + bestOverlap[i])/2.0 pass return whole + bestExtention.tolist() return whole