Skip to content

Commit

Permalink
slightly speed up doctests
Browse files Browse the repository at this point in the history
  • Loading branch information
kpobrien committed Jan 1, 2025
1 parent 298b866 commit 732df4d
Show file tree
Hide file tree
Showing 14 changed files with 287 additions and 405 deletions.
59 changes: 45 additions & 14 deletions src/JosephsonCircuits.jl
Original file line number Diff line number Diff line change
Expand Up @@ -351,25 +351,31 @@ function warmupnetwork()
for portimpedances in [
rand(Complex{Float64}), rand(Complex{Float64},2),
]
for arg1 in [rand(Complex{Float64},2,2)]
arg2 = f[1](arg1,portimpedances=portimpedances)
arg3 = f[2](arg2,portimpedances=portimpedances)
for arg1 in [rand(Complex{Float64},2,2), (StaticArrays.@MMatrix rand(Complex{Float64},2,2))]
f[1](arg1,portimpedances=portimpedances)
f[2](arg1,portimpedances=portimpedances)
f[1](arg1)
f[2](arg1)
end
end
# array input
for portimpedances in [rand(Complex{Float64}), rand(Complex{Float64},2,10)]
for arg1 in [rand(Complex{Float64},2,2,10)]
arg2 = f[1](arg1,portimpedances=portimpedances)
arg3 = f[2](arg2,portimpedances=portimpedances)
f[1](arg1,portimpedances=portimpedances)
f[2](arg1,portimpedances=portimpedances)
f[1](arg1)
f[2](arg1)
end
end
# vector of matrices
for portimpedances in [rand(Complex{Float64}), rand(Complex{Float64},2) ]
for arg1 in [
[rand(Complex{Float64},2,2) for i in 1:10],
]
arg2 = [f[1](arg1[i],portimpedances=portimpedances) for i in 1:10]
arg3 = [f[2](arg2[i],portimpedances=portimpedances) for i in 1:10]
[f[1](arg1[i],portimpedances=portimpedances) for i in 1:10]
[f[2](arg1[i],portimpedances=portimpedances) for i in 1:10]
[f[1](arg1[i]) for i in 1:10]
[f[2](arg1[i]) for i in 1:10]
end
end
end
Expand All @@ -386,24 +392,49 @@ function warmupnetwork()
(JosephsonCircuits.ZtoY,JosephsonCircuits.YtoZ),
]
# single matrix input
for arg1 in [rand(Complex{Float64},2,2)]
arg2 = f[1](arg1)
arg3 = f[2](arg2)
for arg1 in [rand(Complex{Float64},2,2), (StaticArrays.@MMatrix rand(Complex{Float64},2,2))]
f[1](arg1)
f[2](arg1)
end
# array input
for arg1 in [rand(Complex{Float64},2,2,10)]
arg2 = f[1](arg1)
arg3 = f[2](arg2)
f[1](arg1)
f[2](arg1)
end
# vector of matrices
for arg1 in [
[rand(Complex{Float64},2,2) for i in 1:10],
]
arg2 = [f[1](arg1[i]) for i in 1:10]
arg3 = [f[2](arg2[i]) for i in 1:10]
[f[1](arg1[i]) for i in 1:10]
[f[2](arg1[i]) for i in 1:10]
end
end


# network devices, consistency check
x1 = rand(Complex{Float64})
x2 = rand(Complex{Float64})
x3 = rand(Complex{Float64})
x4 = rand(Complex{Float64})
JosephsonCircuits.ABCD_seriesZ(x1)
JosephsonCircuits.YtoA(JosephsonCircuits.Y_seriesY(1/x1))

JosephsonCircuits.ABCD_shuntY(1/x1)
JosephsonCircuits.ZtoA(JosephsonCircuits.Z_shuntZ(x1))

JosephsonCircuits.ABCD_tline(x1,x2)
JosephsonCircuits.ZtoA(JosephsonCircuits.Z_tline(x1,x2))

JosephsonCircuits.ABCD_PiY(x1,x2,x3)
JosephsonCircuits.YtoA(JosephsonCircuits.Y_PiY(x1,x2,x3))

JosephsonCircuits.ABCD_TZ(x1,x2,x3)
JosephsonCircuits.ZtoA(JosephsonCircuits.Z_TZ(x1,x2,x3))

JosephsonCircuits.ABCD_coupled_tline(x1,x2,x3,x4)
JosephsonCircuits.ZtoA(JosephsonCircuits.Z_coupled_tline(x1,x2,x3,x4))


