-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Bug Description
There is a stack overflow error depending on the order of scalar and QobjEvo multiplication. I discovered this while trying to write a positive integer power function for QobjEvo objects. I'm not sure if this is an issue with purely SciMLOperators or ifs a bug in QobjEvo.
Code to Reproduce the Bug
a = QobjEvo((qeye(2), (p,t) -> 1))
println("This works, ", 1*a*a*1)
println("This works, ", 1*(a*a))
println("This works, ", (a*a)*1)
println("This does not work, ", 1*(a*a)*1)
Code Output
This works,
Quantum Object Evo.: type=Operator() dims=[2] size=(2, 2) ishermitian=true isconstant=false
ScalarOperator(1) * (ScalarOperator(0.0 + 0.0im) * DiagonalOperator(2 × 2) * ScalarOperator(0.0 + 0.0im) * DiagonalOperator(2 × 2))
This works,
Quantum Object Evo.: type=Operator() dims=[2] size=(2, 2) ishermitian=true isconstant=false
ScalarOperator(1) * (ScalarOperator(0.0 + 0.0im) * DiagonalOperator(2 × 2) * ScalarOperator(0.0 + 0.0im) * DiagonalOperator(2 × 2))
This works,
Quantum Object Evo.: type=Operator() dims=[2] size=(2, 2) ishermitian=true isconstant=false
ScalarOperator(1) * (ScalarOperator(0.0 + 0.0im) * DiagonalOperator(2 × 2) * ScalarOperator(0.0 + 0.0im) * DiagonalOperator(2 × 2))
StackOverflowError:
Stacktrace:
[1] *(α::ScalarOperator{Int64, SciMLOperators.FilterKwargs{typeof(SciMLOperators.DEFAULT_UPDATE_FUNC), Tuple{}}}, x::UniformScaling{Int64})
@ SciMLOperators ~/.julia/packages/SciMLOperators/DKrpP/src/scalar.jl:366
[2] *(α::ScalarOperator{Int64, SciMLOperators.FilterKwargs{typeof(SciMLOperators.DEFAULT_UPDATE_FUNC), Tuple{}}}, x::UniformScaling{Int64})
@ SciMLOperators ~/.julia/packages/SciMLOperators/DKrpP/src/scalar.jl:369
Expected Behaviour
I would have expected all 4 lines to return the same object.
Your Environment
QuantumToolbox.jl: Quantum Toolbox in Julia
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
Copyright © QuTiP team 2022 and later.
Current admin team:
Alberto Mercurio and Yi-Te Huang
Package information:
====================================
Julia Ver. 1.11.1
QuantumToolbox Ver. 0.34.0
SciMLOperators Ver. 1.4.0
LinearSolve Ver. 3.24.0
OrdinaryDiffEqCore Ver. 1.26.2
System information:
====================================
OS : macOS (arm64-apple-darwin22.4.0)
CPU : 14 × Apple M4 Pro
Memory : 48.0 GB
WORD_SIZE: 64
LIBM : libopenlibm
LLVM : libLLVM-16.0.6 (ORCJIT, apple-m1)
BLAS : libopenblas64_.dylib (ilp64)
Threads : 1 (on 10 virtual cores)
Additional Context
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working