@@ -414,22 +414,24 @@ expmv!(v,L::AbstractSciMLOperator,u,p,t) = mul!(v,exp(L,t),u)
414414
415415function Base. conj (L:: AbstractSciMLOperator )
416416 isreal (L) && return L
417- @warn """ using convert-based fallback for Base.conj"""
417+ if ! isconvertible (L)
418+ @warn """ using convert-based fallback for Base.conj"""
419+ end
418420 concretize (L) |> conj
419421end
420422
421423function Base.:(== )(L1:: AbstractSciMLOperator , L2:: AbstractSciMLOperator )
422- @warn """ using convert-based fallback for Base.=="""
424+ if ! isconvertible (L1) || ! isconvertible (L2)
425+ @warn """ using convert-based fallback for Base.=="""
426+ end
423427 size (L1) != size (L2) && return false
424428 concretize (L1) == concretize (L2)
425429end
426430
427- Base. @propagate_inbounds function Base. getindex (L:: AbstractSciMLOperator , I:: Vararg{Any,N} ) where {N}
428- @warn """ using convert-based fallback for Base.getindex"""
429- concretize (L)[I... ]
430- end
431431function Base. getindex (L:: AbstractSciMLOperator , I:: Vararg{Int, N} ) where {N}
432- @warn """ using convert-based fallback for Base.getindex"""
432+ if ! isconvertible (L)
433+ @warn """ using convert-based fallback for Base.getindex"""
434+ end
433435 concretize (L)[I... ]
434436end
435437
@@ -440,15 +442,19 @@ end
440442LinearAlgebra. exp (L:: AbstractSciMLOperator ) = exp (Matrix (L))
441443
442444function LinearAlgebra. opnorm (L:: AbstractSciMLOperator , p:: Real = 2 )
443- @warn """ using convert-based fallback in LinearAlgebra.opnorm."""
445+ if ! isconvertible (L)
446+ @warn """ using convert-based fallback in LinearAlgebra.opnorm."""
447+ end
444448 opnorm (concretize (L), p)
445449end
446450
447451for op in (
448452 :sum , :prod ,
449453 )
450454 @eval function Base. $op (L:: AbstractSciMLOperator ; kwargs... )
451- @warn """ using convert-based fallback in $($ op) ."""
455+ if ! isconvertible (L)
456+ @warn """ using convert-based fallback in $($ op) ."""
457+ end
452458 $ op (concretize (L); kwargs... )
453459 end
454460end
@@ -459,18 +465,24 @@ for pred in (
459465 :isposdef ,
460466 )
461467 @eval function LinearAlgebra. $pred (L:: AbstractSciMLOperator )
462- @warn """ using convert-based fallback in $($ pred) ."""
468+ if ! isconvertible (L)
469+ @warn """ using convert-based fallback in $($ pred) ."""
470+ end
463471 $ pred (concretize (L))
464472 end
465473end
466474
467475function LinearAlgebra. mul! (v:: AbstractArray , L:: AbstractSciMLOperator , u:: AbstractArray )
468- @warn """ using convert-based fallback in mul!."""
476+ if ! isconvertible (L)
477+ @warn """ using convert-based fallback in mul!."""
478+ end
469479 mul! (v, concretize (L), u)
470480end
471481
472482function LinearAlgebra. mul! (v:: AbstractArray , L:: AbstractSciMLOperator , u:: AbstractArray , α, β)
473- @warn """ using convert-based fallback in mul!."""
483+ if ! isconvertible (L)
484+ @warn """ using convert-based fallback in mul!."""
485+ end
474486 mul! (v, concretize (L), u, α, β)
475487end
476488#
0 commit comments