11 integer(IK),
allocatable :: rperm(:), rperm_ref(:)
14 type(display_type) :: disp
18 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
19 call disp%show(
"! Compute the LU-Pivoted decomposition of a real square matrix.")
20 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
25 real(TKG),
allocatable :: mat_lup(:,:), lup_ref(:,:)
26 mat_lup
= reshape( [
1.0_TKG,
+1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG,
2.4_TKG,
2.6_TKG &
27 ,
1.2_TKG,
+1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG,
2.4_TKG &
28 ,
1.4_TKG,
+1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG &
29 ,
1.6_TKG,
+1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG &
30 ,
1.8_TKG,
+1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG &
31 ,
2.0_TKG,
+1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG &
32 ,
2.2_TKG,
+2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG &
33 ,
2.4_TKG,
+2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG &
34 ,
2.6_TKG,
+2.4_TKG,
2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG &
35 ], shape
= [
9,
9], order
= [
2,
1])
36 lup_ref
= reshape( [
2.6_TKG,
2.4_TKG,
2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG &
37 ,
0.4_TKG,
0.3_TKG,
0.6_TKG,
0.8_TKG,
1.1_TKG,
1.4_TKG,
1.7_TKG,
1.9_TKG,
2.2_TKG &
38 ,
0.5_TKG,
-0.4_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG,
2.4_TKG,
2.8_TKG &
39 ,
0.5_TKG,
-0.3_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG,
2.4_TKG &
40 ,
0.6_TKG,
-0.3_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG &
41 ,
0.7_TKG,
-0.2_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG &
42 ,
0.8_TKG,
-0.2_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG &
43 ,
0.8_TKG,
-0.1_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG &
44 ,
0.9_TKG,
-0.1_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG &
45 ], shape
= [
9,
9], order
= [
2,
1])
46 rperm_ref
= [
9,
9,
9,
9,
9,
9,
9,
9,
9]
50 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK))")
52 call disp%show(
"call setMatLUP(mat_lup, rperm, info); if (info /= 0) error stop")
53 call setMatLUP(mat_lup, rperm, info);
if (info
/= 0)
error stop
56 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK)) ! reconstruct the original matrix.")
58 call disp%show(
"lup_ref ! reference matrix rounded to 1 significant digit.")
60 call disp%show(
"lup_ref - mat_lup, format = SK_'(*(f0.1,:,"", ""))'")
61 call disp%show( lup_ref
- mat_lup,
format = SK_
"(*(f0.1,:,"", ""))")
71 real(TKG),
allocatable :: mat_lup(:,:), lup_ref(:,:)
72 mat_lup
= reshape( [
1.0_TKG,
+1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG,
2.4_TKG,
2.6_TKG &
73 ,
1.2_TKG,
+1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG,
2.4_TKG &
74 ,
1.4_TKG,
+1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG &
75 ,
1.6_TKG,
+1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG &
76 ,
1.8_TKG,
+1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG &
77 ,
2.0_TKG,
+1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG &
78 ,
2.2_TKG,
+2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG &
79 ,
2.4_TKG,
+2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG &
80 ,
2.6_TKG,
+2.4_TKG,
2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG &
81 ], shape
= [
9,
9], order
= [
2,
1])
82 lup_ref
= reshape( [
2.6_TKG,
2.4_TKG,
2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG &
83 ,
0.4_TKG,
0.3_TKG,
0.6_TKG,
0.8_TKG,
1.1_TKG,
1.4_TKG,
1.7_TKG,
1.9_TKG,
2.2_TKG &
84 ,
0.5_TKG,
-0.4_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG,
2.4_TKG,
2.8_TKG &
85 ,
0.5_TKG,
-0.3_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG,
2.4_TKG &
86 ,
0.6_TKG,
-0.3_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG &
87 ,
0.7_TKG,
-0.2_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG &
88 ,
0.8_TKG,
-0.2_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG &
89 ,
0.8_TKG,
-0.1_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG &
90 ,
0.9_TKG,
-0.1_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG &
91 ], shape
= [
9,
9], order
= [
2,
1])
92 rperm_ref
= [
9,
9,
9,
9,
9,
9,
9,
9,
9]
96 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK))")
98 call disp%show(
"call setMatLUP(mat_lup, rperm, info); if (info /= 0) error stop")
99 call setMatLUP(mat_lup, rperm, info);
if (info
/= 0)
error stop
102 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK)) ! reconstruct the original matrix.")
104 call disp%show(
"lup_ref ! reference matrix rounded to 1 significant digit.")
106 call disp%show(
"lup_ref - mat_lup, format = SK_'(*(f0.1,:,"", ""))'")
107 call disp%show( lup_ref
- mat_lup,
format = SK_
"(*(f0.1,:,"", ""))")
117 real(TKG),
allocatable :: mat_lup(:,:), lup_ref(:,:)
118 mat_lup
= reshape( [
1.0_TKG,
+1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG,
2.4_TKG,
2.6_TKG &
119 ,
1.2_TKG,
+1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG,
2.4_TKG &
120 ,
1.4_TKG,
+1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG,
2.2_TKG &
121 ,
1.6_TKG,
+1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG,
2.0_TKG &
122 ,
1.8_TKG,
+1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG,
1.8_TKG &
123 ,
2.0_TKG,
+1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG,
1.6_TKG &
124 ,
2.2_TKG,
+2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG,
1.4_TKG &
125 ,
2.4_TKG,
+2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG,
1.2_TKG &
126 ,
2.6_TKG,
+2.4_TKG,
2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG &
127 ], shape
= [
9,
9], order
= [
2,
1])
128 lup_ref
= reshape( [
2.6_TKG,
2.4_TKG,
2.2_TKG,
2.0_TKG,
1.8_TKG,
1.6_TKG,
1.4_TKG,
1.2_TKG,
1.0_TKG &
129 ,
0.4_TKG,
0.3_TKG,
0.6_TKG,
0.8_TKG,
1.1_TKG,
1.4_TKG,
1.7_TKG,
1.9_TKG,
2.2_TKG &
130 ,
0.5_TKG,
-0.4_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG,
2.4_TKG,
2.8_TKG &
131 ,
0.5_TKG,
-0.3_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG,
2.4_TKG &
132 ,
0.6_TKG,
-0.3_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG,
2.0_TKG &
133 ,
0.7_TKG,
-0.2_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG,
1.6_TKG &
134 ,
0.8_TKG,
-0.2_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG,
1.2_TKG &
135 ,
0.8_TKG,
-0.1_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG,
0.8_TKG &
136 ,
0.9_TKG,
-0.1_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.0_TKG,
0.4_TKG &
137 ], shape
= [
9,
9], order
= [
2,
1])
138 rperm_ref
= [
9,
9,
9,
9,
9,
9,
9,
9,
9]
142 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK))")
144 call disp%show(
"call setMatLUP(mat_lup, rperm, info); if (info /= 0) error stop")
145 call setMatLUP(mat_lup, rperm, info);
if (info
/= 0)
error stop
148 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK)) ! reconstruct the original matrix.")
150 call disp%show(
"lup_ref ! reference matrix rounded to 1 significant digit.")
152 call disp%show(
"lup_ref - mat_lup, format = SK_'(*(f0.1,:,"", ""))'")
153 call disp%show( lup_ref
- mat_lup,
format = SK_
"(*(f0.1,:,"", ""))")
161#if 1 || LAPACK_ENABLED
163 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
164 call disp%show(
"! Compute the LU-Pivoted decomposition of a complex square matrix.")
165 call disp%show(
"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%")
170 complex(TKG),
allocatable :: mat_lup(:,:), lup_ref(:,:)
171 mat_lup
= reshape( [ (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0), (
4.8,
-1.0), (
5.2,
-1.0)
&
172 , (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0), (
4.8,
-1.0)
&
173 , (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0)
&
174 , (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0)
&
175 , (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0)
&
176 , (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0)
&
177 , (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0)
&
178 , (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0)
&
179 , (
5.2,
1.0), (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0)
&
180 ], shape
= [
9,
9], order
= [
2,
1])
181 lup_ref
= reshape( [ (
5.2,
1.0), (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
+3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0)
&
182 , (
0.4,
0.1), (
0.6,
-2.0), (
1.1,
-1.9), (
1.7,
-1.9), (
+2.3,
-1.8), (
2.8,
-1.8), (
3.4,
-1.7), (
3.9,
-1.7), (
4.5,
-1.6)
&
183 , (
0.5,
0.1), (
0.0,
-0.1), (
0.6,
-1.9), (
1.2,
-1.8), (
+1.8,
-1.7), (
2.5,
-1.6), (
3.1,
-1.5), (
3.7,
-1.4), (
4.3,
-1.3)
&
184 , (
0.6,
0.1), (
0.0,
-0.1),(
-0.1,
-0.1), (
0.7,
-1.9), (
+1.3,
-1.7), (
2.0,
-1.6), (
2.7,
-1.5), (
3.4,
-1.4), (
4.0,
-1.2)
&
185 , (
0.6,
0.1), (
0.0,
-0.1),(
-0.1,
-0.1),(
-0.1,
0.0), (
+0.7,
-1.9), (
1.5,
-1.7), (
2.2,
-1.6), (
2.9,
-1.5), (
3.7,
-1.3)
&
186 , (
0.7,
0.1), (
0.0,
-0.1), (
0.0,
0.0),(
-0.1,
0.0), (
-0.1,
0.0), (
0.8,
-1.9), (
1.6,
-1.8), (
2.4,
-1.6), (
3.2,
-1.5)
&
187 , (
0.8,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.8,
-1.9), (
1.7,
-1.8), (
2.5,
-1.8)
&
188 , (
0.9,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.8,
-2.0), (
1.7,
-1.9)
&
189 , (
0.9,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.8,
-2.0)
&
190 ], shape
= [
9,
9], order
= [
2,
1])
191 rperm_ref
= [
9,
9,
9,
9,
9,
9,
9,
9,
9]
195 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK))")
197 call disp%show(
"call setMatLUP(mat_lup, rperm, info); if (info /= 0) error stop")
198 call setMatLUP(mat_lup, rperm, info);
if (info
/= 0)
error stop
201 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK)) ! reconstruct the original matrix.")
203 call disp%show(
"lup_ref ! reference matrix rounded to 1 significant digit.")
205 call disp%show(
"lup_ref - mat_lup, format = SK_'(*(""("",f0.1,"","",f0.1,"")"",:,"", ""))'")
206 call disp%show( lup_ref
- mat_lup,
format = SK_
"(*(""("",f0.1,"","",f0.1,"")"",:,"", ""))")
216 complex(TKG),
allocatable :: mat_lup(:,:), lup_ref(:,:)
217 mat_lup
= reshape( [ (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0), (
4.8,
-1.0), (
5.2,
-1.0)
&
218 , (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0), (
4.8,
-1.0)
&
219 , (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0)
&
220 , (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0)
&
221 , (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0)
&
222 , (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0)
&
223 , (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0)
&
224 , (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0)
&
225 , (
5.2,
1.0), (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0)
&
226 ], shape
= [
9,
9], order
= [
2,
1])
227 lup_ref
= reshape( [ (
5.2,
1.0), (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
+3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0)
&
228 , (
0.4,
0.1), (
0.6,
-2.0), (
1.1,
-1.9), (
1.7,
-1.9), (
+2.3,
-1.8), (
2.8,
-1.8), (
3.4,
-1.7), (
3.9,
-1.7), (
4.5,
-1.6)
&
229 , (
0.5,
0.1), (
0.0,
-0.1), (
0.6,
-1.9), (
1.2,
-1.8), (
+1.8,
-1.7), (
2.5,
-1.6), (
3.1,
-1.5), (
3.7,
-1.4), (
4.3,
-1.3)
&
230 , (
0.6,
0.1), (
0.0,
-0.1),(
-0.1,
-0.1), (
0.7,
-1.9), (
+1.3,
-1.7), (
2.0,
-1.6), (
2.7,
-1.5), (
3.4,
-1.4), (
4.0,
-1.2)
&
231 , (
0.6,
0.1), (
0.0,
-0.1),(
-0.1,
-0.1),(
-0.1,
0.0), (
+0.7,
-1.9), (
1.5,
-1.7), (
2.2,
-1.6), (
2.9,
-1.5), (
3.7,
-1.3)
&
232 , (
0.7,
0.1), (
0.0,
-0.1), (
0.0,
0.0),(
-0.1,
0.0), (
-0.1,
0.0), (
0.8,
-1.9), (
1.6,
-1.8), (
2.4,
-1.6), (
3.2,
-1.5)
&
233 , (
0.8,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.8,
-1.9), (
1.7,
-1.8), (
2.5,
-1.8)
&
234 , (
0.9,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.8,
-2.0), (
1.7,
-1.9)
&
235 , (
0.9,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.8,
-2.0)
&
236 ], shape
= [
9,
9], order
= [
2,
1])
237 rperm_ref
= [
9,
9,
9,
9,
9,
9,
9,
9,
9]
241 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK))")
243 call disp%show(
"call setMatLUP(mat_lup, rperm, info); if (info /= 0) error stop")
244 call setMatLUP(mat_lup, rperm, info);
if (info
/= 0)
error stop
247 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK)) ! reconstruct the original matrix.")
249 call disp%show(
"lup_ref ! reference matrix rounded to 1 significant digit.")
251 call disp%show(
"lup_ref - mat_lup, format = SK_'(*(""("",f0.1,"","",f0.1,"")"",:,"", ""))'")
252 call disp%show( lup_ref
- mat_lup,
format = SK_
"(*(""("",f0.1,"","",f0.1,"")"",:,"", ""))")
262 complex(TKG),
allocatable :: mat_lup(:,:), lup_ref(:,:)
263 mat_lup
= reshape( [ (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0), (
4.8,
-1.0), (
5.2,
-1.0)
&
264 , (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0), (
4.8,
-1.0)
&
265 , (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0), (
4.4,
-1.0)
&
266 , (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0), (
4.0,
-1.0)
&
267 , (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0), (
3.6,
-1.0)
&
268 , (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0), (
3.2,
-1.0)
&
269 , (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0), (
2.8,
-1.0)
&
270 , (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0), (
2.4,
-1.0)
&
271 , (
5.2,
1.0), (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0)
&
272 ], shape
= [
9,
9], order
= [
2,
1])
273 lup_ref
= reshape( [ (
5.2,
1.0), (
4.8,
1.0), (
4.4,
1.0), (
4.0,
1.0), (
+3.6,
1.0), (
3.2,
1.0), (
2.8,
1.0), (
2.4,
1.0), (
2.0,
1.0)
&
274 , (
0.4,
0.1), (
0.6,
-2.0), (
1.1,
-1.9), (
1.7,
-1.9), (
+2.3,
-1.8), (
2.8,
-1.8), (
3.4,
-1.7), (
3.9,
-1.7), (
4.5,
-1.6)
&
275 , (
0.5,
0.1), (
0.0,
-0.1), (
0.6,
-1.9), (
1.2,
-1.8), (
+1.8,
-1.7), (
2.5,
-1.6), (
3.1,
-1.5), (
3.7,
-1.4), (
4.3,
-1.3)
&
276 , (
0.6,
0.1), (
0.0,
-0.1),(
-0.1,
-0.1), (
0.7,
-1.9), (
+1.3,
-1.7), (
2.0,
-1.6), (
2.7,
-1.5), (
3.4,
-1.4), (
4.0,
-1.2)
&
277 , (
0.6,
0.1), (
0.0,
-0.1),(
-0.1,
-0.1),(
-0.1,
0.0), (
+0.7,
-1.9), (
1.5,
-1.7), (
2.2,
-1.6), (
2.9,
-1.5), (
3.7,
-1.3)
&
278 , (
0.7,
0.1), (
0.0,
-0.1), (
0.0,
0.0),(
-0.1,
0.0), (
-0.1,
0.0), (
0.8,
-1.9), (
1.6,
-1.8), (
2.4,
-1.6), (
3.2,
-1.5)
&
279 , (
0.8,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.8,
-1.9), (
1.7,
-1.8), (
2.5,
-1.8)
&
280 , (
0.9,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.8,
-2.0), (
1.7,
-1.9)
&
281 , (
0.9,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
+0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.0,
0.0), (
0.8,
-2.0)
&
282 ], shape
= [
9,
9], order
= [
2,
1])
283 rperm_ref
= [
9,
9,
9,
9,
9,
9,
9,
9,
9]
287 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK))")
289 call disp%show(
"call setMatLUP(mat_lup, rperm, info); if (info /= 0) error stop")
290 call setMatLUP(mat_lup, rperm, info);
if (info
/= 0)
error stop
293 call disp%show(
"call setResized(rperm, size(mat_lup, 1, IK)) ! reconstruct the original matrix.")
295 call disp%show(
"lup_ref ! reference matrix rounded to 1 significant digit.")
297 call disp%show(
"lup_ref - mat_lup, format = SK_'(*(""("",f0.1,"","",f0.1,"")"",:,"", ""))'")
298 call disp%show( lup_ref
- mat_lup,
format = SK_
"(*(""("",f0.1,"","",f0.1,"")"",:,"", ""))")
Allocate or resize (shrink or expand) an input allocatable scalar string or array of rank 1....
This is a generic method of the derived type display_type with pass attribute.
This is a generic method of the derived type display_type with pass attribute.
Copy a desired subset of the input source matrix of arbitrary shape (:) or (:,:) to the target subset...
This module contains procedures and generic interfaces for resizing allocatable arrays of various typ...
This module contains classes and procedures for input/output (IO) or generic display operations on st...
type(display_type) disp
This is a scalar module variable an object of type display_type for general display.
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
integer, parameter CKH
The scalar integer constant of intrinsic default kind, representing the highest-precision complex kin...
integer, parameter CKS
The single-precision complex kind in Fortran mode. On most platforms, this is a 32-bit real kind.
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
integer, parameter CKD
The double precision complex kind in Fortran mode. On most platforms, this is a 64-bit real kind.
integer, parameter RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
integer, parameter RKH
The scalar integer constant of intrinsic default kind, representing the highest-precision real kind t...
integer, parameter RKS
The single-precision real kind in Fortran mode. On most platforms, this is an 32-bit real kind.
This module contains procedures and generic interfaces relevant to copying (diagonal or upper/lower t...
Generate and return an object of type display_type.