Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
62e9cf47
Commit
62e9cf47
authored
Aug 01, 2018
by
Davis King
Browse files
Fixed spelling and tabbing
parent
e3f984a2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
46 additions
and
46 deletions
+46
-46
dlib/matrix/matrix_la.h
dlib/matrix/matrix_la.h
+46
-46
No files found.
dlib/matrix/matrix_la.h
View file @
62e9cf47
...
@@ -1203,68 +1203,68 @@ convergence:
...
@@ -1203,68 +1203,68 @@ convergence:
if
(
A
.
nr
()
>
4
)
// Only test for banded matrix if matrix is big enough
if
(
A
.
nr
()
>
4
)
// Only test for banded matrix if matrix is big enough
{
{
// Detect if matrix is banded and, if so, matrix bandwidth
// Detect if matrix is banded and, if so, matrix bandwidth
banded
=
true
;
banded
=
true
;
for
(
long
r
=
0
;
r
<
A
.
nr
();
++
r
)
for
(
long
r
=
0
;
r
<
A
.
nr
();
++
r
)
for
(
long
c
=
(
r
+
bandwidth
+
1
);
c
<
A
.
nc
();
++
c
)
for
(
long
c
=
(
r
+
bandwidth
+
1
);
c
<
A
.
nc
();
++
c
)
if
(
A
(
r
,
c
)
!=
0
)
if
(
A
(
r
,
c
)
!=
0
)
{
bandwidth
=
c
-
r
;
if
(
bandwidth
>
A
.
nr
()
/
2
)
{
{
banded
=
false
;
bandwidth
=
c
-
r
;
goto
escape_banded_detection
;
if
(
bandwidth
>
A
.
nr
()
/
2
)
{
banded
=
false
;
goto
escape_banded_detection
;
}
}
}
}
}
}
escape_banded_detection:
escape_banded_detection:
if
(
banded
)
if
(
banded
)
{
{
// Store in compact form - use column major for LAPACK
// Store in compact form - use column major for LAPACK
matrix
<
T
,
0
,
0
,
default_memory_manager
,
column_major_layout
>
B
(
bandwidth
+
1
,
A
.
nc
());
matrix
<
T
,
0
,
0
,
default_memory_manager
,
column_major_layout
>
B
(
bandwidth
+
1
,
A
.
nc
());
set_all_elements
(
B
,
0
);
set_all_elements
(
B
,
0
);
for
(
long
r
=
0
;
r
<
A
.
nr
();
++
r
)
for
(
long
r
=
0
;
r
<
A
.
nr
();
++
r
)
for
(
long
c
=
r
;
c
<
std
::
min
(
r
+
bandwidth
+
1
,
A
.
nc
());
++
c
)
for
(
long
c
=
r
;
c
<
std
::
min
(
r
+
bandwidth
+
1
,
A
.
nc
());
++
c
)
B
(
c
-
r
,
r
)
=
A
(
r
,
c
);
B
(
c
-
r
,
r
)
=
A
(
r
,
c
);
#ifdef DLIB_USE_LAPACK
#ifdef DLIB_USE_LAPACK
lapack
::
pbtrf
(
'L'
,
B
);
lapack
::
pbtrf
(
'L'
,
B
);
#else
#else
// Peform compact Cholesky
// Pe
r
form compact Cholesky
for
(
long
k
=
0
;
k
<
A
.
nr
();
++
k
)
for
(
long
k
=
0
;
k
<
A
.
nr
();
++
k
)
{
{
long
last
=
std
::
min
(
k
+
bandwidth
,
A
.
nr
()
-
1
)
-
k
;
long
last
=
std
::
min
(
k
+
bandwidth
,
A
.
nr
()
-
1
)
-
k
;
for
(
long
j
=
1
;
j
<=
last
;
++
j
)
for
(
long
j
=
1
;
j
<=
last
;
++
j
)
{
{
long
i
=
k
+
j
;
long
i
=
k
+
j
;
for
(
long
c
=
0
;
c
<=
(
last
-
j
);
++
c
)
for
(
long
c
=
0
;
c
<=
(
last
-
j
);
++
c
)
B
(
c
,
i
)
-=
B
(
j
,
k
)
/
B
(
0
,
k
)
*
B
(
c
+
j
,
k
);
B
(
c
,
i
)
-=
B
(
j
,
k
)
/
B
(
0
,
k
)
*
B
(
c
+
j
,
k
);
}
}
T
norm
=
std
::
sqrt
(
B
(
0
,
k
));
T
norm
=
std
::
sqrt
(
B
(
0
,
k
));
for
(
long
i
=
0
;
i
<=
bandwidth
;
++
i
)
for
(
long
i
=
0
;
i
<=
bandwidth
;
++
i
)
B
(
i
,
k
)
/=
norm
;
B
(
i
,
k
)
/=
norm
;
}
}
for
(
long
c
=
A
.
nc
()
-
bandwidth
+
1
;
c
<
A
.
nc
();
++
c
)
for
(
long
c
=
A
.
nc
()
-
bandwidth
+
1
;
c
<
A
.
nc
();
++
c
)
B
(
bandwidth
,
c
)
=
0
;
B
(
bandwidth
,
c
)
=
0
;
#endif
#endif
// Unpack lower triangular area
// Unpack lower triangular area
set_all_elements
(
L
,
0
);
set_all_elements
(
L
,
0
);
for
(
long
c
=
0
;
c
<
A
.
nc
();
++
c
)
for
(
long
c
=
0
;
c
<
A
.
nc
();
++
c
)
for
(
long
i
=
0
;
i
<=
bandwidth
;
++
i
)
for
(
long
i
=
0
;
i
<=
bandwidth
;
++
i
)
{
{
long
ind
=
c
+
i
;
long
ind
=
c
+
i
;
if
(
ind
<
A
.
nc
())
if
(
ind
<
A
.
nc
())
L
(
ind
,
c
)
=
B
(
i
,
c
);
L
(
ind
,
c
)
=
B
(
i
,
c
);
}
}
return
L
;
return
L
;
}
}
#ifdef DLIB_USE_LAPACK
#ifdef DLIB_USE_LAPACK
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment