Skip to content

Commit 0c21db3

Browse files
authored
Merge pull request #311 from fredrikekre/fe/adjoint
ctranspose -> adjoint
2 parents 12bab2a + 6a923d7 commit 0c21db3

9 files changed

+27
-29
lines changed

REQUIRE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
julia 0.6.0
2-
Compat 0.26
2+
Compat 0.32

src/SDiagonal.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ end
1515
struct SDiagonal{N,T} <: StaticMatrix{N,N,T}
1616
diag::SVector{N,T}
1717
SDiagonal{N,T}(diag::SVector{N,T}) where {N,T} = new(diag)
18-
end
18+
end
1919
diagtype(::Type{SDiagonal{N,T}}) where {N, T} = SVector{N,T}
2020
diagtype(::Type{SDiagonal{N}}) where {N} = SVector{N}
2121
diagtype(::Type{SDiagonal}) = SVector
2222

2323
# this is to deal with convert.jl
2424
@inline (::Type{SD})(a::AbstractVector) where {SD <: SDiagonal} = SDiagonal(convert(diagtype(SD), a))
2525
@inline (::Type{SD})(a::Tuple) where {SD <: SDiagonal} = SDiagonal(convert(diagtype(SD), a))
26-
@inline (::Type{SDiagonal})(a::SVector{N,T}) where {N,T} = SDiagonal{N,T}(a)
26+
@inline (::Type{SDiagonal})(a::SVector{N,T}) where {N,T} = SDiagonal{N,T}(a)
2727

2828
@generated function SDiagonal(a::StaticMatrix{N,N,T}) where {N,T}
2929
expr = [:(a[$i,$i]) for i=1:N]
@@ -70,7 +70,7 @@ factorize(D::SDiagonal) = D
7070

7171
conj(D::SDiagonal) = SDiagonal(conj(D.diag))
7272
transpose(D::SDiagonal) = D
73-
ctranspose(D::SDiagonal) = conj(D)
73+
adjoint(D::SDiagonal) = conj(D)
7474

7575
diag(D::SDiagonal) = D.diag
7676
trace(D::SDiagonal) = sum(D.diag)

src/StaticArrays.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ import Base: @_inline_meta, @_propagate_inbounds_meta, @_pure_meta, @propagate_i
66

77
import Base: getindex, setindex!, size, similar, vec, show,
88
length, convert, promote_op, promote_rule, map, map!, reduce, reducedim, mapreducedim,
9-
mapreduce, broadcast, broadcast!, conj, transpose, ctranspose,
9+
mapreduce, broadcast, broadcast!, conj, transpose,
1010
hcat, vcat, ones, zeros, eye, one, cross, vecdot, reshape, fill,
1111
fill!, det, logdet, inv, eig, eigvals, eigfact, expm, logm, sqrtm, lyap, trace, kron, diag, vecnorm, norm, dot, diagm, diag,
1212
lu, svd, svdvals, svdfact, factorize, ishermitian, issymmetric, isposdef,
1313
iszero, sum, diff, prod, count, any, all, minimum,
1414
maximum, extrema, mean, copy, rand, randn, randexp, rand!, randn!,
1515
randexp!, normalize, normalize!, read, read!, write, Eigen
1616

17+
import Compat.adjoint
18+
1719
using Compat
1820

1921
export StaticScalar, StaticArray, StaticVector, StaticMatrix

src/linalg.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ end
6969
end
7070
end
7171

72-
@inline ctranspose(m::StaticMatrix) = _ctranspose(Size(m), m)
72+
@inline adjoint(m::StaticMatrix) = _adjoint(Size(m), m)
7373

74-
@generated function _ctranspose(::Size{S}, m::StaticMatrix) where {S}
74+
@generated function _adjoint(::Size{S}, m::StaticMatrix) where {S}
7575
Snew = (S[2], S[1])
7676

7777
exprs = [:(conj(m[$(sub2ind(S, j1, j2))])) for j2 = 1:S[2], j1 = 1:S[1]]

