All pastes #576778 Raw Edit

Miscellany

public python v1 · immutable
·published 2007-06-19 16:50 UTC
rendered paste body
    def __mul__(self, q):         if isinstance(q, Matrix):  #jezeli mnozymi macierz przez maciez..            if self.dim[1] != q.dim[0]:  #sprawdzamy czy wymiary macierzy sa odpowiednie                arg = ("p.dim[1] != q.dim[0]", self.dim[1], q.dim[0])  #wyrzucamy wyjatek ze jest bee                raise IndexError, arg             else: #jesli wszystko jest ok to mnozymy                # do the multiplication                 m = Matrix(dim=(self.dim[0], q.dim[1]))  #tworzymy maciez wynikowa                for r in range(self.dim[0]): # wiersze pierwszej macierzy                     for c in range(q.dim[1]): # kolumny drugiej macierzy                         # wymnazamy teraz poszczegolne "sumy" wierszy i kolumn                        wierszWek = self.data[r]                         kolWek = [q.data[a][c] for a in xrange(q.dim[0])]                         m.data[r][c] = sum(map(lambda x, y: x * y, wierszWek, kolWek))                 return m  #wynik        elif isinstance(q, float) or isinstance(q, int): # jesli mnozymy przez liczbe int czy float             # tworzymy macierz wynikowa            m = Matrix(dim=self.dim)             for r in range(self.dim[0]): # wiersze                 m.data[r] = map(lambda x: x * q, self.data[r])  #mnozenie            return m #zwracamy wynikowa macierz        else:             arg = ("Wartosc jest niestosownego formatu: ", q)  #jesli bedziemy chcieli mnozyc przez jakies smieci to wyrzucamy wyjatek            raise TypeError, arg