Skip to content

Commit a9327a6

Browse files
committed
move to inner constructors so they can use new
1 parent 32e94e9 commit a9327a6

File tree

1 file changed

+55
-50
lines changed

1 file changed

+55
-50
lines changed

src/verbosity.jl

Lines changed: 55 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -11,73 +11,76 @@ end
1111

1212
# Linear Verbosity
1313

14-
# linear_defaults = Dict(
15-
# :default_lu_fallback => Verbosity.Warn()
16-
# :no_right_preconditioning => Verbosity.Warn()
17-
# :using_iterative_solvers => Verbosity.Warn()
18-
# :using_IterativeSolvers => Verbosity.Warn()
19-
# :IterativeSolvers_iterations => Verbosity.Warn()
20-
# :KrylovKit_verbosity => Verbosity.Warn()
21-
# )
14+
linear_defaults = Dict(
15+
:default_lu_fallback => Verbosity.Warn(),
16+
:no_right_preconditioning => Verbosity.Warn(),
17+
:using_iterative_solvers => Verbosity.Warn(),
18+
:using_IterativeSolvers => Verbosity.Warn(),
19+
:IterativeSolvers_iterations => Verbosity.Warn(),
20+
:KrylovKit_verbosity => Verbosity.Warn()
21+
)
2222
mutable struct LinearErrorControlVerbosity
2323
default_lu_fallback::Verbosity.Type
2424

2525
function LinearErrorControlVerbosity(;
2626
default_lu_fallback = linear_defaults[:default_lu_fallback])
2727
new(default_lu_fallback)
2828
end
29-
end
3029

31-
function LinearErrorControlVerbosity(verbose::Verbosity.Type)
32-
@match verbose begin
33-
Verbosity.None() => LinearErrorControlVerbosity(fill(
34-
Verbosity.None(), length(fieldnames(LinearErrorControlVerbosity)))...)
30+
function LinearErrorControlVerbosity(verbose::Verbosity.Type)
31+
@match verbose begin
32+
Verbosity.None() => new(fill(
33+
Verbosity.None(), length(fieldnames(LinearErrorControlVerbosity)))...)
3534

36-
Verbosity.Info() => LinearErrorControlVerbosity(fill(
37-
Verbosity.Info(), length(fieldnames(LinearErrorControlVerbosity)))...)
35+
Verbosity.Info() => new(fill(
36+
Verbosity.Info(), length(fieldnames(LinearErrorControlVerbosity)))...)
3837

39-
Verbosity.Warn() => LinearErrorControlVerbosity(fill(
40-
Verbosity.Warn(), length(fieldnames(LinearErrorControlVerbosity)))...)
38+
Verbosity.Warn() => new(fill(
39+
Verbosity.Warn(), length(fieldnames(LinearErrorControlVerbosity)))...)
4140

42-
Verbosity.Error() => LinearErrorControlVerbosity(fill(
43-
Verbosity.Error(), length(fieldnames(LinearErrorControlVerbosity)))...)
41+
Verbosity.Error() => new(fill(
42+
Verbosity.Error(), length(fieldnames(LinearErrorControlVerbosity)))...)
4443

45-
Verbosity.Default() => LinearErrorControlVerbosity()
44+
Verbosity.Default() => LinearErrorControlVerbosity()
4645

47-
Verbosity.Edge() => LinearErrorControlVerbosity()
46+
Verbosity.Edge() => LinearErrorControlVerbosity()
4847

49-
_ => @error "Not a valid choice for verbosity."
48+
_ => @error "Not a valid choice for verbosity."
49+
end
5050
end
5151
end
5252

53+
5354
mutable struct LinearPerformanceVerbosity
5455
no_right_preconditioning::Verbosity.Type
56+
5557
function LinearPerformanceVerbosity(;
5658
no_right_preconditioning = linear_defaults[:no_right_preconditioning])
5759
new(no_right_preconditioning)
5860
end
59-
end
6061

61-
function LinearPerformanceVerbosity(verbose::Verbosity.Type)
62-
@match verbose begin
63-
Verbosity.None() => LinearPerformanceVerbosity(fill(
64-
Verbosity.None(), length(fieldnames(LinearPerformanceVerbosity)))...)
62+
function LinearPerformanceVerbosity(verbose::Verbosity.Type)
63+
@match verbose begin
64+
Verbosity.None() => new(fill(
65+
Verbosity.None(), length(fieldnames(LinearPerformanceVerbosity)))...)
6566

