-  3.39.25
pyfaust.proj.spsymm Class Reference

Functor for the SYMM SP projector. More...

Public Member Functions

def __init__ (self, shape, k, normalized=True, pos=False)
 
- Public Member Functions inherited from pyfaust.proj.proj_gen
def __init__ (self, shape)
 
def __call__ (self, M)
 

Public Attributes

 constraint
 
- Public Attributes inherited from pyfaust.proj.proj_gen
 shape
 

Detailed Description

Functor for the SYMM SP projector.

A, the image matrix of M, is such that A is symmetric and \(k \le \| A \|_0 \le k + 1, \| A\|_F = 1 \) (if normalized == True), assuming that \(\| M \|_0 >= k\).

Examples

>>> from pyfaust.proj import spsymm
>>> from numpy.random import rand, seed
>>> import numpy as np
>>> seed(42) # just for reproducibility
>>> M = np.round(rand(5,5), decimals=2)
>>> M
array([[0.37, 0.95, 0.73, 0.6 , 0.16],
[0.16, 0.06, 0.87, 0.6 , 0.71],
[0.02, 0.97, 0.83, 0.21, 0.18],
[0.18, 0.3 , 0.52, 0.43, 0.29],
[0.61, 0.14, 0.29, 0.37, 0.46]])
>>> p = spsymm(M.shape, 3, normalized=False)
>>> p(M)
array([[0. , 0.95, 0. , 0. , 0. ],
[0.95, 0. , 0.97, 0. , 0. ],
[0. , 0.97, 0. , 0. , 0. ],
[0. , 0. , 0. , 0. , 0. ],
[0. , 0. , 0. , 0. , 0. ]])
>>> np.linalg.norm(p(M) - p(M).T) == 0
True
>>> np.count_nonzero(p(M)) == 4
True

Constructor & Destructor Documentation

◆ __init__()

def pyfaust.proj.spsymm.__init__ (   self,
  shape,
  k,
  normalized = True,
  pos = False 
)
Parameters
shape(tuple(int,int)) the size of the input matrix.
k(int) the number of nonzeros of the projection image. The result might be k+1 nonzeros in case of an odd number of nonzeros on the diagonal.
normalized(bool) True to normalize the projection image according to its Frobenius norm.
pos(bool) True to skip negative values (replaced by zero) of the matrix to project.

Member Data Documentation

◆ constraint

pyfaust.proj.spsymm.constraint

The documentation for this class was generated from the following file:
pyfaust.seed
def seed(s)
(Re)Initializes the pyfaust pseudo-random generator.
Definition: __init__.py:5334
pyfaust.rand
def rand(num_rows, num_cols, num_factors=None, dim_sizes=None, density=None, fac_type='sparse', per_row=True, dev='cpu', dtype='float64', field=None, seed=0)
Generates a random Faust.
Definition: __init__.py:5016
pyfaust.proj
This module provides matrix projectors.
Definition: proj.py:1