diff --git a/Project.toml b/Project.toml index ba97306..c7f2cdf 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "TensorNetworkSolvers" uuid = "62d5c68e-057c-4e85-9e57-968d0954630a" -version = "0.1.0" +version = "0.1.1" authors = ["ITensor developers and contributors"] [workspace] diff --git a/docs/make.jl b/docs/make.jl index 208e551..cad6ef8 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,5 +1,5 @@ -using TensorNetworkSolvers: TensorNetworkSolvers using Documenter: Documenter, DocMeta, deploydocs, makedocs +using TensorNetworkSolvers: TensorNetworkSolvers DocMeta.setdocmeta!( TensorNetworkSolvers, :DocTestSetup, :(using TensorNetworkSolvers); recursive = true @@ -14,11 +14,12 @@ makedocs(; format = Documenter.HTML(; canonical = "https://itensor.github.io/TensorNetworkSolvers.jl", edit_link = "main", - assets = ["assets/favicon.ico", "assets/extras.css"], + assets = ["assets/favicon.ico", "assets/extras.css"] ), - pages = ["Home" => "index.md", "Reference" => "reference.md"], + pages = ["Home" => "index.md", "Reference" => "reference.md"] ) deploydocs(; - repo = "github.com/ITensor/TensorNetworkSolvers.jl", devbranch = "main", push_preview = true + repo = "github.com/ITensor/TensorNetworkSolvers.jl", devbranch = "main", + push_preview = true ) diff --git a/docs/make_index.jl b/docs/make_index.jl index 4a928f1..f41744c 100644 --- a/docs/make_index.jl +++ b/docs/make_index.jl @@ -17,5 +17,5 @@ Literate.markdown( joinpath(pkgdir(TensorNetworkSolvers), "docs", "src"); flavor = Literate.DocumenterFlavor(), name = "index", - postprocess = ccq_logo, + postprocess = ccq_logo ) diff --git a/docs/make_readme.jl b/docs/make_readme.jl index f6cfa55..5038f62 100644 --- a/docs/make_readme.jl +++ b/docs/make_readme.jl @@ -17,5 +17,5 @@ Literate.markdown( joinpath(pkgdir(TensorNetworkSolvers)); flavor = Literate.CommonMarkFlavor(), name = "README", - postprocess = ccq_logo, + postprocess = ccq_logo ) diff --git a/src/AlgorithmsInterfaceExtensions.jl b/src/AlgorithmsInterfaceExtensions.jl index df636b2..5e6782c 100644 --- a/src/AlgorithmsInterfaceExtensions.jl +++ b/src/AlgorithmsInterfaceExtensions.jl @@ -1,8 +1,6 @@ module AlgorithmsInterfaceExtensions -import AlgorithmsInterface as AI - -#========================== Patches for AlgorithmsInterface.jl ============================# +import AlgorithmsInterface as AI #========================== Patches for AlgorithmsInterface.jl ============================# abstract type Problem <: AI.Problem end abstract type Algorithm <: AI.Algorithm end @@ -25,9 +23,7 @@ function AI.initialize_state( problem, algorithm, algorithm.stopping_criterion ) return DefaultState(; stopping_criterion_state, kwargs...) -end - -#============================ DefaultState ================================================# +end #============================ DefaultState ================================================# @kwdef mutable struct DefaultState{ Iterate, StoppingCriterionState <: AI.StoppingCriterionState, @@ -35,16 +31,12 @@ end iterate::Iterate iteration::Int = 0 stopping_criterion_state::StoppingCriterionState -end - -#============================ increment! ==================================================# +end #============================ increment! ==================================================# # Custom version of `increment!` that also takes the problem and algorithm as arguments. function AI.increment!(problem::Problem, algorithm::Algorithm, state::State) return AI.increment!(state) -end - -#============================ solve! ======================================================# +end #============================ solve! ======================================================# # Custom version of `solve!` that allows specifying the logger and also overloads # `increment!` on the problem and algorithm. @@ -55,13 +47,13 @@ default_logging_context_prefix(x) = Symbol(basetypenameof(x), :_) function default_logging_context_prefix(problem::Problem, algorithm::Algorithm) return Symbol( default_logging_context_prefix(problem), - default_logging_context_prefix(algorithm), + default_logging_context_prefix(algorithm) ) end function AI.solve!( problem::Problem, algorithm::Algorithm, state::State; logging_context_prefix = default_logging_context_prefix(problem, algorithm), - kwargs..., + kwargs... ) logger = AI.algorithm_logger() @@ -94,13 +86,11 @@ end function AI.solve( problem::Problem, algorithm::Algorithm; logging_context_prefix = default_logging_context_prefix(problem, algorithm), - kwargs..., + kwargs... ) state = AI.initialize_state(problem, algorithm; kwargs...) return AI.solve!(problem, algorithm, state; logging_context_prefix, kwargs...) -end - -#============================ AlgorithmIterator ===========================================# +end #============================ AlgorithmIterator ===========================================# abstract type AlgorithmIterator end @@ -133,9 +123,7 @@ struct DefaultAlgorithmIterator{Problem, Algorithm, State} <: AlgorithmIterator problem::Problem algorithm::Algorithm state::State -end - -#============================ with_algorithmlogger ========================================# +end #============================ with_algorithmlogger ========================================# # Allow passing functions, not just CallbackActions. @inline function with_algorithmlogger(f, args::Pair{Symbol, AI.LoggingAction}...) @@ -143,9 +131,7 @@ end end @inline function with_algorithmlogger(f, args::Pair{Symbol}...) return AI.with_algorithmlogger(f, (first.(args) .=> AI.CallbackAction.(last.(args)))...) -end - -#============================ NestedAlgorithm =============================================# +end #============================ NestedAlgorithm =============================================# abstract type NestedAlgorithm <: Algorithm end @@ -205,9 +191,7 @@ from a list of stored algorithms. end function DefaultNestedAlgorithm(f::Function, nalgorithms::Int; kwargs...) return DefaultNestedAlgorithm(; algorithms = f.(1:nalgorithms), kwargs...) -end - -#============================ FlattenedAlgorithm ==========================================# +end #============================ FlattenedAlgorithm ==========================================# # Flatten a nested algorithm. abstract type FlattenedAlgorithm <: Algorithm end diff --git a/src/eigenproblem.jl b/src/eigenproblem.jl index 2b4ec37..a35b957 100644 --- a/src/eigenproblem.jl +++ b/src/eigenproblem.jl @@ -1,5 +1,5 @@ -import AlgorithmsInterface as AI import .AlgorithmsInterfaceExtensions as AIE +import AlgorithmsInterface as AI maybe_fill(value, len::Int) = fill(value, len) function maybe_fill(v::AbstractVector, len::Int) @@ -43,7 +43,7 @@ function select_algorithm(::typeof(dmrg), operator, state; nsweeps, regions, reg return Sweeping(nsweeps) do i return select_algorithm( dmrg_sweep, operator, state; - regions, region_kwargs = region_kwargs′[i], + regions, region_kwargs = region_kwargs′[i] ) end end @@ -60,7 +60,8 @@ end function AI.step!(problem::EigenProblem, algorithm::Sweep, state::AI.State; kwargs...) iterate = solve_region!!( - problem, algorithm.region_algorithms[state.iteration](state.iterate), state.iterate + problem, algorithm.region_algorithms[state.iteration](state.iterate), + state.iterate ) state.iterate = iterate return state @@ -84,7 +85,8 @@ function solve_region!!(problem::EigenProblem, algorithm::RegionAlgorithm, state =# # Dummy update for demonstration purposes. - state′ = "region = $region" * + state′ = + "region = $region" * ", update_kwargs = $(region_kwargs.update)" * ", insert_kwargs = $(region_kwargs.insert)" state = [state; [state′]] diff --git a/src/sweep.jl b/src/sweep.jl index 2c250e9..aa3b861 100644 --- a/src/sweep.jl +++ b/src/sweep.jl @@ -1,5 +1,5 @@ -import AlgorithmsInterface as AI import .AlgorithmsInterfaceExtensions as AIE +import AlgorithmsInterface as AI @kwdef struct Sweeping{ Algorithms <: AbstractVector{<:AI.Algorithm}, diff --git a/test/runtests.jl b/test/runtests.jl index 2124a45..e5afded 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -13,15 +13,20 @@ const GROUP = uppercase( arg == "" ? "ALL" : arg else only(match(pat, ARGS[arg_id]).captures) - end, + end ) -"match files of the form `test_*.jl`, but exclude `*setup*.jl`" +""" +match files of the form `test_*.jl`, but exclude `*setup*.jl` +""" function istestfile(path) fn = basename(path) - return endswith(fn, ".jl") && startswith(basename(fn), "test_") && !contains(fn, "setup") + return endswith(fn, ".jl") && startswith(basename(fn), "test_") && + !contains(fn, "setup") end -"match files of the form `*.jl`, but exclude `*_notest.jl` and `*setup*.jl`" +""" +match files of the form `*.jl`, but exclude `*_notest.jl` and `*setup*.jl` +""" function isexamplefile(path) fn = basename(path) return endswith(fn, ".jl") && !endswith(fn, "_notest.jl") && !contains(fn, "setup") @@ -60,7 +65,7 @@ end :macrocall, GlobalRef(Suppressor, Symbol("@suppress")), LineNumberNode(@__LINE__, @__FILE__), - :(include($filename)), + :(include($filename)) ) ) end diff --git a/test/test_aqua.jl b/test/test_aqua.jl index e2ca4ae..1d5b0ba 100644 --- a/test/test_aqua.jl +++ b/test/test_aqua.jl @@ -1,5 +1,5 @@ -using TensorNetworkSolvers: TensorNetworkSolvers using Aqua: Aqua +using TensorNetworkSolvers: TensorNetworkSolvers using Test: @testset @testset "Code quality (Aqua.jl)" begin diff --git a/test/test_basics.jl b/test/test_basics.jl index 6ae0213..e0d4b34 100644 --- a/test/test_basics.jl +++ b/test/test_basics.jl @@ -1,7 +1,7 @@ import AlgorithmsInterface as AI +import TensorNetworkSolvers.AlgorithmsInterfaceExtensions as AIE using Graphs: path_graph using TensorNetworkSolvers: EigenProblem, Region, Sweep, Sweeping, dmrg, dmrg_sweep -import TensorNetworkSolvers.AlgorithmsInterfaceExtensions as AIE using Test: @test, @testset @testset "TensorNetworkSolvers" begin @@ -160,7 +160,7 @@ using Test: @test, @testset :EigenProblem_Sweeping_PreStep => print_dmrg_prestep, :EigenProblem_Sweeping_PostStep => print_dmrg_poststep, :EigenProblem_Sweeping_Sweep_Start => print_sweep_start, - :EigenProblem_Sweeping_Sweep_PostStep => print_sweep_poststep, + :EigenProblem_Sweeping_Sweep_PostStep => print_sweep_poststep ) do x = dmrg(operator, x0; nsweeps, regions, region_kwargs) return x