def appendFracs(part1, part2, lenOfCycle): frac1, frac2 = part1[0], part2[0] cycleOffset1, cycleOffset2 = part1[1], part2[1] overLapSize = getOverlapSize(frac1, frac2, cycleOffset1, cycleOffset2, lenOfCycle) overlap = (np.array(frac1[-overLapSize:]) + np.array(frac2[:overLapSize]))/2 overlap = overlap.tolist() newFrac = pe.toList(frac1[:-overLapSize]) + overlap + pe.toList(frac2[overLapSize:]) return (newFrac, cycleOffset1)
def mergeVecs(first, firstOffset, firstList, second, secondOffset, secondList): first = pe.toList(first) second = pe.toList(second) if(secondOffset < firstOffset): first, firstOffset, second, secondOffset = (second, secondOffset, first, firstOffset) if(firstOffset + len(first) < secondOffset + 2): return None head = first[:(secondOffset - firstOffset)] overlapStart = secondOffset overlapEnd= min(firstOffset + len(first), secondOffset + len(second)) def average(e1, e2): return (e1+e2)/2.0 common = map(average, first[(overlapStart-firstOffset):(overlapEnd-firstOffset)], second[(overlapStart-secondOffset):(overlapEnd-secondOffset)]) tail = second[len(common):] if secondOffset + len(second) > firstOffset + len(first) \ else first[len(common):] return head + common + tail, firstOffset, firstList+secondList