Пример #1
0
def sum_columns(m):
    v = CuckooVector({})

    for key,col in m.columns():
        v.add(col)

    return v
Пример #2
0
def power_iteration(m, iterations, v0):
    v = CuckooVector({})
    v.add(v0)

    for i in range(iterations):
        v = m.mult_vec(v)
        mu = v.norm(2)
        v.scale(1.0/mu)
        
    return mu,v
Пример #3
0
def power_iteration_mmt(m, iterations, v0):
    v = CuckooVector({})
    v.add(v0)

    for i in range(iterations):
        vp = CuckooVector({})
        for c in m:
            vp.add_scale(c, c.dot(v))

        mu = vp.norm(2)        
        vp.scale(1.0/mu)
        v = vp
        
    return mu,v
Пример #4
0
def power_iteration_4(Y, X, U, S, iterations, v0):
    v = CuckooVector({})    
    v.add(v0)

    for i in range(iterations):
        v1 = CuckooVector({})
        for (x,y) in zip(X,Y):            
            v1.add_scale_dict(x, v.dot_dict(y))
                
        v2 = CuckooVector({})
        for (x,y) in zip(X,Y):
            v2.add_scale_dict(y, v1.dot_dict(x))        
        
        for (u,s) in zip(U,S):
            print(-s * u.dot(v)) 
            v2.add_scale(u, -s * u.dot(v))        
            
        mu = v2.norm(2)        
        v2.scale(1.0/mu)
        v = v2

    return mu,v