python/rowjoin.py
author Puneeth Chaganti <punchagan@fossee.in>
Fri, 27 May 2011 14:24:59 +0530
changeset 0 0efde00f9229
permissions -rw-r--r--
Initial commit.

#!/usr/bin/python
# Superposes two polynomial matrices. 

import pylab as pl
from polyfuncs import polsize

def rowjoin(P1, degP1, P2, degP2):
    
    rP1, cP1 = polsize(P1, degP1)
    rP2, cP2 = polsize(P2, degP2)
    if not cP1 == cP2:
        print 'rowjoin: Inconsistent numbers of columns'
        exit()

    rP = rP1 + rP2
    cP = cP1
    degP = max(degP1, degP2)

    P = pl.atleast_2d(pl.zeros((rP,(degP+1)*cP)))
    P[0:rP1,0:(degP1+1)*cP1] = P1
    P[rP1:rP,0:(degP2+1)*cP2] = P2

    return P, degP

if __name__== "__main__":
    s = """P = pl.array([[1, 2, 3, 4, 1, 2, 3, 4],
           [9, 10, 11, 12, 9, 10, 11, 12],
           [5, 6, 7, 8, 5, 6, 7, 8]])"""
    print s
    exec(s)
    print """rowjoin(P, 3, P, 3)"""
    print rowjoin(P, 3, P, 3)