Exemple #1
0
    def __init__( self ):
        """
        Initialize the class, checks the inSpace and otuSpace and sets them to voidSpace if needed.
        """
        # init Structure not necissary but to conserve consistancy
        Structure.__init__( self )
#        self.isadj = False
        if self.command is None:
            raise TypeError( "need to define command in operator" )
        
        if self.inSpace is None:
            raise TypeError( "need to define inSpace, use voidSpace if unknown" )
        if self.outSpace is None:
            raise TypeError( "need to define outSpace, use voidSpace if unknown" )
            
        if self.adj_kparams is None:
            self.adj_kparams = self.kparams

        if self.adj_params is None:
            self.adj_params = self.params
            
            
        if self.adj_command is None:
            self.adj_command = self.command
        
        LinearOperator.__init__( self, self.inSpace, self.outSpace , *self.params, **self.kparams )
    def __init__(self, arithop, oper1, oper2):
        self.oper1 = oper1
        self.oper2 = oper2
        self.arithop = arithop

        domain = VectorAddition([self.oper1.domain(), self.oper2.domain()])
        range = VectorAddition([self.oper1.range(), self.oper2.range()])
        LinearOperator.__init__(self, domain, range)
Exemple #3
0
    def setUp(self):

        self.dom = Space("adc", n1=10, n2=10)
        self.inter = Space("adc", n1=15, n2=15)
        self.rng = Space("adc", n1=22, n2=22)

        self.L1 = LinearOperator(self.dom, self.inter, adj=False)
        self.L2 = LinearOperator(self.inter, self.rng, adj=False)

        self.C = CompoundOperator([self.L1, self.L2])
 def testadj( self ):
     """
     test that the adj method of the linear operator class works
     isadj should reflect the adj flag and the donmain and range 
     should be switched
     """
     L = LinearOperator( self.dom, self.rng, "test", foo="bar", adj=False )
     Lh = L.adj()
     
     self.assertFalse( L.isadj )
     self.assertTrue( Lh.isadj )
     
     self.assertEqual( L.domain(), Lh.range() )
     self.assertEqual( Lh.domain(), L.range() )
    def test__eq__( self ):

        L = self.L
        A = LinearOperator( self.dom, self.rng, adj=False )
#        B = LinearOperator( self.rng, self.dom , adj=False )
        
        self.assertEqual( L, A )
        
        self.assertNotEqual( L.adj(), L )
Exemple #6
0
class compTester(TestCase):
    """
    Test CompoundOperator class
    """
    def setUp(self):

        self.dom = Space("adc", n1=10, n2=10)
        self.inter = Space("adc", n1=15, n2=15)
        self.rng = Space("adc", n1=22, n2=22)

        self.L1 = LinearOperator(self.dom, self.inter, adj=False)
        self.L2 = LinearOperator(self.inter, self.rng, adj=False)

        self.C = CompoundOperator([self.L1, self.L2])

    def test__init__(self):

        self.assertRaises(TypeError, CompoundOperator, self.L1)


#        self.assertRaises(TypeError, comp, [ self.L2 ,self.L1 ] )

    def test__getitem__(self):
        C = self.C

        self.assertEqual(C[0], self.L1)
        self.assertEqual(C[1], self.L2)

    def testdomain(self):

        self.assertEqual(self.C.domain(), self.L2.domain())
        self.assertEqual(self.C.range(), self.L1.range())

        CH = self.C.adj()

        self.assertEqual(CH.domain(), self.L1.range())
        self.assertEqual(CH.range(), self.L2.domain())
Exemple #7
0
 def __mul__(self, other):
     return LinearOperator.__mul__(self, other)
Exemple #8
0
    def __init__(self, data, inSpace, outSpace, *params, **kparams):

        ADI.__init__(self, data)
        LinearOperator.__init__(self, inSpace, outSpace, *params, **kparams)
Exemple #9
0
    def __init__(self, inspace, *params, **kparams):
        # init Structure not necissary but to conserve consistancy
        Structure.__init__(self)
        outspace = inspace.testCommand(self.name, *params, **kparams)

        LinearOperator.__init__(self, inspace, outspace, *params, **kparams)
Exemple #10
0
 def __init__(self, domain, weight):
     self.weight = weight
     range = domain
     LinearOperator.__init__(self, domain, range)
Exemple #11
0
 def __init__( self, mat ):
     
     AugMatrix.__init__( self, mat )
     
     LinearOperator.__init__( self, self.domain(), self.range() )
 def setUp( self ):
     self.dom = Space( "adc" , n1=10, n2=10)
     self.rng = Space( "adc" , n1=15, n2=15  )
     
     self.L = LinearOperator( self.dom, self.rng, adj=False )
class linearoptester( TestCase ):
    """
    Test The base linear operator class.
    """
    
    def setUp( self ):
        self.dom = Space( "adc" , n1=10, n2=10)
        self.rng = Space( "adc" , n1=15, n2=15  )
        
        self.L = LinearOperator( self.dom, self.rng, adj=False )
    
    def tearDown( self ):
        pass
    
    def test__init__( self ):
        """
        check domain and range are set
        """
        
        self.assertEqual( self.L.range(), self.rng )
        self.assertEqual( self.L.range(), self.L.outSpace )

        self.assertEqual( self.L.domain(), self.dom )
        self.assertEqual( self.L.domain(), self.L.inSpace )
        
        self.assertEqual( self.L.kparams['adj'], False )


    def test__eq__( self ):

        L = self.L
        A = LinearOperator( self.dom, self.rng, adj=False )
#        B = LinearOperator( self.rng, self.dom , adj=False )
        
        self.assertEqual( L, A )
        
        self.assertNotEqual( L.adj(), L )
    
    def testcopy( self ):
        """
        Test that the copy operator returns a new 
        instance
        """
        L = self.L
        A = L.copy()
        
        self.assertEqual( L, A )
        
    def testadj( self ):
        """
        test that the adj method of the linear operator class works
        isadj should reflect the adj flag and the donmain and range 
        should be switched
        """
        L = LinearOperator( self.dom, self.rng, "test", foo="bar", adj=False )
        Lh = L.adj()
        
        self.assertFalse( L.isadj )
        self.assertTrue( Lh.isadj )
        
        self.assertEqual( L.domain(), Lh.range() )
        self.assertEqual( Lh.domain(), L.range() )
    
    def test__mul__( self ):
        """
        Not defined in this class
        """
        pass
    
    def test__call__( self ):
        """
        Not defined in this class
        """
        pass
            
    def testapplyop( self ):
        "test applyop mehtod "
        pass
    
    def testgetdim( self ):
        "test to see if the linear operator shape is working"
        dim = self.L.getdim()
        realdim = [len( self.dom ), len( self.rng )]
        self.assertEqual( dim , realdim )
        
        dim = self.L.adj().getdim()
        realdim.reverse()
        self.assertEqual( dim , realdim )