src/matrix_multiply.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ const StaticVecOrMat{T} = Union{StaticVector{<:Any, T}, StaticMatrix{<:Any, <:An
99

1010
# Deal with A_mul_Bc, etc...
1111
# TODO make faster versions of A*_mul_B*
12-
@inline A_mul_Bc(A::StaticVecOrMat, B::StaticVecOrMat) = A * ctranspose(B)
13-
@inline Ac_mul_Bc(A::StaticVecOrMat, B::StaticVecOrMat) = ctranspose(A) * ctranspose(B)
14-
@inline Ac_mul_B(A::StaticVecOrMat, B::StaticVecOrMat) = ctranspose(A) * B
12+
@inline A_mul_Bc(A::StaticVecOrMat, B::StaticVecOrMat) = A * adjoint(B)
13+
@inline Ac_mul_Bc(A::StaticVecOrMat, B::StaticVecOrMat) = adjoint(A) * adjoint(B)
14+
@inline Ac_mul_B(A::StaticVecOrMat, B::StaticVecOrMat) = adjoint(A) * B
1515

1616
@inline A_mul_Bt(A::StaticVecOrMat, B::StaticVecOrMat) = A * transpose(B)
1717
@inline At_mul_Bt(A::StaticVecOrMat, B::StaticVecOrMat) = transpose(A) * transpose(B)
1818
@inline At_mul_B(A::StaticVecOrMat, B::StaticVecOrMat) = transpose(A) * B
1919

20-
@inline A_mul_Bc!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, A, ctranspose(B))
21-
@inline Ac_mul_Bc!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, ctranspose(A), ctranspose(B))
22-
@inline Ac_mul_B!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, ctranspose(A), B)
20+
@inline A_mul_Bc!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, A, adjoint(B))
21+
@inline Ac_mul_Bc!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, adjoint(A), adjoint(B))
22+
@inline Ac_mul_B!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, adjoint(A), B)
2323

2424
@inline A_mul_Bt!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, A, transpose(B))
2525
@inline At_mul_Bt!(dest::StaticVecOrMat, A::StaticVecOrMat, B::StaticVecOrMat) = A_mul_B!(dest, transpose(A), transpose(B))

src/triangular.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ import Base: \, Ac_ldiv_B, At_ldiv_B
1717
@inline A_mul_Bt(rowvec::RowVector{<:Any,<:StaticVector}, A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = transpose(A * transpose(rowvec))
1818
@inline A_mul_Bt(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, rowvec::RowVector{<:Any,<:StaticVector}) = A * transpose(rowvec)
1919
@inline At_mul_Bt(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, rowvec::RowVector{<:Any,<:StaticVector}) = A.' * transpose(rowvec)
20-
@inline A_mul_Bc(rowvec::RowVector{<:Any,<:StaticVector}, A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = ctranspose(A * ctranspose(rowvec))
21-
@inline A_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, rowvec::RowVector{<:Any,<:StaticVector}) = A * ctranspose(rowvec)
22-
@inline Ac_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, rowvec::RowVector{<:Any,<:StaticVector}) = A' * ctranspose(rowvec)
20+
@inline A_mul_Bc(rowvec::RowVector{<:Any,<:StaticVector}, A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = adjoint(A * adjoint(rowvec))
21+
@inline A_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, rowvec::RowVector{<:Any,<:StaticVector}) = A * adjoint(rowvec)
22+
@inline Ac_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, rowvec::RowVector{<:Any,<:StaticVector}) = A' * adjoint(rowvec)
2323

