Skip to content

Commit

Permalink
Merge pull request #11 from nakatamaho/v2.0
Browse files Browse the repository at this point in the history
V2.0
  • Loading branch information
nakatamaho authored May 24, 2022
2 parents 16edcd5 + ac64f2c commit 070348e
Show file tree
Hide file tree
Showing 519 changed files with 15,084 additions and 84,746 deletions.
61 changes: 61 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,64 @@
2022/05/16 Nakata Maho <[email protected]> 2.0 branch
* Disable Rgejsv, Cgejsv, Rgesvj and Cgesvj by dd/qd, since we cannot
gurantee the precisions.

2022/05/16 Nakata Maho <[email protected]> 2.0 branch
* Rtest_rfp.in, Ctest_rfp.in: Test for linear equation routines RFP format
have passed for all precisions.

2022/05/10 Nakata Maho <[email protected]> 2.0 branch
* csd.in: Test for CS decomposition routines
have passed for all precisions (except for GMP; it doesn't support csd).

2022/05/09 Nakata Maho <[email protected]> 2.0 branch
* gsv.in: Test for Generalized SVD routines
have passed for all precisions.
* Csg.in: MPFR tests have also passed. Thus, tests of the Generalized
Nonsymmetric Eigenvalue Problem routines have passed for all precisions.

2022/05/08 Nakata Maho <[email protected]> 2.0 branch
* Cgd.in: Tests for complex Nonsymmetric generalized Eigenvalue/Schur Form Driver/Expert Driver
have passed for all precisions.

2022/05/06 Nakata Maho <[email protected]> 2.0 branch
* svd.in: Tests of the complex Singular Value Decomposition routines
have passed for all precisions except for dd and qd.

2022/05/04 Nakata Maho <[email protected]> 2.0 branch
* Cgg.in: Tests of the complex Generalized Nonsymmetric Eigenvalue Problem routines
have passed for all precisions.

2022/05/03 Nakata Maho <[email protected]> 2.0 branch
* Cgg.in: Tests of the Generalized Nonsymmetric Eigenvalue Problem routines
have passed for all precisions expect for _Float128 and _Float64x.
* Csg.in: Tests of the Generalized Nonsymmetric Eigenvalue Problem routines
have passed for all precisions expect for mpfr.

2022/05/02 Nakata Maho <[email protected]> 2.0 branch
* Ced.in: Tests for Complex Nonsymmetric Schur Form, Eigenvalue expert/expert drivers
have passed for all precisions.

2022/05/01 Nakata Maho <[email protected]> 2.0 branch
* se2.in: Tests for Hermitian Eigenvalue Problem routines for complex numbers have passed
for all precisions.

2022/04/30 Nakata Maho <[email protected]> 2.0 branch
* sep.in: Tests for Hermitian Eigenvalue Problem routines for complex numbers have passed
for all precisions.

2022/04/26 Nakata Maho <[email protected]> 2.0 branch
* nep.in: Test for Nonsymmetric Eigenvalue Problem routines for complex have passed
for all precisions.
* lse.in: Test for Constrained Linear Least Squares routines for complex have passed
for all precisions.
* Csb.in: Test for Hermitian Eigenvalue Problem routines have passed
* glm.in: Tests of the Generalized Linear Regression Model routines for complex have passed
* gqr.in: testing Generalized QR and RQ routines for complex have passed
* Cbb.in: reduction of a general band matrix to real bidiagonal form tests have passed

2022/04/24 Nakata Maho <[email protected]> 2.0 branch
* Cec.in test (Testing complex Eigen Condition Routines) have passed for all precisions.

2022/03/21 Nakata Maho <[email protected]> 2.0 branch
* Ctest.in test have passed for all precisions, except for linear fitting.
Some tests using SVDs still fails, however, they will be fixed when eig tests
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ This is the release process for MPLAPACK 3.0.0
* version 1.0.0 https://github.com/nakatamaho/mplapack/blob/master/doc/Release1.0.0.md

# History
* 2022/05/24 2.0 All tests for complex and RFP have passed! alpha version is merged into HEAD.
* 2022/03/21 2.0 (develoment ongoing). Now complex lin tests have passed for all precisions.
* 2021/11/1 1.0.1 release. Fixing dd and qd arithmetic by Inte One API.
* 2021/10/1 1.0.0 release. Huge improvement; all real LAPACK routines are available; SVD, eigenproblem solver for non symmetric matrices are added. manual is available: https://raw.githubusercontent.com/nakatamaho/mplapack/master/doc/manual/manual.pdf
Expand Down
17 changes: 11 additions & 6 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ dnl
dnl Configure for MPLAPACK
dnl

m4_define([MPLAPACK_VER_MAJOR], [1])
m4_define([MPLAPACK_VER_MAJOR], [2])
m4_define([MPLAPACK_VER_MINOR], [0])
m4_define([MPLAPACK_VER_PATCH], [1])
m4_define([MPLAPACK_VER_PATCH], [0])
m4_define([MPLAPACK_VERSION], [MPLAPACK_VER_MAJOR.MPLAPACK_VER_MINOR.MPLAPACK_VER_PATCH])
AC_INIT(mplapack, [MPLAPACK_VERSION])

Expand All @@ -30,6 +30,10 @@ AC_CONFIG_FILES([packaging/PKGBUILD packaging/mplapack.spec])

AC_CANONICAL_TARGET

: ${CFLAGS=""}
: ${CXXFLAGS=""}
: ${FCFLAGS=""}

AC_PROG_CC
IS_INTELCC=0
AC_COMPILE_IFELSE([
Expand Down Expand Up @@ -130,6 +134,7 @@ AS_HELP_STRING([--enable-optimization], [Enable compiler level optimization]),
no) enable_optimization=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-optimization) ;;
esac],[enable_optimization=yes])
AM_CONDITIONAL(ENABLE_OPTIMIZATION, test x$enable_optimization = xyes)