66-
Verbosity.Info() => LinearPerformanceVerbosity(fill(
67-
Verbosity.Info(), length(fieldnames(LinearPerformanceVerbosity)))...)
67+
Verbosity.Info() => new(fill(
68+
Verbosity.Info(), length(fieldnames(LinearPerformanceVerbosity)))...)
6869

69-
Verbosity.Warn() => LinearPerformanceVerbosity(fill(
70-
Verbosity.Warn(), length(fieldnames(LinearPerformanceVerbosity)))...)
70+
Verbosity.Warn() => new(fill(
71+
Verbosity.Warn(), length(fieldnames(LinearPerformanceVerbosity)))...)
7172

72-
Verbosity.Error() => LinearPerformanceVerbosity(fill(
73-
Verbosity.Error(), length(fieldnames(LinearPerformanceVerbosity)))...)
73+
Verbosity.Error() => new(fill(
74+
Verbosity.Error(), length(fieldnames(LinearPerformanceVerbosity)))...)
7475

75-
Verbosity.Default() => LinearPerformanceVerbosity()
76+
Verbosity.Default() => LinearPerformanceVerbosity()
7677

77-
Verbosity.Edge() => LinearPerformanceVerbosity()
78+
Verbosity.Edge() => LinearPerformanceVerbosity()
7879

79-
_ => @error "Not a valid choice for verbosity."
80+
_ => @error "Not a valid choice for verbosity."
81+
end
8082
end
83+
8184
end
8285

8386
mutable struct LinearNumericalVerbosity
@@ -91,30 +94,32 @@ mutable struct LinearNumericalVerbosity
9194
KrylovKit_verbosity = linear_defaults[:KrylovKit_verbosity])
9295
new(using_IterativeSolvers, IterativeSolvers_iterations, KrylovKit_verbosity)
9396
end
94-
end
9597

96-
function LinearNumericalVerbosity(verbose::Verbosity.Type)
97-
@match verbose begin
98-
Verbosity.None() => LinearNumericalVerbosity(fill(
99-
Verbosity.None(), length(fieldnames(LinearNumericalVerbosity)))...)
98+
function LinearNumericalVerbosity(verbose::Verbosity.Type)
99+
@match verbose begin
100+
Verbosity.None() => new(fill(
101+
Verbosity.None(), length(fieldnames(LinearNumericalVerbosity)))...)
100102

101-
Verbosity.Info() => LinearNumericalVerbosity(fill(
102-
Verbosity.Info(), length(fieldnames(LinearNumericalVerbosity)))...)
103+
Verbosity.Info() => new(fill(
104+
Verbosity.Info(), length(fieldnames(LinearNumericalVerbosity)))...)
103105

104-
Verbosity.Warn() => LinearNumericalVerbosity(fill(
105-
Verbosity.Warn(), length(fieldnames(LinearNumericalVerbosity)))...)
106+
Verbosity.Warn() => new(fill(
107+
Verbosity.Warn(), length(fieldnames(LinearNumericalVerbosity)))...)
106108

107-
Verbosity.Error() => LinearNumericalVerbosity(fill(
108-
Verbosity.Error(), length(fieldnames(LinearNumericalVerbosity)))...)
109+
Verbosity.Error() => new(fill(
110+
Verbosity.Error(), length(fieldnames(LinearNumericalVerbosity)))...)
109111

110-
Verbosity.Default() => LinearNumericalVerbosity()
112+
Verbosity.Default() => LinearNumericalVerbosity()
111113

112-
Verbosity.Edge() => LinearNumericalVerbosity()
114+
Verbosity.Edge() => LinearNumericalVerbosity()
113115

114-
_ => @error "Not a valid choice for verbosity."
116+
_ => @error "Not a valid choice for verbosity."
117+
end
115118
end
116119
end
117120

121+
122+
118123
struct LinearVerbosity{T} <: AbstractVerbositySpecifier{T}
119124
error_control::LinearErrorControlVerbosity
120125
performance::LinearPerformanceVerbosity

0 commit comments

Comments
 (0)