@@ -154,26 +154,19 @@ end
154
154
sum (@inbounds (return rowvec[i]* vec[i]) for i = 1 : length (vec))
155
155
end
156
156
@inline * (rowvec:: RowVector , mat:: AbstractMatrix ) = transpose (mat.' * transpose (rowvec))
157
- * (vec:: AbstractVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (
158
- " Cannot left-multiply a matrix by a vector" )) # Should become a deprecation
159
157
* (:: RowVector , :: RowVector ) = throw (DimensionMismatch (" Cannot multiply two transposed vectors" ))
160
158
@inline * (vec:: AbstractVector , rowvec:: RowVector ) = vec .* rowvec
161
159
* (vec:: AbstractVector , rowvec:: AbstractVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
162
- * (mat:: AbstractMatrix , rowvec:: RowVector ) = throw (DimensionMismatch (" Cannot right-multiply matrix by transposed vector" ))
163
160
164
161
# Transposed forms
165
162
A_mul_Bt (:: RowVector , :: AbstractVector ) = throw (DimensionMismatch (" Cannot multiply two transposed vectors" ))
166
163
@inline A_mul_Bt (rowvec:: RowVector , mat:: AbstractMatrix ) = transpose (mat * transpose (rowvec))
167
- A_mul_Bt (vec:: AbstractVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (
168
- " Cannot left-multiply a matrix by a vector" ))
169
164
@inline A_mul_Bt (rowvec1:: RowVector , rowvec2:: RowVector ) = rowvec1* transpose (rowvec2)
170
165
A_mul_Bt (vec:: AbstractVector , rowvec:: RowVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
171
166
@inline A_mul_Bt (vec1:: AbstractVector , vec2:: AbstractVector ) = vec1 * transpose (vec2)
172
167
@inline A_mul_Bt (mat:: AbstractMatrix , rowvec:: RowVector ) = mat * transpose (rowvec)
173
168
174
169
@inline At_mul_Bt (rowvec:: RowVector , vec:: AbstractVector ) = transpose (rowvec) * transpose (vec)
175
- At_mul_Bt (rowvec:: RowVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (
176
- " Cannot left-multiply matrix by vector" ))
177
170
@inline At_mul_Bt (vec:: AbstractVector , mat:: AbstractMatrix ) = transpose (mat * vec)
178
171
At_mul_Bt (rowvec1:: RowVector , rowvec2:: RowVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
179
172
@inline At_mul_Bt (vec:: AbstractVector , rowvec:: RowVector ) = transpose (vec)* transpose (rowvec)
@@ -182,42 +175,34 @@ At_mul_Bt(vec::AbstractVector, rowvec::AbstractVector) = throw(DimensionMismatch
182
175
@inline At_mul_Bt (mat:: AbstractMatrix , rowvec:: RowVector ) = mat.' * transpose (rowvec)
183
176
184
177
At_mul_B (:: RowVector , :: AbstractVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
185
- At_mul_B (rowvec:: RowVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (
186
- " Cannot left-multiply matrix by vector" ))
187
178
@inline At_mul_B (vec:: AbstractVector , mat:: AbstractMatrix ) = transpose (At_mul_B (mat,vec))
188
179
@inline At_mul_B (rowvec1:: RowVector , rowvec2:: RowVector ) = transpose (rowvec1) * rowvec2
189
180
At_mul_B (vec:: AbstractVector , rowvec:: RowVector ) = throw (DimensionMismatch (
190
181
" Cannot multiply two transposed vectors" ))
191
182
@inline At_mul_B {T<:Real} (vec1:: AbstractVector{T} , vec2:: AbstractVector{T} ) =
192
183
reduce (+ , map (At_mul_B, vec1, vec2)) # Seems to be overloaded...
193
184
@inline At_mul_B (vec1:: AbstractVector , vec2:: AbstractVector ) = transpose (vec1) * vec2
194
- At_mul_B (mat:: AbstractMatrix , rowvec:: RowVector ) = throw (DimensionMismatch (
195
- " Cannot right-multiply matrix by transposed vector" ))
196
185
197
186
# Conjugated forms
198
187
A_mul_Bc (:: RowVector , :: AbstractVector ) = throw (DimensionMismatch (" Cannot multiply two transposed vectors" ))
199
188
@inline A_mul_Bc (rowvec:: RowVector , mat:: AbstractMatrix ) = ctranspose (mat * ctranspose (rowvec))
200
- A_mul_Bc (vec:: AbstractVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (" Cannot left-multiply a matrix by a vector" ))
201
189
@inline A_mul_Bc (rowvec1:: RowVector , rowvec2:: RowVector ) = rowvec1 * ctranspose (rowvec2)
202
190
A_mul_Bc (vec:: AbstractVector , rowvec:: RowVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
203
191
@inline A_mul_Bc (vec1:: AbstractVector , vec2:: AbstractVector ) = vec1 * ctranspose (vec2)
204
192
@inline A_mul_Bc (mat:: AbstractMatrix , rowvec:: RowVector ) = mat * ctranspose (rowvec)
205
193
206
194
@inline Ac_mul_Bc (rowvec:: RowVector , vec:: AbstractVector ) = ctranspose (rowvec) * ctranspose (vec)
207
- Ac_mul_Bc (rowvec:: RowVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (" Cannot left-multiply matrix by vector" ))
208
195
@inline Ac_mul_Bc (vec:: AbstractVector , mat:: AbstractMatrix ) = ctranspose (mat * vec)
209
196
Ac_mul_Bc (rowvec1:: RowVector , rowvec2:: RowVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
210
197
@inline Ac_mul_Bc (vec:: AbstractVector , rowvec:: RowVector ) = ctranspose (vec)* ctranspose (rowvec)
211
198
Ac_mul_Bc (vec:: AbstractVector , rowvec:: AbstractVector ) = throw (DimensionMismatch (" Cannot multiply two transposed vectors" ))
212
199
@inline Ac_mul_Bc (mat:: AbstractMatrix , rowvec:: RowVector ) = mat' * ctranspose (rowvec)
213
200
214
201
Ac_mul_B (:: RowVector , :: AbstractVector ) = throw (DimensionMismatch (" Cannot multiply two vectors" ))
215
- Ac_mul_B (rowvec:: RowVector , mat:: AbstractMatrix ) = throw (DimensionMismatch (" Cannot left-multiply matrix by vector" ))
216
202
@inline Ac_mul_B (vec:: AbstractVector , mat:: AbstractMatrix ) = ctranspose (Ac_mul_B (mat,vec))
217
203
@inline Ac_mul_B (rowvec1:: RowVector , rowvec2:: RowVector ) = ctranspose (rowvec1) * rowvec2
218
204
Ac_mul_B (vec:: AbstractVector , rowvec:: RowVector ) = throw (DimensionMismatch (" Cannot multiply two transposed vectors" ))
219
205
@inline Ac_mul_B (vec1:: AbstractVector , vec2:: AbstractVector ) = ctranspose (vec1)* vec2
220
- Ac_mul_B (mat:: AbstractMatrix , rowvec:: RowVector ) = throw (DimensionMismatch (" Cannot right-multiply matrix by transposed vector" ))
221
206
222
207
# Left Division #
223
208
0 commit comments