Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polar decomposition QDWH #2

Open
wants to merge 50 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
37a6768
Tow-norm estimation
Oct 27, 2022
9b47c71
Added the polar decomposition QDWH
Oct 27, 2022
ea1f5d4
Added costumized geqrf and unmqr
Oct 31, 2022
554769f
Test qdwh
Oct 31, 2022
3fa51a1
call geqrf/unmqr_qdwh_full
Oct 31, 2022
ad698cc
Added qdwh codes to slate.hh and to makefile
Oct 31, 2022
d9abb8f
fixes on i_end and on releasing tiles
Nov 10, 2022
8dcff02
Set C to zero will make gemmA work
Nov 10, 2022
f379a01
minor cleaning and add todo
Nov 10, 2022
63df04a
Allocate W with number of rows is roundup(number of A rows) + n to av…
Dec 12, 2022
0278c69
Fixes to have qdwh work for matrix with m > n
Dec 14, 2022
458b8b9
add itqr and itpo to qdwh interace, and change H matrix to Hermitian
Dec 21, 2022
44e7c65
Save the hermitian polar factor into a general matrix for now. Add op…
Jan 5, 2023
1e5e034
rename normest and cleaning it
Jan 6, 2023
12c151c
change header of norm2est and call it in qdwh
Jan 6, 2023
c2e4870
rename normest and minor change
Jan 6, 2023
a0aa605
delete
Jan 6, 2023
c8516a9
minor cleaning
Jan 6, 2023
c21a993
pass opts to calls
Jan 6, 2023
7e9c00e
Use H innstead of new allocation in case of square matrix. Rename B to H
Jan 9, 2023
04f06d9
Added exit with error if #itr > 100 in qdwh and minor cleaning
Jan 10, 2023
ce9ef1c
Used real_t to cast numbers inn while-loop and minor cleaning
Jan 17, 2023
7c68831
Fixed W2 allocation in norm2est to have it work with grid pxq where p…
Jan 23, 2023
ca1db42
minor on printf
Jan 23, 2023
351ab6a
merge in the master
Jan 25, 2023
3afc4cb
throw err if invalid target
Jan 30, 2023
5b19e0a
minor on doc
Jan 30, 2023
952b11b
remove nvToolsExt.h
Jan 30, 2023
398703d
minor
Jan 30, 2023
d546c84
remove redifned SLATE_HAVE_SCALAPACK
Jan 30, 2023
6d48ec2
Added qdwh to run_tests. Trying to fix dd computing in qdwh and used …
Jan 31, 2023
2acf396
Removed an extra allocation
Feb 1, 2023
516cae6
Changed dd to avoid overflow
Feb 2, 2023
22e050a
test ill-condÃ
Feb 2, 2023
6ea76e6
Fix in makefil, used impl namesapce and minor to the docs in geqrf_qd…
Feb 2, 2023
a7d423f
minor fixes
Feb 2, 2023
3bcf929
--amend
Feb 2, 2023
a09c758
Applied Mark's comments
Feb 2, 2023
cdfc10c
Replaced namespace by impl in umnqr_qdwh_full. Changed n to mn in run…
Feb 2, 2023
fab06a1
qdwh works m >= n
Feb 2, 2023
deec809
fix flops count
Feb 3, 2023
169a63d
minor
Feb 6, 2023
fc35842
add const and delete dead code
Feb 6, 2023
2be83cd
moving const up and minor changes
Feb 6, 2023
23bc075
test matrices with a smaller cond
Feb 6, 2023
c8c88bb
Computed parameters in double to avoid overflow in complex-float. Min…
Feb 7, 2023
531ca62
Added geqrf_compute_first_indices to internal_util.hh and removed it …
Feb 7, 2023
8ce87db
fix flops count
Feb 9, 2023
34e0afa
Delete un needed matrix allocation
Mar 31, 2023
d25e419
Changed device_malloc and used gemmC in norm2est (for now)
Apr 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -508,6 +508,7 @@ ifneq ($(only_unit),1)
src/gemmA.cc \
src/gemmC.cc \
src/geqrf.cc \
src/geqrf_qdwh_full.cc \
src/gesv.cc \
src/gesvMixed.cc \
src/gesv_nopiv.cc \
Expand All @@ -534,6 +535,7 @@ ifneq ($(only_unit),1)
src/hetrf.cc \
src/hetrs.cc \
src/norm.cc \
src/norm2est.cc \
src/pbsv.cc \
src/pbtrf.cc \
src/pbtrs.cc \
Expand All @@ -543,6 +545,7 @@ ifneq ($(only_unit),1)
src/potri.cc \
src/potrs.cc \
src/print.cc \
src/qdwh.cc \
src/scale.cc \
src/scale_row_col.cc \
src/set.cc \
Expand All @@ -565,6 +568,7 @@ ifneq ($(only_unit),1)
src/unmqr.cc \
src/unmtr_hb2st.cc \
src/unmtr_he2hb.cc \
src/unmqr_qdwh_full.cc \
src/work/work_trmm.cc \
src/work/work_trsm.cc \
src/work/work_trsmA.cc \
Expand Down Expand Up @@ -672,6 +676,7 @@ ifneq ($(have_fortran),)
test/pdlantr.f \
test/pclantr.f \
test/pzlantr.f \
test/test_qdwh.cc \
# End. Add alphabetically, by base name after precision.
endif
endif
Expand Down
36 changes: 36 additions & 0 deletions include/slate/slate.hh
Original file line number Diff line number Diff line change
Expand Up @@ -1107,6 +1107,42 @@ void trcondest(
blas::real_type<scalar_t> *rcond,
Options const& opts = Options());

//-----------------------------------------
// Polar Decomposition

//-----------------------------------------
// qdwh()
template <typename scalar_t>
void qdwh(
Matrix<scalar_t>& A,
Matrix<scalar_t>& B,
int& itqr, int& itpo,
Options const& opts = Options());

//-----------------------------------------
// normest()
template <typename matrix_type>
blas::real_type<typename matrix_type::value_type>
norm2est(
matrix_type &A,
Options const& opts = Options());

//-----------------------------------------
// geqrf_qdwh_full()
template <typename scalar_t>
void geqrf_qdwh_full(
Matrix<scalar_t>& A, TriangularFactors<scalar_t>& T,
Options const& opts = Options());

//-----------------------------------------
// unmqr_qdwh_full()
template <typename scalar_t>
void unmqr_qdwh_full(
Side side, Op op,
Matrix<scalar_t>& A, TriangularFactors<scalar_t>& T,
Matrix<scalar_t>& C,
Options const& opts = Options());

} // namespace slate

//-----------------------------------------
Expand Down
Loading