return true
end

Expand Down
23 changes: 0 additions & 23 deletions src/capindmat.jl
Original file line number Diff line number Diff line change
Expand Up @@ -650,18 +650,6 @@ JosephsonCircuits.calcinvLn(Lb,Rbn,Nmodes).nzval
# output
Nothing[]
```
```jldoctest
@syms L1 L2
Nmodes = 1
Lb = JosephsonCircuits.SparseArrays.sparsevec([1,2],[L1,L2])
Rbn = JosephsonCircuits.SparseArrays.sparse([1,2], [1,2], [1,1])
JosephsonCircuits.calcinvLn(Lb,Rbn,Nmodes).nzval
# output
2-element Vector{Any}:
1 / L1
1 / L2
```
"""
function calcinvLn(Lb::SparseVector, Rbn::SparseMatrixCSC, Nmodes)
if nnz(Lb)>0
Expand Down Expand Up @@ -713,17 +701,6 @@ Mb = JosephsonCircuits.SparseArrays.sparse([2,1], [1,2], [Lm,Lm]);
Rbn = JosephsonCircuits.SparseArrays.sparse([1,2], [1,2], [1.0,1.0])
println(JosephsonCircuits.calcinvLn(Lb,Mb,Rbn,Nmodes))
# output
sparse([1, 2, 1, 2], [1, 1, 2, 2], Num[(1.0 + (Lm*(Lm / L1)) / (L2 + (-(Lm^2)) / L1)) / L1, (-(Lm / L1)) / (L2 + (-(Lm^2)) / L1), (-(Lm / (L2 + (-(Lm^2)) / L1))) / L1, 1.0 / (L2 + (-(Lm^2)) / L1)], 2, 2)
```
```jldoctest
@syms L1 L2 Lm
Nmodes = 1
Lb = JosephsonCircuits.SparseArrays.sparsevec([1,2],[L1,L2]);
Mb = JosephsonCircuits.SparseArrays.sparse([2,1], [1,2], [Lm,Lm]);
Rbn = JosephsonCircuits.SparseArrays.sparse([1,2], [1,2], [1.0,1.0])
println(JosephsonCircuits.calcinvLn(Lb,Mb,Rbn,Nmodes))
# output
sparse([1, 2, 1, 2], [1, 1, 2, 2], Num[(1.0 + (Lm*(Lm / L1)) / (L2 + (-(Lm^2)) / L1)) / L1, (-(Lm / L1)) / (L2 + (-(Lm^2)) / L1), (-(Lm / (L2 + (-(Lm^2)) / L1))) / L1, 1.0 / (L2 + (-(Lm^2)) / L1)], 2, 2)
```
Expand Down
5 changes: 0 additions & 5 deletions src/exportnetlist.jl
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,6 @@ Import the netlist from the IOBuffer or IOStream `io` to the vector of tuples
# Examples
```jldoctest
julia> io = IOBuffer();circuit1=[("P","1","0",1),("R","1","0",50.0)];JosephsonCircuits.export_netlist!(io,circuit1,Dict());circuit2 = Tuple{String,String,String,Num}[];JosephsonCircuits.import_netlist!(io,circuit2);circuit2
2-element Vector{Tuple{String, String, String, Num}}:
("P", "1", "0", 1.0)
("R", "1", "0", 50.0)
julia> io = IOBuffer("P 1 0 1\\n R 1 0 50.0");circuit2 = Tuple{String,String,String,Num}[];JosephsonCircuits.import_netlist!(io,circuit2);circuit2
2-element Vector{Tuple{String, String, String, Num}}:
("P", "1", "0", 1.0)
("R", "1", "0", 50.0)
Expand Down
19 changes: 0 additions & 19 deletions src/hbsolve.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1964,25 +1964,6 @@ JosephsonCircuits.calcAoLjbm2(Amatrix, Amatrixindices, Ljb, Lmean, Nmodes, Nbran
⋅ ⋅ ⋅ A22 / Lj2 A12 / Lj2 A22 / Lj2
⋅ ⋅ ⋅ A32 / Lj2 A22 / Lj2 A12 / Lj2
```
```jldoctest
@syms A11 A12 A21 A22 A31 A32 Lj1 Lj2
Amatrix = [A11 A12;A21 A22;A31 A32]
Amatrixindices = [1 0 0; 0 1 0; 0 0 1]
Ljb = JosephsonCircuits.SparseArrays.sparsevec([1,2],[Lj1,Lj2])
Lmean = 1
Nmodes = 3
Nbranches = 2
JosephsonCircuits.calcAoLjbm2(Amatrix, Amatrixindices, Ljb, Lmean, Nmodes, Nbranches).nzval
# output
6-element Vector{Any}:
A11 / Lj1
A11 / Lj1
A11 / Lj1
A12 / Lj2
A12 / Lj2
A12 / Lj2
```
"""
function calcAoLjbm2(Am::Array, Amatrixindices::Matrix, Ljb::SparseVector,
Lmean, Nmodes, Nbranches)
Expand Down
7 changes: 0 additions & 7 deletions src/hbsolveold.jl
Original file line number Diff line number Diff line change
Expand Up @@ -921,13 +921,6 @@ julia> @variables Lj1 Lj2 A11 A12 A21 A22 A31 A32;JosephsonCircuits.calcAoLjbm([
A11 / Lj1 A31 / Lj1
A31 / Lj1 A11 / Lj1
julia> @syms Lj1 Lj2 A11 A12 A21 A22 A31 A32;JosephsonCircuits.calcAoLjbm([A11;A21;A31],JosephsonCircuits.SparseArrays.sparsevec([1],[Lj1]),1,2,1).nzval
4-element Vector{Any}:
A11 / Lj1
A31 / Lj1
conj(A31 / Lj1)
A11 / Lj1
julia> @variables Lj1 Lj2 A11 A12 A21 A22 A31 A32;JosephsonCircuits.calcAoLjbm([A11 A12;A21 A22;A31 A32],JosephsonCircuits.SparseArrays.sparsevec([1,2],[Lj1,Lj2]),1,2,2)
4×4 SparseArrays.SparseMatrixCSC{Num, Int64} with 8 stored entries:
A11 / Lj1 A31 / Lj1 ⋅ ⋅
Expand Down
8 changes: 1 addition & 7 deletions src/matutils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -793,12 +793,6 @@ symbolic variables.
# Examples
```jldoctest
julia> @syms w;A = JosephsonCircuits.SparseArrays.sparse([1,2,1], [1,2,2], [w,1.0,3*w+1]);println(A.nzval);JosephsonCircuits.symbolicindices(A)
Any[w, 1 + 3w, 1.0]
2-element Vector{Int64}:
1
2
julia> @variables w;A = JosephsonCircuits.SparseArrays.sparse([1,2,1], [1,2,2], [w,1.0,3*w+1]);println(A.nzval);JosephsonCircuits.symbolicindices(A)
Num[w, 1 + 3w, 1.0]
2-element Vector{Int64}:
Expand Down Expand Up @@ -843,7 +837,7 @@ different function call is required for `@syms` vs `@variables`.
# Examples
```jldoctest
julia> @syms w;JosephsonCircuits.checkissymbolic(w)
julia> @variables w;JosephsonCircuits.checkissymbolic(w)
true
julia> JosephsonCircuits.checkissymbolic(1.0)
Expand Down
8 changes: 4 additions & 4 deletions src/networkconnection.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1406,10 +1406,10 @@ function connectS_initialize(networks::AbstractVector{Tuple{T,N,Vector{Tuple{T,

# check if the source and destination networks exist
if !haskey(portdict,src)
throw(ArgumentError("Source (network name, port number) $(src) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
throw(ArgumentError("Source (network name, port number) ($(src_name), $(src_port)) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
end
if !haskey(portdict,dst)
throw(ArgumentError("Destination (network name, port number) $(dst) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
throw(ArgumentError("Destination (network name, port number) ($(dst_name), $(dst_port)) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
end

src_index, src_port_index = portdict[src]
Expand Down Expand Up @@ -1675,10 +1675,10 @@ function parse_connections_sparse(networks::AbstractVector{Tuple{T,N,Vector{Tupl

# check if the source and destination networks exist
if !haskey(portdict,src)
throw(ArgumentError("Source (network name, port number) $(src) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
throw(ArgumentError("Source (network name, port number) ($(src_name), $(src_port)) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
end
if !haskey(portdict,dst)
throw(ArgumentError("Destination (network name, port number) $(dst) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
throw(ArgumentError("Destination (network name, port number) ($(dst_name), $(dst_port)) not found for connection ($(src_name),$(dst_name),$(src_port),$(dst_port))."))
end

src_index = portdict[src]
Expand Down
Loading

0 comments on commit 732df4d

Please sign in to comment.