24-
Ac_mul_B(A::StaticMatrix, B::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = (*)(ctranspose(A), B)
24+
Ac_mul_B(A::StaticMatrix, B::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = (*)(adjoint(A), B)
2525
At_mul_B(A::StaticMatrix, B::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = (*)(transpose(A), B)
26-
A_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, B::StaticMatrix) = (*)(A, ctranspose(B))
26+
A_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, B::StaticMatrix) = (*)(A, adjoint(B))
2727
A_mul_Bt(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, B::StaticMatrix) = (*)(A, transpose(B))
2828
Ac_mul_Bc(A::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}, B::StaticMatrix) = Ac_mul_B(A, B')
2929
Ac_mul_Bc(A::StaticMatrix, B::Base.LinAlg.AbstractTriangular{<:Any,<:StaticMatrix}) = A_mul_Bc(A', B)

test/broadcast.jl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
using StaticArrays, Base.Test
2-
3-
include("testutil.jl")
4-
51
@testset "Broadcast sizes" begin
62
@test @inferred(StaticArrays.broadcast_sizes(1, 1, 1)) === (Size(), Size(), Size())
73
for t in (SVector{2}, MVector{2}, SMatrix{2, 2}, MMatrix{2, 2})

test/linalg.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ using StaticArrays, Base.Test
9393
@test @inferred(transpose(@SMatrix([1 2; 0 3]))) === @SMatrix([1 0; 2 3])
9494
@test @inferred(transpose(@SMatrix([1 2 3; 4 5 6]))) === @SMatrix([1 4; 2 5; 3 6])
9595

96-
@test @inferred(ctranspose(@SVector([1, 2, 3]))) === RowVector(@SVector([1, 2, 3]))
97-
@test @inferred(ctranspose(@SMatrix([1 2; 0 3]))) === @SMatrix([1 0; 2 3])
98-
@test @inferred(ctranspose(@SMatrix([1 2 3; 4 5 6]))) === @SMatrix([1 4; 2 5; 3 6])
99-
@test @inferred(ctranspose(@SMatrix([1 2*im 3; 4 5 6]))) === @SMatrix([1 4; -2*im 5; 3 6])
96+
@test @inferred(adjoint(@SVector([1, 2, 3]))) === RowVector(@SVector([1, 2, 3]))
97+
@test @inferred(adjoint(@SMatrix([1 2; 0 3]))) === @SMatrix([1 0; 2 3])
98+
@test @inferred(adjoint(@SMatrix([1 2 3; 4 5 6]))) === @SMatrix([1 4; 2 5; 3 6])
99+
@test @inferred(adjoint(@SMatrix([1 2*im 3; 4 5 6]))) === @SMatrix([1 4; -2*im 5; 3 6])
100100
end
101101

102102
@testset "vcat() and hcat()" begin

test/triangular.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ srand()
66
(t, uplo) in ((UpperTriangular, :U), (LowerTriangular, :L)),
77
eltyB in (Float64, Complex128)
88

9-
A = t(eltyA == Int ? rand(1:7, n, n) : convert(Matrix{eltyA}, (eltyA <: Complex ? complex.(randn(n, n), randn(n, n)) : randn(n, n)) |> t -> chol(t't) |> t -> uplo == :U ? t : ctranspose(t)))
9+
A = t(eltyA == Int ? rand(1:7, n, n) : convert(Matrix{eltyA}, (eltyA <: Complex ? complex.(randn(n, n), randn(n, n)) : randn(n, n)) |> t -> chol(t't) |> t -> uplo == :U ? t : adjoint(t)))
1010
B = convert(Matrix{eltyB}, eltyA <: Complex ? real(A)*ones(n, n) : A*ones(n, n))
1111
SA = t(SMatrix{n,n}(A.data))
1212
SB = SMatrix{n,n}(B)
@@ -48,7 +48,7 @@ end
4848
(t, uplo) in ((UpperTriangular, :U), (LowerTriangular, :L)),
4949
eltyB in (Float64, Complex128)
5050

51-
A = t(eltyA == Int ? rand(1:7, n, n) : convert(Matrix{eltyA}, (eltyA <: Complex ? complex.(randn(n, n), randn(n, n)) : randn(n, n)) |> t -> chol(t't) |> t -> uplo == :U ? t : ctranspose(t)))
51+
A = t(eltyA == Int ? rand(1:7, n, n) : convert(Matrix{eltyA}, (eltyA <: Complex ? complex.(randn(n, n), randn(n, n)) : randn(n, n)) |> t -> chol(t't) |> t -> uplo == :U ? t : adjoint(t)))
5252
B = convert(Vector{eltyB}, eltyA <: Complex ? real(A)*ones(n) : A*ones(n))
5353
SA = t(SMatrix{n,n}(A.data))
5454
SB = SVector{n}(B).'
@@ -81,7 +81,7 @@ end
8181
(t, uplo) in ((UpperTriangular, :U), (LowerTriangular, :L)),
8282
eltyB in (Float64, Complex128)
8383

84-
A = t(eltyA == Int ? rand(1:7, n, n) : convert(Matrix{eltyA}, (eltyA <: Complex ? complex.(randn(n, n), randn(n, n)) : randn(n, n)) |> t -> chol(t't) |> t -> uplo == :U ? t : ctranspose(t)))
84+
A = t(eltyA == Int ? rand(1:7, n, n) : convert(Matrix{eltyA}, (eltyA <: Complex ? complex.(randn(n, n), randn(n, n)) : randn(n, n)) |> t -> chol(t't) |> t -> uplo == :U ? t : adjoint(t)))
8585
B = convert(Matrix{eltyB}, eltyA <: Complex ? real(A)*ones(n, n) : A*ones(n, n))
8686
SA = t(SMatrix{n,n}(A.data))
8787
SB = SMatrix{n,n}(B)

0 commit comments

Comments
 (0)