Пример #1
0
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)
Пример #2
0
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