if test x"$enable_optimization" = x"yes" && test x"$enable_debug" = x"yes" ; then
AC_MSG_ERROR([you cannot set both enable-optimization=yes and enable-debug=yes])
Expand Down Expand Up @@ -824,17 +829,17 @@ if test x"$enable_optimization" = x"no" && test x"$enable_debug" = x"yes" ; then
FCFLAGS="-O0 -g"
fi

if test x"$enable_optimization" = x"yes" && test x"$enable_debug" = x"no" ; then
if test x"$enable_optimization" = x"yes" && test x"$enable_debug" != x"yes" ; then
case $target in
powerpc*-*-*)
CFLAGS="$CFLAGS -mcpu=native -O2 -finline-functions -funroll-all-loops"
CXXFLAGS="$CXXFLAGS -mcpu=native -O2 -finline-functions -funroll-all-loops"
FCFLAGS="$FCFLAGS -mcpu=native -O2 -finline-functions -funroll-all-loops"
;;
* )
CFLAGS="$CFLAGS -march=native -g -O2 -finline-functions -funroll-all-loops"
CXXFLAGS="$CXXFLAGS -march=native -g -O2 -finline-functions -funroll-all-loops"
FCFLAGS="$FCFLAGS -march=native -g -O2 -finline-functions -funroll-all-loops"
CFLAGS="$CFLAGS -march=native -O2 -finline-functions -funroll-all-loops"
CXXFLAGS="$CXXFLAGS -march=native -O2 -finline-functions -funroll-all-loops"
FCFLAGS="$FCFLAGS -march=native -O2 -finline-functions -funroll-all-loops"
;;
esac
if test x"$is_intelcxx" = x"1"; then
Expand Down
42 changes: 41 additions & 1 deletion external/lapack/patches/print.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
#include <stdio.h>
#include <string.h>

// please use as following: Do not forget adding //CHAR(0) at the end.
// please use as follows: Do not forget adding //CHAR(0) at the end.
// CALL PRINTSTR('#dgelsd.f l.486'//CHAR(0))
// CALL PRINTVEC('s='//CHAR(0),s,n)
// CALL PRINTMAT('e='//CHAR(0),m,m,e,lde)
// for complex matrix and vectors
// CALL PRINTMATC('e='//CHAR(0),m,m,e,lde)
// CALL PRINTVECC('x='//CHAR(0),x,n)

void printdummy_() { printf("\n"); }

Expand All @@ -19,6 +23,30 @@ void printnum_(char *s, double *A) {
printf("%s%+21.16e\n", s, *A);
}

void printnumc(double _Complex rtmp) {
printf("%+21.16e%+21.16ei", __real__ rtmp, __imag__ rtmp);
}

void printmatc_(char *s, int *N, int *M, double _Complex *A, int *LDA) {
double _Complex tmp;
printf("%s[ ", s);
for (int i = 0; i < *N; i++) {
printf("[ ");
for (int j = 0; j < *M; j++) {
tmp = A[i + j * (*LDA)];
printnumc(tmp);
if (j < *M - 1)
printf(", ");
}
if (i < *N - 1)
printf("]; ");
else
printf("] ");
}
printf("]");
printf("\n");
}

void printmat_(char *s, int *N, int *M, double *A, int *LDA) {
double tmp;
printf("%s[ ", s);
Expand Down Expand Up @@ -72,6 +100,18 @@ void printvec_(char *s, double *A, int *lenvec) {
printf("\n");
}

void printvecc_(char *s, double _Complex*A, int *lenvec) {
double _Complex tmp;
printf("%s[ ", s);
for (int i = 0; i < *lenvec; i++) {
printnumc(tmp);
if (i < *lenvec - 1)
printf(", ");
}
printf("]");
printf("\n");
}

void printveci_(char *s, int *A, int *lenvec) {
int tmp;
printf("%s[ ", s);
Expand Down
Loading

0 comments on commit 070348e

Please sign in to comment.