Skip to content

Commit df9b1b0

Browse files
andyferrisandreasnoack
authored andcommitted
Rename ctranspose to adjoint (#23235)
* Rename `ctranspose` to `adjoint` * Add PR number and missing `!` * Remove dated commented out test
1 parent db88dd1 commit df9b1b0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+178
-173
lines changed

NEWS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,9 @@ Deprecated or removed
318318
* `Base.cpad` has been removed; use an appropriate combination of `rpad` and `lpad`
319319
instead ([#23187]).
320320

321+
* `ctranspose` and `ctranspose!` have been deprecated in favor of `adjoint` and `adjoint!`,
322+
respectively ([#23235]).
323+
321324
* `filter` and `filter!` on dictionaries now pass a single `key=>value` pair to the
322325
argument function, instead of two arguments ([#17886]).
323326

base/deprecated.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1421,7 +1421,7 @@ end
14211421
module Operators
14221422
for op in [:!, :(!=), :(!==), :%, :&, :*, :+, :-, :/, ://, :<, :<:, :<<, :(<=),
14231423
:<|, :(==), :(===), :>, :>:, :(>=), :>>, :>>>, :\, :^, :colon,
1424-
:ctranspose, :getindex, :hcat, :hvcat, :setindex!, :transpose, :vcat,
1424+
:adjoint, :getindex, :hcat, :hvcat, :setindex!, :transpose, :vcat,
14251425
:xor, :|, :|>, :~, :×, :÷, :, :, :, :, :, :, :, :, :, :, :,
14261426
:, :, :, :, :, :]
14271427
if isdefined(Base, op)
@@ -1692,6 +1692,10 @@ export hex2num
16921692
# PR #22742: change in isapprox semantics
16931693
@deprecate rtoldefault(x,y) rtoldefault(x,y,0) false
16941694

1695+
# PR #23235
1696+
@deprecate ctranspose adjoint
1697+
@deprecate ctranspose! adjoint!
1698+
16951699
# issue #5148, PR #23259
16961700
# warning for `const` on locals should be changed to an error in julia-syntax.scm
16971701

base/exports.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,8 @@ export
555555
cond,
556556
condskeel,
557557
cross,
558-
ctranspose!,
559-
ctranspose,
558+
adjoint!,
559+
adjoint,
560560
det,
561561
diag,
562562
diagind,

base/linalg/bidiag.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ broadcast(::typeof(floor), ::Type{T}, M::Bidiagonal) where {T<:Integer} = Bidiag
223223
broadcast(::typeof(ceil), ::Type{T}, M::Bidiagonal) where {T<:Integer} = Bidiagonal(ceil.(T, M.dv), ceil.(T, M.ev), M.uplo)
224224

225225
transpose(M::Bidiagonal) = Bidiagonal(M.dv, M.ev, M.uplo == 'U' ? :L : :U)
226-
ctranspose(M::Bidiagonal) = Bidiagonal(conj(M.dv), conj(M.ev), M.uplo == 'U' ? :L : :U)
226+
adjoint(M::Bidiagonal) = Bidiagonal(conj(M.dv), conj(M.ev), M.uplo == 'U' ? :L : :U)
227227

228228
istriu(M::Bidiagonal) = M.uplo == 'U' || iszero(M.ev)
229229
istril(M::Bidiagonal) = M.uplo == 'L' || iszero(M.ev)
@@ -458,7 +458,7 @@ end
458458
#Linear solvers
459459
A_ldiv_B!(A::Union{Bidiagonal, AbstractTriangular}, b::AbstractVector) = naivesub!(A, b)
460460
At_ldiv_B!(A::Bidiagonal, b::AbstractVector) = A_ldiv_B!(transpose(A), b)
461-
Ac_ldiv_B!(A::Bidiagonal, b::AbstractVector) = A_ldiv_B!(ctranspose(A), b)
461+
Ac_ldiv_B!(A::Bidiagonal, b::AbstractVector) = A_ldiv_B!(adjoint(A), b)
462462
function A_ldiv_B!(A::Union{Bidiagonal,AbstractTriangular}, B::AbstractMatrix)
463463
nA,mA = size(A)
464464
tmp = similar(B,size(B,1))

base/linalg/bitarray.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,4 +295,4 @@ function transpose(B::BitMatrix)
295295
return Bt
296296
end
297297

298-
ctranspose(B::Union{BitMatrix,BitVector}) = transpose(B)
298+
adjoint(B::Union{BitMatrix,BitVector}) = transpose(B)

base/linalg/cholesky.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ function chol(A::RealHermSymComplexHerm)
150150
if A.uplo == 'U'
151151
copy!(AA, A.data)
152152
else
153-
Base.ctranspose!(AA, A.data)
153+
Base.adjoint!(AA, A.data)
154154
end
155155
chol!(Hermitian(AA, :U))
156156
end

base/linalg/conjarray.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
A lazy-view wrapper of an `AbstractArray`, taking the elementwise complex conjugate. This
77
type is usually constructed (and unwrapped) via the [`conj`](@ref) function (or related
8-
[`ctranspose`](@ref)), but currently this is the default behavior for `RowVector` only. For
8+
[`adjoint`](@ref)), but currently this is the default behavior for `RowVector` only. For
99
other arrays, the `ConjArray` constructor can be used directly.
1010
1111
# Examples

base/linalg/diagonal.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,11 @@ function A_mul_B!(D::Diagonal, B::UnitUpperTriangular)
186186
UpperTriangular(B.data)
187187
end
188188

189-
Ac_mul_B(D::Diagonal, B::Diagonal) = Diagonal(ctranspose.(D.diag) .* B.diag)
190-
Ac_mul_B(A::AbstractTriangular, D::Diagonal) = A_mul_B!(ctranspose(A), D)
189+
Ac_mul_B(D::Diagonal, B::Diagonal) = Diagonal(adjoint.(D.diag) .* B.diag)
190+
Ac_mul_B(A::AbstractTriangular, D::Diagonal) = A_mul_B!(adjoint(A), D)
191191
function Ac_mul_B(A::AbstractMatrix, D::Diagonal)
192192
Ac = similar(A, promote_op(*, eltype(A), eltype(D.diag)), (size(A, 2), size(A, 1)))
193-
ctranspose!(Ac, A)
193+
adjoint!(Ac, A)
194194
A_mul_B!(Ac, D)
195195
end
196196

@@ -202,12 +202,12 @@ function At_mul_B(A::AbstractMatrix, D::Diagonal)
202202
A_mul_B!(At, D)
203203
end
204204

205-
A_mul_Bc(D::Diagonal, B::Diagonal) = Diagonal(D.diag .* ctranspose.(B.diag))
206-
A_mul_Bc(D::Diagonal, B::AbstractTriangular) = A_mul_B!(D, ctranspose(B))
205+
A_mul_Bc(D::Diagonal, B::Diagonal) = Diagonal(D.diag .* adjoint.(B.diag))
206+
A_mul_Bc(D::Diagonal, B::AbstractTriangular) = A_mul_B!(D, adjoint(B))
207207
A_mul_Bc(D::Diagonal, Q::Union{Base.LinAlg.QRCompactWYQ,Base.LinAlg.QRPackedQ}) = A_mul_Bc!(Array(D), Q)
208208
function A_mul_Bc(D::Diagonal, A::AbstractMatrix)
209209
Ac = similar(A, promote_op(*, eltype(A), eltype(D.diag)), (size(A, 2), size(A, 1)))
210-
ctranspose!(Ac, A)
210+
adjoint!(Ac, A)
211211
A_mul_B!(D, Ac)
212212
end
213213

@@ -219,7 +219,7 @@ function A_mul_Bt(D::Diagonal, A::AbstractMatrix)
219219
A_mul_B!(D, At)
220220
end
221221

222-
Ac_mul_Bc(D::Diagonal, B::Diagonal) = Diagonal(ctranspose.(D.diag) .* ctranspose.(B.diag))
222+
Ac_mul_Bc(D::Diagonal, B::Diagonal) = Diagonal(adjoint.(D.diag) .* adjoint.(B.diag))
223223
At_mul_Bt(D::Diagonal, B::Diagonal) = Diagonal(transpose.(D.diag) .* transpose.(B.diag))
224224

225225
A_mul_B!(A::Diagonal,B::Diagonal) = throw(MethodError(A_mul_B!, Tuple{Diagonal,Diagonal}))
@@ -235,11 +235,11 @@ A_mul_Bc!(A::AbstractMatrix,B::Diagonal) = scale!(A,conj(B.diag))
235235

236236
# Get ambiguous method if try to unify AbstractVector/AbstractMatrix here using AbstractVecOrMat
237237
A_mul_B!(out::AbstractVector, A::Diagonal, in::AbstractVector) = out .= A.diag .* in
238-
Ac_mul_B!(out::AbstractVector, A::Diagonal, in::AbstractVector) = out .= ctranspose.(A.diag) .* in
238+
Ac_mul_B!(out::AbstractVector, A::Diagonal, in::AbstractVector) = out .= adjoint.(A.diag) .* in
239239
At_mul_B!(out::AbstractVector, A::Diagonal, in::AbstractVector) = out .= transpose.(A.diag) .* in
240240

241241
A_mul_B!(out::AbstractMatrix, A::Diagonal, in::AbstractMatrix) = out .= A.diag .* in
242-
Ac_mul_B!(out::AbstractMatrix, A::Diagonal, in::AbstractMatrix) = out .= ctranspose.(A.diag) .* in
242+
Ac_mul_B!(out::AbstractMatrix, A::Diagonal, in::AbstractMatrix) = out .= adjoint.(A.diag) .* in
243243
At_mul_B!(out::AbstractMatrix, A::Diagonal, in::AbstractMatrix) = out .= transpose.(A.diag) .* in
244244

245245
# ambiguities with Symmetric/Hermitian
@@ -306,13 +306,13 @@ A_rdiv_Bt!(A::AbstractMatrix{T}, D::Diagonal{T}) where {T} = A_rdiv_B!(A, D)
306306
# Methods to resolve ambiguities with `Diagonal`
307307
@inline *(rowvec::RowVector, D::Diagonal) = transpose(D * transpose(rowvec))
308308
@inline A_mul_Bt(D::Diagonal, rowvec::RowVector) = D*transpose(rowvec)
309-
@inline A_mul_Bc(D::Diagonal, rowvec::RowVector) = D*ctranspose(rowvec)
309+
@inline A_mul_Bc(D::Diagonal, rowvec::RowVector) = D*adjoint(rowvec)
310310

311311
conj(D::Diagonal) = Diagonal(conj(D.diag))
312312
transpose(D::Diagonal{<:Number}) = D
313313
transpose(D::Diagonal) = Diagonal(transpose.(D.diag))
314-
ctranspose(D::Diagonal{<:Number}) = conj(D)
315-
ctranspose(D::Diagonal) = Diagonal(ctranspose.(D.diag))
314+
adjoint(D::Diagonal{<:Number}) = conj(D)
315+
adjoint(D::Diagonal) = Diagonal(adjoint.(D.diag))
316316

317317
diag(D::Diagonal) = D.diag
318318
trace(D::Diagonal) = sum(D.diag)

base/linalg/factorization.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ abstract type Factorization{T} end
66

77
eltype(::Type{Factorization{T}}) where {T} = T
88
transpose(F::Factorization) = error("transpose not implemented for $(typeof(F))")
9-
ctranspose(F::Factorization) = error("ctranspose not implemented for $(typeof(F))")
9+
adjoint(F::Factorization) = error("adjoint not implemented for $(typeof(F))")
1010

1111
macro assertposdef(A, info)
1212
:($(esc(info)) == 0 ? $(esc(A)) : throw(PosDefException($(esc(info)))))

base/linalg/generic.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -942,7 +942,7 @@ function ishermitian(A::AbstractMatrix)
942942
return false
943943
end
944944
for i = indsn, j = i:last(indsn)
945-
if A[i,j] != ctranspose(A[j,i])
945+
if A[i,j] != adjoint(A[j,i])
946946
return false
947947
end
948948
end

0 commit comments

Comments
 (0)