summaryrefslogtreecommitdiff
path: root/lapacke/src
AgeCommit message (Collapse)AuthorFilesLines
2014-02-18INTEGRATED CHANGES PROVIDED BY INTEL TEAM FOR LAPACKE -- SEE Eugene ↵julie1984-11643/+11647
Chereshnev email on Feb 18th --> THANK YO INTEL <-- We performed auto-replacement matrix_order -> matrix_layout in the LAPACKE C Interface. Also we applied several bug fixes which were presented on our side and added two LAPACKE interfaces for function LAPACK_stpqrt which weren't represented on your side (although interfaces for d/c/z/pqrt were). All changes are reflected in the archive in attachment (only modified files in the archive). All changes were performed for revision 1471. Summary of changes: 1. Files: lapacke_stprfb.c lapacke_dtprfb.c lapacke_ctprfb.c lapacke_ztprfb.c lapacke_stprfb_work.c lapacke_dtprfb_work.c lapacke_ctprfb_work.c lapacke_ztprfb_work.c lapacke.h Expression MAX(1,ldwork)*MAX(n,k) was replaced by 'work_size'. It's not a bug but apparently 'work_size' is right expression in this place. Also in functions lapacke_(c/z)tprfb type of 'work' array was changed from float/double to lapack_complex_float/lapack_complex_double. Array 'work' is passed to lapacke_(c/z)tprfb_work and it calls LAPACK_(c/z)tprfb (and passes array 'work') but LAPACK_(c/z)tprfb has argument 'work' of complex type: SRC/ctprfb.f: *> WORK is COMPLEX array, dimension *> (LDWORK,N) if SIDE = 'L', *> (LDWORK,K) if SIDE = 'R'. and SRC/ztprfb.f: *> WORK is COMPLEX*16 array, dimension *> (LDWORK,N) if SIDE = 'L', *> (LDWORK,K) if SIDE = 'R'. Types of 'work' array in lapacke.h for LAPACK_(c/z)tprfb are float/double so they aren't correct. The archive includes changes in lapacke.h and source files: types of 'work' array in LAPACK_(c/z)tprfb: float/double -> lapack_complex_float/lapack_complex_double types of 'work' array in LAPACKE_(c/z)tprfb_work: float/double -> lapack_complex_float/lapack_complex_double In a similar way types of allocated 'work' arrays in LAPACKE_(c/z)tprfb were replaced. Also you can see here why MAX(1,ldwork)*MAX(n,k) isn't fully correct expression for work_size. 2. Files: lapacke_cuncsd.c lapacke_dorcsd.c lapacke_sorcsd.c lapacke_zuncsd.c From documentation of LAPACK_cuncsd (for other three LAPACK functions IWORK must have same size): *> IWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)) So it's not correct here to allocate working array with MAX(1,m-q) size. Changes: lapack_int r; r=MIN(p,m-p); r=MIN(r,q); r=MIN(r,m-q); MAX(1,m-q) -> MAX(1,m-r) 3. Files: lapacke_cgbsvxx_work.c lapacke_cgesvxx_work.c lapacke_chesvxx_work.c lapacke_cposvxx_work.c lapacke_csysvxx_work.c lapacke_dgbsvxx_work.c lapacke_dgesvxx_work.c lapacke_dposvxx_work.c lapacke_dsysvxx_work.c lapacke_sgbsvxx_work.c lapacke_sgesvxx_work.c lapacke_sposvxx_work.c lapacke_ssysvxx_work.c lapacke_zgbsvxx_work.c lapacke_zgesvxx_work.c lapacke_zhesvxx_work.c lapacke_zposvxx_work.c lapacke_zsysvxx_work.c Functions doesn't perform right transposition for 'err_bnds_norm' and 'err_bnds_comp' matrices: From documentation of these functions: *> ERR_BNDS_NORM is (SINGLE/DOUBLE) PRECISION array, dimension (NRHS, N_ERR_BNDS) *> ERR_BNDS_COMP is (SINGLE/DOUBLE) PRECISION array, dimension (NRHS, N_ERR_BNDS) So for interface functions right 'lda' for 'err_bnds_norm' and 'err_bnds_comp' matrices is 'n_err_bnds' rather than 'nhrs' in the case of LAPACK_ROW_MAJOR. 4. Files: lapacke_stpqrt.c lapacke_stpqrt_work.c lapacke/src/Makefile lapacke/src/CMakeLists.txt Interfaces for LAPACK_spqrt were added: lapacke_stpqrt.c and lapacke_stpqrt_work.c and appropriate changes were performed in Makefile and CMakeLists.txt. Declaration of LAPACK_spqrt was added to lapacke.h.
2013-11-25Apply patch from Nadezhda Mozartova from Intel. (Sent to Julien on Novemberlangou4-4/+4
20th.) Thanks Nadezhda! Thanks Intel!
2013-11-19Apply patch submitted by Matthew Faverge, INRIA on Nov 19th 2013julie4-8/+8
There are problems in LAPACKE complex lacn2 interfaces. Those functions don't have a "isgn" parmeter in LAPACK. This exists only for real interface. The problem is present in the four files of C and Z functions. In Lapack: SUBROUTINE ZLACN2( N, V, X, EST, KASE, ISAVE ) In Lapacke: LAPACK_zlacn2( &n, v, x, isgn, est, kase, isave );
2013-11-17Update release number and datejulie1-1/+1
2013-07-22apply patch from Hong Xulangou4-4/+4
patch sent to lapack mailing list on Sunday July 21st In the input parameter checking, LDZ was not checked correctly LDZ was checked against M instead of N essentially
2013-01-10Add c/zlacp2 for PLASMA teamjulie6-0/+302
2012-10-26Add xlacn2 for PLASMA teamjulie10-0/+392
2012-09-21(no commit message)julie4-43/+43
2012-09-21(no commit message)julie18-82/+127
2012-08-25Add ilaver to LAPACKEjulie3-1/+46
2012-05-12Fix lange routine.julie4-8/+8
/* Allocate memory for working array(s) */ if( LAPACKE_lsame( norm, 'e' ) || LAPACKE_lsame( norm, 'f' ) ) { work = (double*)LAPACKE_malloc( sizeof(double) * MAX(1,m) ); if( work == NULL ) { info = LAPACK_WORK_MEMORY_ERROR; goto exit_level_0; } } This is wrong, it is actually the opposite. Only the inf norm needs a workspace. Thanks Mathieu for catching this!
2012-04-02(no commit message)julie6-0/+6
2012-03-22Following Mathieu's request, some part of lapacke.h were moved to ↵julie2066-2066/+44
lapacke_utils.h (the definition of ABS, MAX, MIN, etc...) Those were conflicting with PLASMA internal definitions. LAPCKE Routines are now just including lapacke_utils.h which in turn includes lapacke.h
2012-03-20Add csyr and zsyr needed by the PLASMA projectjulie6-1/+297
2012-01-11Fix LAPACKE makefile to only include XBLAS routine if USEXBLAS is definedjulie1-5/+2021
2012-01-10Adding CMAKE Support for LAPACKE.julie1-2/+2013
Now we can generate dll for LAPACK and LAPACKE directly for Mingw so that FORTRAN compiler is longer needed. Because LAPACKE contains some routines from MATGEN (for PLASMA), LAPACKE will requires the tmglib library. Add some LAPACK 3.4.0 routines were missing in the CMAKE LAPACK build.
2012-01-06Add Rook pivoting routines to LAPACKEjulie8-0/+770
2011-12-09This time, I believe I catch them all...julie4-7/+9
2011-12-09Some more and fix previous mistakes ...julie12-34/+24
2011-12-09Put declaration before executable statment to respect ISO 99 standard ↵julie78-254/+319
(Windows compiler was barking)
2011-12-03Integrate LAPACKE into LAPACK make and CMAKE build system.julie2-3/+5
First commit, works on my mac! Need to see how to adapt to intel compilers and of course Windows. LAPACKE is not built by default. Is that OK? User need to type 'make lapackelib' to generate the lib I add a couple of examples taken from MKL LAPACKE 'make lapacke_example'
2011-11-11Add lapacke inside LAPACKjulie2055-0/+190249