Refs #247. Included lapack source codes. Avoid downloading tar.gz from netlib.org
Based on 3.4.2 version, apply patch.for_lapack-3.4.2.
This commit is contained in:
39
lapack-netlib/lapacke/utils/CMakeLists.txt
Normal file
39
lapack-netlib/lapacke/utils/CMakeLists.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
set (UTILS_OBJ
|
||||
lapacke_c_nancheck.c lapacke_ctr_trans.c lapacke_make_complex_float.c lapacke_zgb_nancheck.c
|
||||
lapacke_cgb_nancheck.c lapacke_d_nancheck.c lapacke_s_nancheck.c lapacke_zgb_trans.c
|
||||
lapacke_cgb_trans.c lapacke_dgb_nancheck.c lapacke_sgb_nancheck.c lapacke_zge_nancheck.c
|
||||
lapacke_cge_nancheck.c lapacke_dgb_trans.c lapacke_sgb_trans.c lapacke_zge_trans.c
|
||||
lapacke_cge_trans.c lapacke_dge_nancheck.c lapacke_sge_nancheck.c lapacke_zgg_nancheck.c
|
||||
lapacke_cgg_nancheck.c lapacke_dge_trans.c lapacke_sge_trans.c lapacke_zgg_trans.c
|
||||
lapacke_cgg_trans.c lapacke_dgg_nancheck.c lapacke_sgg_nancheck.c lapacke_zgt_nancheck.c
|
||||
lapacke_cgt_nancheck.c lapacke_dgg_trans.c lapacke_sgg_trans.c lapacke_zhb_nancheck.c
|
||||
lapacke_chb_nancheck.c lapacke_dgt_nancheck.c lapacke_sgt_nancheck.c lapacke_zhb_trans.c
|
||||
lapacke_chb_trans.c lapacke_dhs_nancheck.c lapacke_shs_nancheck.c lapacke_zhe_nancheck.c
|
||||
lapacke_che_nancheck.c lapacke_dhs_trans.c lapacke_shs_trans.c lapacke_zhe_trans.c
|
||||
lapacke_che_trans.c lapacke_dpb_nancheck.c lapacke_spb_nancheck.c lapacke_zhp_nancheck.c
|
||||
lapacke_chp_nancheck.c lapacke_dpb_trans.c lapacke_spb_trans.c lapacke_zhp_trans.c
|
||||
lapacke_chp_trans.c lapacke_dpf_nancheck.c lapacke_spf_nancheck.c lapacke_zhs_nancheck.c
|
||||
lapacke_chs_nancheck.c lapacke_dpf_trans.c lapacke_spf_trans.c lapacke_zhs_trans.c
|
||||
lapacke_chs_trans.c lapacke_dpo_nancheck.c lapacke_spo_nancheck.c lapacke_zpb_nancheck.c
|
||||
lapacke_cpb_nancheck.c lapacke_dpo_trans.c lapacke_spo_trans.c lapacke_zpb_trans.c
|
||||
lapacke_cpb_trans.c lapacke_dpp_nancheck.c lapacke_spp_nancheck.c lapacke_zpf_nancheck.c
|
||||
lapacke_cpf_nancheck.c lapacke_dpp_trans.c lapacke_spp_trans.c lapacke_zpf_trans.c
|
||||
lapacke_cpf_trans.c lapacke_dpt_nancheck.c lapacke_spt_nancheck.c lapacke_zpo_nancheck.c
|
||||
lapacke_cpo_nancheck.c lapacke_dsb_nancheck.c lapacke_ssb_nancheck.c lapacke_zpo_trans.c
|
||||
lapacke_cpo_trans.c lapacke_dsb_trans.c lapacke_ssb_trans.c lapacke_zpp_nancheck.c
|
||||
lapacke_cpp_nancheck.c lapacke_dsp_nancheck.c lapacke_ssp_nancheck.c lapacke_zpp_trans.c
|
||||
lapacke_cpp_trans.c lapacke_dsp_trans.c lapacke_ssp_trans.c lapacke_zpt_nancheck.c
|
||||
lapacke_cpt_nancheck.c lapacke_dst_nancheck.c lapacke_sst_nancheck.c lapacke_zsp_nancheck.c
|
||||
lapacke_csp_nancheck.c lapacke_dsy_nancheck.c lapacke_ssy_nancheck.c lapacke_zsp_trans.c
|
||||
lapacke_csp_trans.c lapacke_dsy_trans.c lapacke_ssy_trans.c lapacke_zst_nancheck.c
|
||||
lapacke_cst_nancheck.c lapacke_dtb_nancheck.c lapacke_stb_nancheck.c lapacke_zsy_nancheck.c
|
||||
lapacke_csy_nancheck.c lapacke_dtb_trans.c lapacke_stb_trans.c lapacke_zsy_trans.c
|
||||
lapacke_csy_trans.c lapacke_dtf_nancheck.c lapacke_stf_nancheck.c lapacke_ztb_nancheck.c
|
||||
lapacke_ctb_nancheck.c lapacke_dtf_trans.c lapacke_stf_trans.c lapacke_ztb_trans.c
|
||||
lapacke_ctb_trans.c lapacke_dtp_nancheck.c lapacke_stp_nancheck.c lapacke_ztf_nancheck.c
|
||||
lapacke_ctf_nancheck.c lapacke_dtp_trans.c lapacke_stp_trans.c lapacke_ztf_trans.c
|
||||
lapacke_ctf_trans.c lapacke_dtr_nancheck.c lapacke_str_nancheck.c lapacke_ztp_nancheck.c
|
||||
lapacke_ctp_nancheck.c lapacke_dtr_trans.c lapacke_str_trans.c lapacke_ztp_trans.c
|
||||
lapacke_ctp_trans.c lapacke_lsame.c lapacke_xerbla.c lapacke_ztr_nancheck.c
|
||||
lapacke_ctr_nancheck.c lapacke_make_complex_double.c lapacke_z_nancheck.c lapacke_ztr_trans.c
|
||||
)
|
||||
196
lapack-netlib/lapacke/utils/Makefile
Normal file
196
lapack-netlib/lapacke/utils/Makefile
Normal file
@@ -0,0 +1,196 @@
|
||||
##############################################################################
|
||||
# Copyright (c) 2010, Intel Corp.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of Intel Corporation nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
# THE POSSIBILITY OF SUCH DAMAGE.
|
||||
##############################################################################
|
||||
# Contents: Native C interface to LAPACK
|
||||
# Author: Intel Corporation
|
||||
# September, 2010
|
||||
##############################################################################
|
||||
# makefile for LAPACKE, used to build lapacke binary.
|
||||
#
|
||||
include ../../make.inc
|
||||
|
||||
OBJ = lapacke_cgb_nancheck.o \
|
||||
lapacke_cgb_trans.o \
|
||||
lapacke_cge_nancheck.o \
|
||||
lapacke_cge_trans.o \
|
||||
lapacke_cgg_nancheck.o \
|
||||
lapacke_cgg_trans.o \
|
||||
lapacke_cgt_nancheck.o \
|
||||
lapacke_chb_nancheck.o \
|
||||
lapacke_chb_trans.o \
|
||||
lapacke_che_nancheck.o \
|
||||
lapacke_che_trans.o \
|
||||
lapacke_chp_nancheck.o \
|
||||
lapacke_chp_trans.o \
|
||||
lapacke_chs_nancheck.o \
|
||||
lapacke_chs_trans.o \
|
||||
lapacke_c_nancheck.o \
|
||||
lapacke_cpb_nancheck.o \
|
||||
lapacke_cpb_trans.o \
|
||||
lapacke_cpf_nancheck.o \
|
||||
lapacke_cpf_trans.o \
|
||||
lapacke_cpo_nancheck.o \
|
||||
lapacke_cpo_trans.o \
|
||||
lapacke_cpp_nancheck.o \
|
||||
lapacke_cpp_trans.o \
|
||||
lapacke_cpt_nancheck.o \
|
||||
lapacke_csp_nancheck.o \
|
||||
lapacke_csp_trans.o \
|
||||
lapacke_cst_nancheck.o \
|
||||
lapacke_csy_nancheck.o \
|
||||
lapacke_csy_trans.o \
|
||||
lapacke_ctb_nancheck.o \
|
||||
lapacke_ctb_trans.o \
|
||||
lapacke_ctf_nancheck.o \
|
||||
lapacke_ctf_trans.o \
|
||||
lapacke_ctp_nancheck.o \
|
||||
lapacke_ctp_trans.o \
|
||||
lapacke_ctr_nancheck.o \
|
||||
lapacke_ctr_trans.o \
|
||||
lapacke_dgb_nancheck.o \
|
||||
lapacke_dgb_trans.o \
|
||||
lapacke_dge_nancheck.o \
|
||||
lapacke_dge_trans.o \
|
||||
lapacke_dgg_nancheck.o \
|
||||
lapacke_dgg_trans.o \
|
||||
lapacke_dgt_nancheck.o \
|
||||
lapacke_dhs_nancheck.o \
|
||||
lapacke_dhs_trans.o \
|
||||
lapacke_d_nancheck.o \
|
||||
lapacke_dpb_nancheck.o \
|
||||
lapacke_dpb_trans.o \
|
||||
lapacke_dpf_nancheck.o \
|
||||
lapacke_dpf_trans.o \
|
||||
lapacke_dpo_nancheck.o \
|
||||
lapacke_dpo_trans.o \
|
||||
lapacke_dpp_nancheck.o \
|
||||
lapacke_dpp_trans.o \
|
||||
lapacke_dpt_nancheck.o \
|
||||
lapacke_dsb_nancheck.o \
|
||||
lapacke_dsb_trans.o \
|
||||
lapacke_dsp_nancheck.o \
|
||||
lapacke_dsp_trans.o \
|
||||
lapacke_dst_nancheck.o \
|
||||
lapacke_dsy_nancheck.o \
|
||||
lapacke_dsy_trans.o \
|
||||
lapacke_dtb_nancheck.o \
|
||||
lapacke_dtb_trans.o \
|
||||
lapacke_dtf_nancheck.o \
|
||||
lapacke_dtf_trans.o \
|
||||
lapacke_dtp_nancheck.o \
|
||||
lapacke_dtp_trans.o \
|
||||
lapacke_dtr_nancheck.o \
|
||||
lapacke_dtr_trans.o \
|
||||
lapacke_lsame.o \
|
||||
lapacke_sgb_nancheck.o \
|
||||
lapacke_sgb_trans.o \
|
||||
lapacke_sge_nancheck.o \
|
||||
lapacke_sge_trans.o \
|
||||
lapacke_sgg_nancheck.o \
|
||||
lapacke_sgg_trans.o \
|
||||
lapacke_sgt_nancheck.o \
|
||||
lapacke_shs_nancheck.o \
|
||||
lapacke_shs_trans.o \
|
||||
lapacke_s_nancheck.o \
|
||||
lapacke_spb_nancheck.o \
|
||||
lapacke_spb_trans.o \
|
||||
lapacke_spf_nancheck.o \
|
||||
lapacke_spf_trans.o \
|
||||
lapacke_spo_nancheck.o \
|
||||
lapacke_spo_trans.o \
|
||||
lapacke_spp_nancheck.o \
|
||||
lapacke_spp_trans.o \
|
||||
lapacke_spt_nancheck.o \
|
||||
lapacke_ssb_nancheck.o \
|
||||
lapacke_ssb_trans.o \
|
||||
lapacke_ssp_nancheck.o \
|
||||
lapacke_ssp_trans.o \
|
||||
lapacke_sst_nancheck.o \
|
||||
lapacke_ssy_nancheck.o \
|
||||
lapacke_ssy_trans.o \
|
||||
lapacke_stb_nancheck.o \
|
||||
lapacke_stb_trans.o \
|
||||
lapacke_stf_nancheck.o \
|
||||
lapacke_stf_trans.o \
|
||||
lapacke_stp_nancheck.o \
|
||||
lapacke_stp_trans.o \
|
||||
lapacke_str_nancheck.o \
|
||||
lapacke_str_trans.o \
|
||||
lapacke_xerbla.o \
|
||||
lapacke_zgb_nancheck.o \
|
||||
lapacke_zgb_trans.o \
|
||||
lapacke_zge_nancheck.o \
|
||||
lapacke_zge_trans.o \
|
||||
lapacke_zgg_nancheck.o \
|
||||
lapacke_zgg_trans.o \
|
||||
lapacke_zgt_nancheck.o \
|
||||
lapacke_zhb_nancheck.o \
|
||||
lapacke_zhb_trans.o \
|
||||
lapacke_zhe_nancheck.o \
|
||||
lapacke_zhe_trans.o \
|
||||
lapacke_zhp_nancheck.o \
|
||||
lapacke_zhp_trans.o \
|
||||
lapacke_zhs_nancheck.o \
|
||||
lapacke_zhs_trans.o \
|
||||
lapacke_z_nancheck.o \
|
||||
lapacke_zpb_nancheck.o \
|
||||
lapacke_zpb_trans.o \
|
||||
lapacke_zpf_nancheck.o \
|
||||
lapacke_zpf_trans.o \
|
||||
lapacke_zpo_nancheck.o \
|
||||
lapacke_zpo_trans.o \
|
||||
lapacke_zpp_nancheck.o \
|
||||
lapacke_zpp_trans.o \
|
||||
lapacke_zpt_nancheck.o \
|
||||
lapacke_zsp_nancheck.o \
|
||||
lapacke_zsp_trans.o \
|
||||
lapacke_zst_nancheck.o \
|
||||
lapacke_zsy_nancheck.o \
|
||||
lapacke_zsy_trans.o \
|
||||
lapacke_ztb_nancheck.o \
|
||||
lapacke_ztb_trans.o \
|
||||
lapacke_ztf_nancheck.o \
|
||||
lapacke_ztf_trans.o \
|
||||
lapacke_ztp_nancheck.o \
|
||||
lapacke_ztp_trans.o \
|
||||
lapacke_ztr_nancheck.o \
|
||||
lapacke_ztr_trans.o \
|
||||
lapacke_make_complex_float.o \
|
||||
lapacke_make_complex_double.o
|
||||
|
||||
all: lib
|
||||
|
||||
lib: $(OBJ)
|
||||
$(ARCH) $(ARCHFLAGS) ../../$(LAPACKELIB) $(OBJ)
|
||||
$(RANLIB) ../../$(LAPACKELIB)
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CFLAGS) -I ../include -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
51
lapack-netlib/lapacke/utils/lapacke_c_nancheck.c
Normal file
51
lapack-netlib/lapacke/utils/lapacke_c_nancheck.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a vector for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_c_nancheck( lapack_int n,
|
||||
const lapack_complex_float *x,
|
||||
lapack_int incx )
|
||||
{
|
||||
lapack_int i, inc;
|
||||
|
||||
if( incx == 0 ) return (lapack_logical) LAPACK_CISNAN( x[0] );
|
||||
inc = ( incx > 0 ) ? incx : -incx ;
|
||||
|
||||
for( i = 0; i < n*inc; i+=inc ) {
|
||||
if( LAPACK_CISNAN( x[i] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
64
lapack-netlib/lapacke/utils/lapacke_cgb_nancheck.c
Normal file
64
lapack-netlib/lapacke/utils/lapacke_cgb_nancheck.c
Normal file
@@ -0,0 +1,64 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cgb_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n, lapack_int kl,
|
||||
lapack_int ku,
|
||||
const lapack_complex_float *ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( ab == NULL ) return (lapack_logical) 0;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < n; j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldab, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
if( LAPACK_CISNAN( ab[i+(size_t)j*ldab] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
for( j = 0; j < MIN( n, ldab ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN( m+ku-j, kl+ku+1 ); i++ ) {
|
||||
if( LAPACK_CISNAN( ab[(size_t)i*ldab+j] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
67
lapack-netlib/lapacke/utils/lapacke_cgb_trans.c
Normal file
67
lapack-netlib/lapacke/utils/lapacke_cgb_trans.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general band matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cgb_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
lapack_int kl, lapack_int ku,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < MIN( ldout, n ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldin, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
out[(size_t)i*ldout+j] = in[i+(size_t)j*ldin];
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
/* TODO: interchange loops for performance.
|
||||
* This is just reference impemeltation.
|
||||
*/
|
||||
for( j = 0; j < MIN( n, ldin ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldout, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
out[i+(size_t)j*ldout] = in[(size_t)i*ldin+j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
62
lapack-netlib/lapacke/utils/lapacke_cge_nancheck.c
Normal file
62
lapack-netlib/lapacke/utils/lapacke_cge_nancheck.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cge_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < n; j++ ) {
|
||||
for( i = 0; i < MIN( m, lda ); i++ ) {
|
||||
if( LAPACK_CISNAN( a[i+(size_t)j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
for( i = 0; i < m; i++ ) {
|
||||
for( j = 0; j < MIN( n, lda ); j++ ) {
|
||||
if( LAPACK_CISNAN( a[(size_t)i*lda+j] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
65
lapack-netlib/lapacke/utils/lapacke_cge_trans.c
Normal file
65
lapack-netlib/lapacke/utils/lapacke_cge_trans.c
Normal file
@@ -0,0 +1,65 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cge_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
const lapack_complex_float* in, lapack_int ldin,
|
||||
lapack_complex_float* out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j, x, y;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
x = n;
|
||||
y = m;
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
x = m;
|
||||
y = n;
|
||||
} else {
|
||||
/* Unknown input layout */
|
||||
return;
|
||||
}
|
||||
|
||||
/* In case of incorrect m, n, ldin or ldout the function does nothing */
|
||||
for( i = 0; i < MIN( y, ldin ); i++ ) {
|
||||
for( j = 0; j < MIN( x, ldout ); j++ ) {
|
||||
out[ (size_t)i*ldout + j ] = in[ (size_t)j*ldin + i ];
|
||||
}
|
||||
}
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_cgg_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_cgg_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cgg_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_cge_nancheck( matrix_order, m, n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_cgg_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_cgg_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cgg_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
const lapack_complex_float* in, lapack_int ldin,
|
||||
lapack_complex_float* out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_cge_trans( matrix_order, m, n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_cgt_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_cgt_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cgt_nancheck( lapack_int n,
|
||||
const lapack_complex_float *dl,
|
||||
const lapack_complex_float *d,
|
||||
const lapack_complex_float *du )
|
||||
{
|
||||
return LAPACKE_c_nancheck( n-1, dl, 1 )
|
||||
|| LAPACKE_c_nancheck( n , d, 1 )
|
||||
|| LAPACKE_c_nancheck( n-1, du, 1 );
|
||||
}
|
||||
48
lapack-netlib/lapacke/utils/lapacke_chb_nancheck.c
Normal file
48
lapack-netlib/lapacke/utils/lapacke_chb_nancheck.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_chb_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n, lapack_int kd,
|
||||
const lapack_complex_float* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
50
lapack-netlib/lapacke/utils/lapacke_chb_trans.c
Normal file
50
lapack-netlib/lapacke/utils/lapacke_chb_trans.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input Hermitian band matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_chb_trans( int matrix_order, char uplo, lapack_int n,
|
||||
lapack_int kd,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n, n, 0, kd, in, ldin, out, ldout );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n, n, kd, 0, in, ldin, out, ldout );
|
||||
}
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_che_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_che_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_che_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_ctr_nancheck( matrix_order, uplo, 'n', n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_che_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_che_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input Hermitian matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_che_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_ctr_trans( matrix_order, uplo, 'n', n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_chp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_chp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_chp_nancheck( lapack_int n,
|
||||
const lapack_complex_float *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_c_nancheck( len, ap, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_chp_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_chp_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input Hermitian packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_chp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const lapack_complex_float *in,
|
||||
lapack_complex_float *out )
|
||||
{
|
||||
LAPACKE_ctp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
57
lapack-netlib/lapacke/utils/lapacke_chs_nancheck.c
Normal file
57
lapack-netlib/lapacke/utils/lapacke_chs_nancheck.c
Normal file
@@ -0,0 +1,57 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_chs_nancheck( int matrix_order, lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_logical subdiag_nans;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
/* Check subdiagonal first */
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
subdiag_nans = LAPACKE_c_nancheck( n-1, &a[1], lda+1 );
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
subdiag_nans = LAPACKE_c_nancheck( n-1, &a[lda], lda+1 );
|
||||
} else {
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
/* Check upper triangular if subdiagonal has no NaNs. */
|
||||
return subdiag_nans || LAPACKE_ctr_nancheck( matrix_order, 'u', 'n',
|
||||
n, a, lda);
|
||||
}
|
||||
59
lapack-netlib/lapacke/utils/lapacke_chs_trans.c
Normal file
59
lapack-netlib/lapacke/utils/lapacke_chs_trans.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input Hessenberg matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_chs_trans( int matrix_order, lapack_int n,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
/* Convert subdiagonal first */
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, 1, n-1, &in[1], ldin+1,
|
||||
&out[ldout], ldout+1 );
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
LAPACKE_cge_trans( LAPACK_ROW_MAJOR, n-1, 1, &in[ldin], ldin+1,
|
||||
&out[1], ldout+1 );
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Convert upper triangular. */
|
||||
LAPACKE_ctr_trans( matrix_order, 'u', 'n', n, in, ldin, out, ldout);
|
||||
}
|
||||
48
lapack-netlib/lapacke/utils/lapacke_cpb_nancheck.c
Normal file
48
lapack-netlib/lapacke/utils/lapacke_cpb_nancheck.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cpb_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n, lapack_int kd,
|
||||
const lapack_complex_float* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
50
lapack-netlib/lapacke/utils/lapacke_cpb_trans.c
Normal file
50
lapack-netlib/lapacke/utils/lapacke_cpb_trans.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric banded matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cpb_trans( int matrix_order, char uplo, lapack_int n,
|
||||
lapack_int kd,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n, n, 0, kd, in, ldin, out, ldout );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n, n, kd, 0, in, ldin, out, ldout );
|
||||
}
|
||||
}
|
||||
46
lapack-netlib/lapacke/utils/lapacke_cpf_nancheck.c
Normal file
46
lapack-netlib/lapacke/utils/lapacke_cpf_nancheck.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo, transr or
|
||||
* matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_cpf_nancheck( lapack_int n,
|
||||
const lapack_complex_float *a )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_c_nancheck( len, a, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_cpf_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_cpf_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input RFP matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cpf_trans( int matrix_order, char transr, char uplo,
|
||||
lapack_int n, const lapack_complex_float *in,
|
||||
lapack_complex_float *out )
|
||||
{
|
||||
LAPACKE_ctf_trans( matrix_order, transr, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_cpo_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_cpo_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cpo_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_ctr_nancheck( matrix_order, uplo, 'n', n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_cpo_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_cpo_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cpo_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_ctr_trans( matrix_order, uplo, 'n', n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_cpp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_cpp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_cpp_nancheck( lapack_int n,
|
||||
const lapack_complex_float *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_c_nancheck( len, ap, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_cpp_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_cpp_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_cpp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const lapack_complex_float *in,
|
||||
lapack_complex_float *out )
|
||||
{
|
||||
LAPACKE_ctp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_cpt_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_cpt_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cpt_nancheck( lapack_int n,
|
||||
const float *d,
|
||||
const lapack_complex_float *e )
|
||||
{
|
||||
return LAPACKE_s_nancheck( n, d, 1 )
|
||||
|| LAPACKE_c_nancheck( n-1, e, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_csp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_csp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_csp_nancheck( lapack_int n,
|
||||
const lapack_complex_float *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_c_nancheck( len, ap, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_csp_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_csp_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_csp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const lapack_complex_float *in,
|
||||
lapack_complex_float *out )
|
||||
{
|
||||
LAPACKE_ctp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_cst_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_cst_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_cst_nancheck( lapack_int n,
|
||||
const lapack_complex_float *d,
|
||||
const lapack_complex_float *e )
|
||||
{
|
||||
return LAPACKE_c_nancheck( n, d, 1 )
|
||||
|| LAPACKE_c_nancheck( n-1, e, 1 );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_csy_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_csy_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_csy_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_ctr_nancheck( matrix_order, uplo, 'n', n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_csy_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_csy_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_csy_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_ctr_trans( matrix_order, uplo, 'n', n, in, ldin, out, ldout );
|
||||
}
|
||||
84
lapack-netlib/lapacke/utils/lapacke_ctb_nancheck.c
Normal file
84
lapack-netlib/lapacke/utils/lapacke_ctb_nancheck.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_ctb_nancheck( int matrix_order, char uplo, char diag,
|
||||
lapack_int n, lapack_int kd,
|
||||
const lapack_complex_float* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( ab == NULL ) return (lapack_logical) 0;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal should be excluded from the check for NaN. */
|
||||
if( colmaj ) {
|
||||
if( upper ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&ab[ldab], ldab );
|
||||
} else {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&ab[1], ldab );
|
||||
}
|
||||
} else {
|
||||
if( upper ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&ab[1], ldab );
|
||||
} else {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&ab[ldab], ldab );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Non-unit case */
|
||||
if( upper ) {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else {
|
||||
return LAPACKE_cgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
}
|
||||
}
|
||||
89
lapack-netlib/lapacke/utils/lapacke_ctb_trans.c
Normal file
89
lapack-netlib/lapacke/utils/lapacke_ctb_trans.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input triangular banded matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_ctb_trans( int matrix_order, char uplo, char diag,
|
||||
lapack_int n, lapack_int kd,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal excluded from transposition */
|
||||
if( colmaj ) {
|
||||
if( upper ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&in[ldin], ldin, &out[1], ldout );
|
||||
} else {
|
||||
LAPACKE_cgb_trans( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&in[1], ldin, &out[ldout], ldout );
|
||||
}
|
||||
} else {
|
||||
if( upper ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&in[1], ldin, &out[ldout], ldout );
|
||||
} else {
|
||||
LAPACKE_cgb_trans( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&in[ldin], ldin, &out[1], ldout );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Non-unit case */
|
||||
if( upper ) {
|
||||
LAPACKE_cgb_trans( matrix_order, n, n, 0, kd, in, ldin, out,
|
||||
ldout );
|
||||
} else {
|
||||
LAPACKE_cgb_trans( matrix_order, n, n, kd, 0, in, ldin, out,
|
||||
ldout );
|
||||
}
|
||||
}
|
||||
}
|
||||
157
lapack-netlib/lapacke/utils/lapacke_ctf_nancheck.c
Normal file
157
lapack-netlib/lapacke/utils/lapacke_ctf_nancheck.c
Normal file
@@ -0,0 +1,157 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_ctf_nancheck( int matrix_order, char transr,
|
||||
char uplo, char diag,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a )
|
||||
{
|
||||
lapack_int len;
|
||||
lapack_logical rowmaj, ntr, lower, unit;
|
||||
lapack_int n1, n2, k;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
rowmaj = (matrix_order == LAPACK_ROW_MAJOR);
|
||||
ntr = LAPACKE_lsame( transr, 'n' );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !rowmaj && ( matrix_order != LAPACK_COL_MAJOR ) ) ||
|
||||
( !ntr && !LAPACKE_lsame( transr, 't' )
|
||||
&& !LAPACKE_lsame( transr, 'c' ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal should be excluded from the check for NaN.
|
||||
* Decoding RFP and checking both triangulars and rectangular
|
||||
* for NaNs.
|
||||
*/
|
||||
if( lower ) {
|
||||
n2 = n / 2;
|
||||
n1 = n - n2;
|
||||
} else {
|
||||
n1 = n / 2;
|
||||
n2 = n - n1;
|
||||
}
|
||||
if( n % 2 == 1 ) {
|
||||
/* N is odd */
|
||||
if( ( rowmaj || ntr ) && !( rowmaj && ntr ) ) {
|
||||
/* N is odd and ( TRANSR = 'N' .XOR. ROWMAJOR) */
|
||||
if( lower ) {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n1, &a[0], n )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, n2, n1,
|
||||
&a[n1], n )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n2, &a[n], n );
|
||||
} else {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n1, &a[n2], n )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, n1, n2,
|
||||
&a[0], n )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n2, &a[n1], n );
|
||||
}
|
||||
} else {
|
||||
/* N is odd and
|
||||
( ( TRANSR = 'C' || TRANSR = 'T' ) .XOR. COLMAJOR ) */
|
||||
if( lower ) {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n1, &a[0], n1 )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, n1, n2,
|
||||
&a[1], n1 )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n2, &a[1], n1 );
|
||||
} else {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n1, &a[(size_t)n2*n2], n2 )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, n2, n1,
|
||||
&a[0], n2 )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n2, &a[(size_t)n1*n2], n2 );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* N is even */
|
||||
k = n / 2;
|
||||
if( ( rowmaj || ntr ) && !( rowmaj && ntr ) ) {
|
||||
/* N is even and ( TRANSR = 'N' .XOR. ROWMAJOR) */
|
||||
if( lower ) {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[1], n+1 )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[k+1], n+1 )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[0], n+1 );
|
||||
} else {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[k+1], n+1 )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[0], n+1 )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[k], n+1 );
|
||||
}
|
||||
} else {
|
||||
/* N is even and
|
||||
( ( TRANSR = 'C' || TRANSR = 'T' ) .XOR. COLMAJOR ) */
|
||||
if( lower ) {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[k], k )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[(size_t)k*(k+1)], k )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[0], k );
|
||||
} else {
|
||||
return LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[(size_t)k*(k+1)], k )
|
||||
|| LAPACKE_cge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[0], k )
|
||||
|| LAPACKE_ctr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[(size_t)k*k], k );
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Non-unit case - just check whole array for NaNs. */
|
||||
len = n*(n+1)/2;
|
||||
return LAPACKE_cge_nancheck( LAPACK_COL_MAJOR, len, 1, a, len );
|
||||
}
|
||||
}
|
||||
89
lapack-netlib/lapacke/utils/lapacke_ctf_trans.c
Normal file
89
lapack-netlib/lapacke/utils/lapacke_ctf_trans.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input RFP matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
* This functions does copy diagonal for both unit and non-unit cases.
|
||||
*/
|
||||
|
||||
void LAPACKE_ctf_trans( int matrix_order, char transr, char uplo, char diag,
|
||||
lapack_int n, const lapack_complex_float *in,
|
||||
lapack_complex_float *out )
|
||||
{
|
||||
lapack_int row, col;
|
||||
lapack_logical rowmaj, ntr, lower, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return ;
|
||||
|
||||
rowmaj = (matrix_order == LAPACK_ROW_MAJOR);
|
||||
ntr = LAPACKE_lsame( transr, 'n' );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !rowmaj && ( matrix_order != LAPACK_COL_MAJOR ) ) ||
|
||||
( !ntr && !LAPACKE_lsame( transr, 't' ) &&
|
||||
!LAPACKE_lsame( transr, 'c' ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Determine parameters of array representing RFP */
|
||||
if( ntr ) {
|
||||
if( n%2 == 0 ) {
|
||||
row = n + 1;
|
||||
col = n / 2;
|
||||
} else {
|
||||
row = n;
|
||||
col = (n + 1) / 2;
|
||||
}
|
||||
} else {
|
||||
if( n%2 == 0 ) {
|
||||
row = n / 2;
|
||||
col = n + 1;
|
||||
} else {
|
||||
row = (n + 1) / 2;
|
||||
col = n;
|
||||
}
|
||||
}
|
||||
|
||||
/* Perform conversion: */
|
||||
if( rowmaj ) {
|
||||
LAPACKE_cge_trans( LAPACK_ROW_MAJOR, row, col, in, col, out, row );
|
||||
} else {
|
||||
LAPACKE_cge_trans( LAPACK_COL_MAJOR, row, col, in, row, out, col );
|
||||
}
|
||||
}
|
||||
83
lapack-netlib/lapacke/utils/lapacke_ctp_nancheck.c
Normal file
83
lapack-netlib/lapacke/utils/lapacke_ctp_nancheck.c
Normal file
@@ -0,0 +1,83 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_ctp_nancheck( int matrix_order, char uplo, char diag,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *ap )
|
||||
{
|
||||
lapack_int i, len;
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( ap == NULL ) return (lapack_logical) 0;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal should be excluded from the check for NaN. */
|
||||
|
||||
/* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || upper ) && !( colmaj && upper ) ) {
|
||||
for( i = 1; i < n; i++ )
|
||||
if( LAPACKE_c_nancheck( i, &ap[ ((size_t)i+1)*i/2 ], 1 ) )
|
||||
return (lapack_logical) 1;
|
||||
} else {
|
||||
for( i = 0; i < n-1; i++ )
|
||||
if( LAPACKE_c_nancheck( n-i-1,
|
||||
&ap[ (size_t)i+1 + i*((size_t)2*n-i+1)/2 ], 1 ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
} else {
|
||||
/* Non-unit case - just check whole array for NaNs. */
|
||||
len = n*(n+1)/2;
|
||||
return LAPACKE_c_nancheck( len, ap, 1 );
|
||||
}
|
||||
}
|
||||
85
lapack-netlib/lapacke/utils/lapacke_ctp_trans.c
Normal file
85
lapack-netlib/lapacke/utils/lapacke_ctp_trans.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input triangular packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_ctp_trans( int matrix_order, char uplo, char diag,
|
||||
lapack_int n, const lapack_complex_float *in,
|
||||
lapack_complex_float *out )
|
||||
{
|
||||
lapack_int i, j, st;
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return ;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
if( unit ) {
|
||||
/* If unit, then don't touch diagonal, start from 1st column or row */
|
||||
st = 1;
|
||||
} else {
|
||||
/* If non-unit, then check diagonal also, starting from [0,0] */
|
||||
st = 0;
|
||||
}
|
||||
|
||||
/* Perform conversion:
|
||||
* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || upper ) && !( colmaj && upper ) ) {
|
||||
for( j = st; j < n; j++ ) {
|
||||
for( i = 0; i < j+1-st; i++ ) {
|
||||
out[ j-i + (i*(2*n-i+1))/2 ] = in[ ((j+1)*j)/2 + i ];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for( j = 0; j < n-st; j++ ) {
|
||||
for( i = j+st; i < n; i++ ) {
|
||||
out[ j + ((i+1)*i)/2 ] = in[ (j*(2*n-j+1))/2 + i-j ];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
lapack-netlib/lapacke/utils/lapacke_ctr_nancheck.c
Normal file
85
lapack-netlib/lapacke/utils/lapacke_ctr_nancheck.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_ctr_nancheck( int matrix_order, char uplo, char diag,
|
||||
lapack_int n,
|
||||
const lapack_complex_float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_int i, j, st;
|
||||
lapack_logical colmaj, lower, unit;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
if( unit ) {
|
||||
/* If unit, then don't touch diagonal, start from 1st column or row */
|
||||
st = 1;
|
||||
} else {
|
||||
/* If non-unit, then check diagonal also, starting from [0,0] */
|
||||
st = 0;
|
||||
}
|
||||
|
||||
/* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || lower ) && !( colmaj && lower ) ) {
|
||||
for( j = st; j < n; j++ ) {
|
||||
for( i = 0; i < MIN( j+1-st, lda ); i++ ) {
|
||||
if( LAPACK_CISNAN( a[i+j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for( j = 0; j < n-st; j++ ) {
|
||||
for( i = j+st; i < MIN( n, lda ); i++ ) {
|
||||
if( LAPACK_CISNAN( a[i+j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
85
lapack-netlib/lapacke/utils/lapacke_ctr_trans.c
Normal file
85
lapack-netlib/lapacke/utils/lapacke_ctr_trans.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input triangular matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_ctr_trans( int matrix_order, char uplo, char diag, lapack_int n,
|
||||
const lapack_complex_float *in, lapack_int ldin,
|
||||
lapack_complex_float *out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j, st;
|
||||
lapack_logical colmaj, lower, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return ;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
if( unit ) {
|
||||
/* If unit, then don't touch diagonal, start from 1st column or row */
|
||||
st = 1;
|
||||
} else {
|
||||
/* If non-unit, then check diagonal also, starting from [0,0] */
|
||||
st = 0;
|
||||
}
|
||||
|
||||
/* Perform conversion:
|
||||
* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || lower ) && !( colmaj && lower ) ) {
|
||||
for( j = st; j < MIN( n, ldout ); j++ ) {
|
||||
for( i = 0; i < MIN( j+1-st, ldin ); i++ ) {
|
||||
out[ j+i*ldout ] = in[ i+j*ldin ];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for( j = 0; j < MIN( n-st, ldout ); j++ ) {
|
||||
for( i = j+st; i < MIN( n, ldin ); i++ ) {
|
||||
out[ j+i*ldout ] = in[ i+j*ldin ];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
51
lapack-netlib/lapacke/utils/lapacke_d_nancheck.c
Normal file
51
lapack-netlib/lapacke/utils/lapacke_d_nancheck.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a vector for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_d_nancheck( lapack_int n,
|
||||
const double *x,
|
||||
lapack_int incx )
|
||||
{
|
||||
lapack_int i, inc;
|
||||
|
||||
if( incx == 0 ) return (lapack_logical) LAPACK_DISNAN( x[0] );
|
||||
inc = ( incx > 0 ) ? incx : -incx ;
|
||||
|
||||
for( i = 0; i < n*inc; i+=inc ) {
|
||||
if( LAPACK_DISNAN( x[i] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
64
lapack-netlib/lapacke/utils/lapacke_dgb_nancheck.c
Normal file
64
lapack-netlib/lapacke/utils/lapacke_dgb_nancheck.c
Normal file
@@ -0,0 +1,64 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dgb_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n, lapack_int kl,
|
||||
lapack_int ku,
|
||||
const double *ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( ab == NULL ) return (lapack_logical) 0;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < n; j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldab, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
if( LAPACK_DISNAN( ab[i+(size_t)j*ldab] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
for( j = 0; j < MIN( n, ldab ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN( m+ku-j, kl+ku+1 ); i++ ) {
|
||||
if( LAPACK_DISNAN( ab[(size_t)i*ldab+j] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
67
lapack-netlib/lapacke/utils/lapacke_dgb_trans.c
Normal file
67
lapack-netlib/lapacke/utils/lapacke_dgb_trans.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general band matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dgb_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
lapack_int kl, lapack_int ku,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < MIN( ldout, n ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldin, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
out[(size_t)i*ldout+j] = in[i+(size_t)j*ldin];
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
/* TODO: interchange loops for performance.
|
||||
* This is just reference impemeltation.
|
||||
*/
|
||||
for( j = 0; j < MIN( n, ldin ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldout, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
out[i+(size_t)j*ldout] = in[(size_t)i*ldin+j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
62
lapack-netlib/lapacke/utils/lapacke_dge_nancheck.c
Normal file
62
lapack-netlib/lapacke/utils/lapacke_dge_nancheck.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dge_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n,
|
||||
const double *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < n; j++ ) {
|
||||
for( i = 0; i < MIN( m, lda ); i++ ) {
|
||||
if( LAPACK_DISNAN( a[i+(size_t)j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
for( i = 0; i < m; i++ ) {
|
||||
for( j = 0; j < MIN( n, lda ); j++ ) {
|
||||
if( LAPACK_DISNAN( a[(size_t)i*lda+j] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
65
lapack-netlib/lapacke/utils/lapacke_dge_trans.c
Normal file
65
lapack-netlib/lapacke/utils/lapacke_dge_trans.c
Normal file
@@ -0,0 +1,65 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dge_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
const double* in, lapack_int ldin,
|
||||
double* out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j, x, y;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
x = n;
|
||||
y = m;
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
x = m;
|
||||
y = n;
|
||||
} else {
|
||||
/* Unknown input layout */
|
||||
return;
|
||||
}
|
||||
|
||||
/* In case of incorrect m, n, ldin or ldout the function does nothing */
|
||||
for( i = 0; i < MIN( y, ldin ); i++ ) {
|
||||
for( j = 0; j < MIN( x, ldout ); j++ ) {
|
||||
out[ (size_t)i*ldout + j ] = in[ (size_t)j*ldin + i ];
|
||||
}
|
||||
}
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_dgg_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_dgg_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dgg_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n,
|
||||
const double *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_dge_nancheck( matrix_order, m, n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dgg_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dgg_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dgg_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
const double* in, lapack_int ldin,
|
||||
double* out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_dge_trans( matrix_order, m, n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dgt_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dgt_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dgt_nancheck( lapack_int n,
|
||||
const double *dl,
|
||||
const double *d,
|
||||
const double *du )
|
||||
{
|
||||
return LAPACKE_d_nancheck( n-1, dl, 1 )
|
||||
|| LAPACKE_d_nancheck( n , d, 1 )
|
||||
|| LAPACKE_d_nancheck( n-1, du, 1 );
|
||||
}
|
||||
57
lapack-netlib/lapacke/utils/lapacke_dhs_nancheck.c
Normal file
57
lapack-netlib/lapacke/utils/lapacke_dhs_nancheck.c
Normal file
@@ -0,0 +1,57 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dhs_nancheck( int matrix_order, lapack_int n,
|
||||
const double *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_logical subdiag_nans;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
/* Check subdiagonal first */
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
subdiag_nans = LAPACKE_d_nancheck( n-1, &a[1], lda+1 );
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
subdiag_nans = LAPACKE_d_nancheck( n-1, &a[lda], lda+1 );
|
||||
} else {
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
/* Check upper triangular if subdiagonal has no NaNs. */
|
||||
return subdiag_nans || LAPACKE_dtr_nancheck( matrix_order, 'u', 'n',
|
||||
n, a, lda);
|
||||
}
|
||||
59
lapack-netlib/lapacke/utils/lapacke_dhs_trans.c
Normal file
59
lapack-netlib/lapacke/utils/lapacke_dhs_trans.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input Hessenberg matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dhs_trans( int matrix_order, lapack_int n,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
/* Convert subdiagonal first */
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, 1, n-1, &in[1], ldin+1,
|
||||
&out[ldout], ldout+1 );
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
LAPACKE_dge_trans( LAPACK_ROW_MAJOR, n-1, 1, &in[ldin], ldin+1,
|
||||
&out[1], ldout+1 );
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Convert upper triangular. */
|
||||
LAPACKE_dtr_trans( matrix_order, 'u', 'n', n, in, ldin, out, ldout);
|
||||
}
|
||||
48
lapack-netlib/lapacke/utils/lapacke_dpb_nancheck.c
Normal file
48
lapack-netlib/lapacke/utils/lapacke_dpb_nancheck.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dpb_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n, lapack_int kd,
|
||||
const double* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
50
lapack-netlib/lapacke/utils/lapacke_dpb_trans.c
Normal file
50
lapack-netlib/lapacke/utils/lapacke_dpb_trans.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric banded matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dpb_trans( int matrix_order, char uplo, lapack_int n,
|
||||
lapack_int kd,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n, n, 0, kd, in, ldin, out, ldout );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n, n, kd, 0, in, ldin, out, ldout );
|
||||
}
|
||||
}
|
||||
46
lapack-netlib/lapacke/utils/lapacke_dpf_nancheck.c
Normal file
46
lapack-netlib/lapacke/utils/lapacke_dpf_nancheck.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo, transr or
|
||||
* matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_dpf_nancheck( lapack_int n,
|
||||
const double *a )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_d_nancheck( len, a, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dpf_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dpf_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input RFP matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dpf_trans( int matrix_order, char transr, char uplo,
|
||||
lapack_int n, const double *in,
|
||||
double *out )
|
||||
{
|
||||
LAPACKE_dtf_trans( matrix_order, transr, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_dpo_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_dpo_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dpo_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n,
|
||||
const double *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_dtr_nancheck( matrix_order, uplo, 'n', n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dpo_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dpo_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dpo_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_dtr_trans( matrix_order, uplo, 'n', n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dpp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dpp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_dpp_nancheck( lapack_int n,
|
||||
const double *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_d_nancheck( len, ap, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dpp_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dpp_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dpp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const double *in,
|
||||
double *out )
|
||||
{
|
||||
LAPACKE_dtp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_dpt_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_dpt_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dpt_nancheck( lapack_int n,
|
||||
const double *d,
|
||||
const double *e )
|
||||
{
|
||||
return LAPACKE_d_nancheck( n, d, 1 )
|
||||
|| LAPACKE_d_nancheck( n-1, e, 1 );
|
||||
}
|
||||
48
lapack-netlib/lapacke/utils/lapacke_dsb_nancheck.c
Normal file
48
lapack-netlib/lapacke/utils/lapacke_dsb_nancheck.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dsb_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n, lapack_int kd,
|
||||
const double* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
50
lapack-netlib/lapacke/utils/lapacke_dsb_trans.c
Normal file
50
lapack-netlib/lapacke/utils/lapacke_dsb_trans.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetrical band matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dsb_trans( int matrix_order, char uplo, lapack_int n,
|
||||
lapack_int kd,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n, n, 0, kd, in, ldin, out, ldout );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n, n, kd, 0, in, ldin, out, ldout );
|
||||
}
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dsp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dsp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_dsp_nancheck( lapack_int n,
|
||||
const double *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_d_nancheck( len, ap, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dsp_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dsp_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dsp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const double *in,
|
||||
double *out )
|
||||
{
|
||||
LAPACKE_dtp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_dst_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_dst_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dst_nancheck( lapack_int n,
|
||||
const double *d,
|
||||
const double *e )
|
||||
{
|
||||
return LAPACKE_d_nancheck( n, d, 1 )
|
||||
|| LAPACKE_d_nancheck( n-1, e, 1 );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_dsy_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_dsy_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dsy_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n,
|
||||
const double *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_dtr_nancheck( matrix_order, uplo, 'n', n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_dsy_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_dsy_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dsy_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_dtr_trans( matrix_order, uplo, 'n', n, in, ldin, out, ldout );
|
||||
}
|
||||
84
lapack-netlib/lapacke/utils/lapacke_dtb_nancheck.c
Normal file
84
lapack-netlib/lapacke/utils/lapacke_dtb_nancheck.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dtb_nancheck( int matrix_order, char uplo, char diag,
|
||||
lapack_int n, lapack_int kd,
|
||||
const double* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( ab == NULL ) return (lapack_logical) 0;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal should be excluded from the check for NaN. */
|
||||
if( colmaj ) {
|
||||
if( upper ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&ab[ldab], ldab );
|
||||
} else {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&ab[1], ldab );
|
||||
}
|
||||
} else {
|
||||
if( upper ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&ab[1], ldab );
|
||||
} else {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&ab[ldab], ldab );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Non-unit case */
|
||||
if( upper ) {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else {
|
||||
return LAPACKE_dgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
}
|
||||
}
|
||||
89
lapack-netlib/lapacke/utils/lapacke_dtb_trans.c
Normal file
89
lapack-netlib/lapacke/utils/lapacke_dtb_trans.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input triangular banded matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dtb_trans( int matrix_order, char uplo, char diag,
|
||||
lapack_int n, lapack_int kd,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal excluded from transposition */
|
||||
if( colmaj ) {
|
||||
if( upper ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&in[ldin], ldin, &out[1], ldout );
|
||||
} else {
|
||||
LAPACKE_dgb_trans( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&in[1], ldin, &out[ldout], ldout );
|
||||
}
|
||||
} else {
|
||||
if( upper ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n-1, n-1, 0, kd-1,
|
||||
&in[1], ldin, &out[ldout], ldout );
|
||||
} else {
|
||||
LAPACKE_dgb_trans( matrix_order, n-1, n-1, kd-1, 0,
|
||||
&in[ldin], ldin, &out[1], ldout );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Non-unit case */
|
||||
if( upper ) {
|
||||
LAPACKE_dgb_trans( matrix_order, n, n, 0, kd, in, ldin, out,
|
||||
ldout );
|
||||
} else {
|
||||
LAPACKE_dgb_trans( matrix_order, n, n, kd, 0, in, ldin, out,
|
||||
ldout );
|
||||
}
|
||||
}
|
||||
}
|
||||
157
lapack-netlib/lapacke/utils/lapacke_dtf_nancheck.c
Normal file
157
lapack-netlib/lapacke/utils/lapacke_dtf_nancheck.c
Normal file
@@ -0,0 +1,157 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dtf_nancheck( int matrix_order, char transr,
|
||||
char uplo, char diag,
|
||||
lapack_int n,
|
||||
const double *a )
|
||||
{
|
||||
lapack_int len;
|
||||
lapack_logical rowmaj, ntr, lower, unit;
|
||||
lapack_int n1, n2, k;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
rowmaj = (matrix_order == LAPACK_ROW_MAJOR);
|
||||
ntr = LAPACKE_lsame( transr, 'n' );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !rowmaj && ( matrix_order != LAPACK_COL_MAJOR ) ) ||
|
||||
( !ntr && !LAPACKE_lsame( transr, 't' )
|
||||
&& !LAPACKE_lsame( transr, 'c' ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal should be excluded from the check for NaN.
|
||||
* Decoding RFP and checking both triangulars and rectangular
|
||||
* for NaNs.
|
||||
*/
|
||||
if( lower ) {
|
||||
n2 = n / 2;
|
||||
n1 = n - n2;
|
||||
} else {
|
||||
n1 = n / 2;
|
||||
n2 = n - n1;
|
||||
}
|
||||
if( n % 2 == 1 ) {
|
||||
/* N is odd */
|
||||
if( ( rowmaj || ntr ) && !( rowmaj && ntr ) ) {
|
||||
/* N is odd and ( TRANSR = 'N' .XOR. ROWMAJOR) */
|
||||
if( lower ) {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n1, &a[0], n )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, n2, n1,
|
||||
&a[n1], n )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n2, &a[n], n );
|
||||
} else {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n1, &a[n2], n )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, n1, n2,
|
||||
&a[0], n )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n2, &a[n1], n );
|
||||
}
|
||||
} else {
|
||||
/* N is odd and
|
||||
( ( TRANSR = 'C' || TRANSR = 'T' ) .XOR. COLMAJOR ) */
|
||||
if( lower ) {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n1, &a[0], n1 )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, n1, n2,
|
||||
&a[1], n1 )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n2, &a[1], n1 );
|
||||
} else {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
n1, &a[(size_t)n2*n2], n2 )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, n2, n1,
|
||||
&a[0], n2 )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
n2, &a[(size_t)n1*n2], n2 );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* N is even */
|
||||
k = n / 2;
|
||||
if( ( rowmaj || ntr ) && !( rowmaj && ntr ) ) {
|
||||
/* N is even and ( TRANSR = 'N' .XOR. ROWMAJOR) */
|
||||
if( lower ) {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[1], n+1 )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[k+1], n+1 )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[0], n+1 );
|
||||
} else {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[k+1], n+1 )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[0], n+1 )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[k], n+1 );
|
||||
}
|
||||
} else {
|
||||
/* N is even and
|
||||
( ( TRANSR = 'C' || TRANSR = 'T' ) .XOR. COLMAJOR ) */
|
||||
if( lower ) {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[k], k )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[(size_t)k*(k+1)], k )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[0], k );
|
||||
} else {
|
||||
return LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'u', 'u',
|
||||
k, &a[(size_t)k*(k+1)], k )
|
||||
|| LAPACKE_dge_nancheck( LAPACK_ROW_MAJOR, k, k,
|
||||
&a[0], k )
|
||||
|| LAPACKE_dtr_nancheck( LAPACK_ROW_MAJOR, 'l', 'u',
|
||||
k, &a[(size_t)k*k], k );
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* Non-unit case - just check whole array for NaNs. */
|
||||
len = n*(n+1)/2;
|
||||
return LAPACKE_dge_nancheck( LAPACK_COL_MAJOR, len, 1, a, len );
|
||||
}
|
||||
}
|
||||
89
lapack-netlib/lapacke/utils/lapacke_dtf_trans.c
Normal file
89
lapack-netlib/lapacke/utils/lapacke_dtf_trans.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input RFP matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
* This functions does copy diagonal for both unit and non-unit cases.
|
||||
*/
|
||||
|
||||
void LAPACKE_dtf_trans( int matrix_order, char transr, char uplo, char diag,
|
||||
lapack_int n, const double *in,
|
||||
double *out )
|
||||
{
|
||||
lapack_int row, col;
|
||||
lapack_logical rowmaj, ntr, lower, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return ;
|
||||
|
||||
rowmaj = (matrix_order == LAPACK_ROW_MAJOR);
|
||||
ntr = LAPACKE_lsame( transr, 'n' );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !rowmaj && ( matrix_order != LAPACK_COL_MAJOR ) ) ||
|
||||
( !ntr && !LAPACKE_lsame( transr, 't' ) &&
|
||||
!LAPACKE_lsame( transr, 'c' ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Determine parameters of array representing RFP */
|
||||
if( ntr ) {
|
||||
if( n%2 == 0 ) {
|
||||
row = n + 1;
|
||||
col = n / 2;
|
||||
} else {
|
||||
row = n;
|
||||
col = (n + 1) / 2;
|
||||
}
|
||||
} else {
|
||||
if( n%2 == 0 ) {
|
||||
row = n / 2;
|
||||
col = n + 1;
|
||||
} else {
|
||||
row = (n + 1) / 2;
|
||||
col = n;
|
||||
}
|
||||
}
|
||||
|
||||
/* Perform conversion: */
|
||||
if( rowmaj ) {
|
||||
LAPACKE_dge_trans( LAPACK_ROW_MAJOR, row, col, in, col, out, row );
|
||||
} else {
|
||||
LAPACKE_dge_trans( LAPACK_COL_MAJOR, row, col, in, row, out, col );
|
||||
}
|
||||
}
|
||||
83
lapack-netlib/lapacke/utils/lapacke_dtp_nancheck.c
Normal file
83
lapack-netlib/lapacke/utils/lapacke_dtp_nancheck.c
Normal file
@@ -0,0 +1,83 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_dtp_nancheck( int matrix_order, char uplo, char diag,
|
||||
lapack_int n,
|
||||
const double *ap )
|
||||
{
|
||||
lapack_int i, len;
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( ap == NULL ) return (lapack_logical) 0;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
if( unit ) {
|
||||
/* Unit case, diagonal should be excluded from the check for NaN. */
|
||||
|
||||
/* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || upper ) && !( colmaj && upper ) ) {
|
||||
for( i = 1; i < n; i++ )
|
||||
if( LAPACKE_d_nancheck( i, &ap[ ((size_t)i+1)*i/2 ], 1 ) )
|
||||
return (lapack_logical) 1;
|
||||
} else {
|
||||
for( i = 0; i < n-1; i++ )
|
||||
if( LAPACKE_d_nancheck( n-i-1,
|
||||
&ap[ (size_t)i+1 + i*((size_t)2*n-i+1)/2 ], 1 ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
} else {
|
||||
/* Non-unit case - just check whole array for NaNs. */
|
||||
len = n*(n+1)/2;
|
||||
return LAPACKE_d_nancheck( len, ap, 1 );
|
||||
}
|
||||
}
|
||||
85
lapack-netlib/lapacke/utils/lapacke_dtp_trans.c
Normal file
85
lapack-netlib/lapacke/utils/lapacke_dtp_trans.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input triangular packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dtp_trans( int matrix_order, char uplo, char diag,
|
||||
lapack_int n, const double *in,
|
||||
double *out )
|
||||
{
|
||||
lapack_int i, j, st;
|
||||
lapack_logical colmaj, upper, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return ;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
upper = LAPACKE_lsame( uplo, 'u' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !upper && !LAPACKE_lsame( uplo, 'l' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
if( unit ) {
|
||||
/* If unit, then don't touch diagonal, start from 1st column or row */
|
||||
st = 1;
|
||||
} else {
|
||||
/* If non-unit, then check diagonal also, starting from [0,0] */
|
||||
st = 0;
|
||||
}
|
||||
|
||||
/* Perform conversion:
|
||||
* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || upper ) && !( colmaj && upper ) ) {
|
||||
for( j = st; j < n; j++ ) {
|
||||
for( i = 0; i < j+1-st; i++ ) {
|
||||
out[ j-i + (i*(2*n-i+1))/2 ] = in[ ((j+1)*j)/2 + i ];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for( j = 0; j < n-st; j++ ) {
|
||||
for( i = j+st; i < n; i++ ) {
|
||||
out[ j + ((i+1)*i)/2 ] = in[ (j*(2*n-j+1))/2 + i-j ];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
lapack-netlib/lapacke/utils/lapacke_dtr_nancheck.c
Normal file
85
lapack-netlib/lapacke/utils/lapacke_dtr_nancheck.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_dtr_nancheck( int matrix_order, char uplo, char diag,
|
||||
lapack_int n,
|
||||
const double *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_int i, j, st;
|
||||
lapack_logical colmaj, lower, unit;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
if( unit ) {
|
||||
/* If unit, then don't touch diagonal, start from 1st column or row */
|
||||
st = 1;
|
||||
} else {
|
||||
/* If non-unit, then check diagonal also, starting from [0,0] */
|
||||
st = 0;
|
||||
}
|
||||
|
||||
/* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || lower ) && !( colmaj && lower ) ) {
|
||||
for( j = st; j < n; j++ ) {
|
||||
for( i = 0; i < MIN( j+1-st, lda ); i++ ) {
|
||||
if( LAPACK_DISNAN( a[i+j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for( j = 0; j < n-st; j++ ) {
|
||||
for( i = j+st; i < MIN( n, lda ); i++ ) {
|
||||
if( LAPACK_DISNAN( a[i+j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
85
lapack-netlib/lapacke/utils/lapacke_dtr_trans.c
Normal file
85
lapack-netlib/lapacke/utils/lapacke_dtr_trans.c
Normal file
@@ -0,0 +1,85 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input triangular matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_dtr_trans( int matrix_order, char uplo, char diag, lapack_int n,
|
||||
const double *in, lapack_int ldin,
|
||||
double *out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j, st;
|
||||
lapack_logical colmaj, lower, unit;
|
||||
|
||||
if( in == NULL || out == NULL ) return ;
|
||||
|
||||
colmaj = ( matrix_order == LAPACK_COL_MAJOR );
|
||||
lower = LAPACKE_lsame( uplo, 'l' );
|
||||
unit = LAPACKE_lsame( diag, 'u' );
|
||||
|
||||
if( ( !colmaj && ( matrix_order != LAPACK_ROW_MAJOR ) ) ||
|
||||
( !lower && !LAPACKE_lsame( uplo, 'u' ) ) ||
|
||||
( !unit && !LAPACKE_lsame( diag, 'n' ) ) ) {
|
||||
/* Just exit if any of input parameters are wrong */
|
||||
return;
|
||||
}
|
||||
if( unit ) {
|
||||
/* If unit, then don't touch diagonal, start from 1st column or row */
|
||||
st = 1;
|
||||
} else {
|
||||
/* If non-unit, then check diagonal also, starting from [0,0] */
|
||||
st = 0;
|
||||
}
|
||||
|
||||
/* Perform conversion:
|
||||
* Since col_major upper and row_major lower are equal,
|
||||
* and col_major lower and row_major upper are equals too -
|
||||
* using one code for equal cases. XOR( colmaj, upper )
|
||||
*/
|
||||
if( ( colmaj || lower ) && !( colmaj && lower ) ) {
|
||||
for( j = st; j < MIN( n, ldout ); j++ ) {
|
||||
for( i = 0; i < MIN( j+1-st, ldin ); i++ ) {
|
||||
out[ j+i*ldout ] = in[ i+j*ldin ];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for( j = 0; j < MIN( n-st, ldout ); j++ ) {
|
||||
for( i = j+st; i < MIN( n, ldin ); i++ ) {
|
||||
out[ j+i*ldout ] = in[ i+j*ldin ];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
41
lapack-netlib/lapacke/utils/lapacke_lsame.c
Normal file
41
lapack-netlib/lapacke/utils/lapacke_lsame.c
Normal file
@@ -0,0 +1,41 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK lsame
|
||||
* Author: Intel Corporation
|
||||
* Created in January, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
lapack_logical LAPACKE_lsame( char ca, char cb )
|
||||
{
|
||||
return (lapack_logical) LAPACK_lsame( &ca, &cb, 1, 1 );
|
||||
}
|
||||
|
||||
|
||||
51
lapack-netlib/lapacke/utils/lapacke_make_complex_double.c
Normal file
51
lapack-netlib/lapacke/utils/lapacke_make_complex_double.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in May, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke.h"
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
#ifndef LAPACK_COMPLEX_CUSTOM
|
||||
lapack_complex_double lapack_make_complex_double( double re, double im ) {
|
||||
lapack_complex_double z;
|
||||
#if defined(LAPACK_COMPLEX_STRUCTURE)
|
||||
z.real = re;
|
||||
z.imag = im;
|
||||
#elif defined(LAPACK_COMPLEX_C99)
|
||||
z = re + im * I;
|
||||
#elif defined(LAPACK_COMPLEX_CPP)
|
||||
z = std::complex<double>(re,im);
|
||||
#else /* C99 is default */
|
||||
z = re + im*I;
|
||||
#endif
|
||||
return z;
|
||||
}
|
||||
#endif
|
||||
51
lapack-netlib/lapacke/utils/lapacke_make_complex_float.c
Normal file
51
lapack-netlib/lapacke/utils/lapacke_make_complex_float.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in May, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke.h"
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
#ifndef LAPACK_COMPLEX_CUSTOM
|
||||
lapack_complex_float lapack_make_complex_float( float re, float im ) {
|
||||
lapack_complex_float z;
|
||||
#if defined(LAPACK_COMPLEX_STRUCTURE)
|
||||
z.real = re;
|
||||
z.imag = im;
|
||||
#elif defined(LAPACK_COMPLEX_C99)
|
||||
z = re + im * I;
|
||||
#elif defined(LAPACK_COMPLEX_CPP)
|
||||
z = std::complex<float>(re,im);
|
||||
#else /* C99 is default */
|
||||
z = re + im*I;
|
||||
#endif
|
||||
return z;
|
||||
}
|
||||
#endif
|
||||
51
lapack-netlib/lapacke/utils/lapacke_s_nancheck.c
Normal file
51
lapack-netlib/lapacke/utils/lapacke_s_nancheck.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a vector for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_s_nancheck( lapack_int n,
|
||||
const float *x,
|
||||
lapack_int incx )
|
||||
{
|
||||
lapack_int i, inc;
|
||||
|
||||
if( incx == 0 ) return (lapack_logical) LAPACK_SISNAN( x[0] );
|
||||
inc = ( incx > 0 ) ? incx : -incx ;
|
||||
|
||||
for( i = 0; i < n*inc; i+=inc ) {
|
||||
if( LAPACK_SISNAN( x[i] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
64
lapack-netlib/lapacke/utils/lapacke_sgb_nancheck.c
Normal file
64
lapack-netlib/lapacke/utils/lapacke_sgb_nancheck.c
Normal file
@@ -0,0 +1,64 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_sgb_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n, lapack_int kl,
|
||||
lapack_int ku,
|
||||
const float *ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( ab == NULL ) return (lapack_logical) 0;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < n; j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldab, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
if( LAPACK_SISNAN( ab[i+(size_t)j*ldab] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
for( j = 0; j < MIN( n, ldab ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN( m+ku-j, kl+ku+1 ); i++ ) {
|
||||
if( LAPACK_SISNAN( ab[(size_t)i*ldab+j] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
67
lapack-netlib/lapacke/utils/lapacke_sgb_trans.c
Normal file
67
lapack-netlib/lapacke/utils/lapacke_sgb_trans.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general band matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_sgb_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
lapack_int kl, lapack_int ku,
|
||||
const float *in, lapack_int ldin,
|
||||
float *out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < MIN( ldout, n ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldin, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
out[(size_t)i*ldout+j] = in[i+(size_t)j*ldin];
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
/* TODO: interchange loops for performance.
|
||||
* This is just reference impemeltation.
|
||||
*/
|
||||
for( j = 0; j < MIN( n, ldin ); j++ ) {
|
||||
for( i = MAX( ku-j, 0 ); i < MIN3( ldout, m+ku-j, kl+ku+1 );
|
||||
i++ ) {
|
||||
out[i+(size_t)j*ldout] = in[(size_t)i*ldin+j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
62
lapack-netlib/lapacke/utils/lapacke_sge_nancheck.c
Normal file
62
lapack-netlib/lapacke/utils/lapacke_sge_nancheck.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_sge_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n,
|
||||
const float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_int i, j;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
for( j = 0; j < n; j++ ) {
|
||||
for( i = 0; i < MIN( m, lda ); i++ ) {
|
||||
if( LAPACK_SISNAN( a[i+(size_t)j*lda] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
for( i = 0; i < m; i++ ) {
|
||||
for( j = 0; j < MIN( n, lda ); j++ ) {
|
||||
if( LAPACK_SISNAN( a[(size_t)i*lda+j] ) )
|
||||
return (lapack_logical) 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
65
lapack-netlib/lapacke/utils/lapacke_sge_trans.c
Normal file
65
lapack-netlib/lapacke/utils/lapacke_sge_trans.c
Normal file
@@ -0,0 +1,65 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_sge_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
const float* in, lapack_int ldin,
|
||||
float* out, lapack_int ldout )
|
||||
{
|
||||
lapack_int i, j, x, y;
|
||||
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
x = n;
|
||||
y = m;
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
x = m;
|
||||
y = n;
|
||||
} else {
|
||||
/* Unknown input layout */
|
||||
return;
|
||||
}
|
||||
|
||||
/* In case of incorrect m, n, ldin or ldout the function does nothing */
|
||||
for( i = 0; i < MIN( y, ldin ); i++ ) {
|
||||
for( j = 0; j < MIN( x, ldout ); j++ ) {
|
||||
out[ (size_t)i*ldout + j ] = in[ (size_t)j*ldin + i ];
|
||||
}
|
||||
}
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_sgg_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_sgg_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_sgg_nancheck( int matrix_order, lapack_int m,
|
||||
lapack_int n,
|
||||
const float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_sge_nancheck( matrix_order, m, n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_sgg_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_sgg_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input general matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_sgg_trans( int matrix_order, lapack_int m, lapack_int n,
|
||||
const float* in, lapack_int ldin,
|
||||
float* out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_sge_trans( matrix_order, m, n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_sgt_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_sgt_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_sgt_nancheck( lapack_int n,
|
||||
const float *dl,
|
||||
const float *d,
|
||||
const float *du )
|
||||
{
|
||||
return LAPACKE_s_nancheck( n-1, dl, 1 )
|
||||
|| LAPACKE_s_nancheck( n , d, 1 )
|
||||
|| LAPACKE_s_nancheck( n-1, du, 1 );
|
||||
}
|
||||
57
lapack-netlib/lapacke/utils/lapacke_shs_nancheck.c
Normal file
57
lapack-netlib/lapacke/utils/lapacke_shs_nancheck.c
Normal file
@@ -0,0 +1,57 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_shs_nancheck( int matrix_order, lapack_int n,
|
||||
const float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
lapack_logical subdiag_nans;
|
||||
|
||||
if( a == NULL ) return (lapack_logical) 0;
|
||||
|
||||
/* Check subdiagonal first */
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
subdiag_nans = LAPACKE_s_nancheck( n-1, &a[1], lda+1 );
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
subdiag_nans = LAPACKE_s_nancheck( n-1, &a[lda], lda+1 );
|
||||
} else {
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
|
||||
/* Check upper triangular if subdiagonal has no NaNs. */
|
||||
return subdiag_nans || LAPACKE_str_nancheck( matrix_order, 'u', 'n',
|
||||
n, a, lda);
|
||||
}
|
||||
59
lapack-netlib/lapacke/utils/lapacke_shs_trans.c
Normal file
59
lapack-netlib/lapacke/utils/lapacke_shs_trans.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input Hessenberg matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_shs_trans( int matrix_order, lapack_int n,
|
||||
const float *in, lapack_int ldin,
|
||||
float *out, lapack_int ldout )
|
||||
{
|
||||
if( in == NULL || out == NULL ) return;
|
||||
|
||||
/* Convert subdiagonal first */
|
||||
if( matrix_order == LAPACK_COL_MAJOR ) {
|
||||
LAPACKE_sge_trans( LAPACK_COL_MAJOR, 1, n-1, &in[1], ldin+1,
|
||||
&out[ldout], ldout+1 );
|
||||
} else if ( matrix_order == LAPACK_ROW_MAJOR ) {
|
||||
LAPACKE_sge_trans( LAPACK_ROW_MAJOR, n-1, 1, &in[ldin], ldin+1,
|
||||
&out[1], ldout+1 );
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Convert upper triangular. */
|
||||
LAPACKE_str_trans( matrix_order, 'u', 'n', n, in, ldin, out, ldout);
|
||||
}
|
||||
48
lapack-netlib/lapacke/utils/lapacke_spb_nancheck.c
Normal file
48
lapack-netlib/lapacke/utils/lapacke_spb_nancheck.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_spb_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n, lapack_int kd,
|
||||
const float* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
return LAPACKE_sgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
return LAPACKE_sgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
50
lapack-netlib/lapacke/utils/lapacke_spb_trans.c
Normal file
50
lapack-netlib/lapacke/utils/lapacke_spb_trans.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric banded matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_spb_trans( int matrix_order, char uplo, lapack_int n,
|
||||
lapack_int kd,
|
||||
const float *in, lapack_int ldin,
|
||||
float *out, lapack_int ldout )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
LAPACKE_sgb_trans( matrix_order, n, n, 0, kd, in, ldin, out, ldout );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
LAPACKE_sgb_trans( matrix_order, n, n, kd, 0, in, ldin, out, ldout );
|
||||
}
|
||||
}
|
||||
46
lapack-netlib/lapacke/utils/lapacke_spf_nancheck.c
Normal file
46
lapack-netlib/lapacke/utils/lapacke_spf_nancheck.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo, transr or
|
||||
* matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_spf_nancheck( lapack_int n,
|
||||
const float *a )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_s_nancheck( len, a, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_spf_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_spf_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input RFP matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_spf_trans( int matrix_order, char transr, char uplo,
|
||||
lapack_int n, const float *in,
|
||||
float *out )
|
||||
{
|
||||
LAPACKE_stf_trans( matrix_order, transr, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_spo_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_spo_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_spo_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n,
|
||||
const float *a,
|
||||
lapack_int lda )
|
||||
{
|
||||
return LAPACKE_str_nancheck( matrix_order, uplo, 'n', n, a, lda );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_spo_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_spo_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric matrix from row-major(C) to column-major(Fortran)
|
||||
* layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_spo_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const float *in, lapack_int ldin,
|
||||
float *out, lapack_int ldout )
|
||||
{
|
||||
LAPACKE_str_trans( matrix_order, uplo, 'n', n, in, ldin, out, ldout );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_spp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_spp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_spp_nancheck( lapack_int n,
|
||||
const float *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_s_nancheck( len, ap, 1 );
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_spp_trans.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_spp_trans.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_spp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const float *in,
|
||||
float *out )
|
||||
{
|
||||
LAPACKE_stp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
43
lapack-netlib/lapacke/utils/lapacke_spt_nancheck.c
Normal file
43
lapack-netlib/lapacke/utils/lapacke_spt_nancheck.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_spt_nancheck( lapack_int n,
|
||||
const float *d,
|
||||
const float *e )
|
||||
{
|
||||
return LAPACKE_s_nancheck( n, d, 1 )
|
||||
|| LAPACKE_s_nancheck( n-1, e, 1 );
|
||||
}
|
||||
48
lapack-netlib/lapacke/utils/lapacke_ssb_nancheck.c
Normal file
48
lapack-netlib/lapacke/utils/lapacke_ssb_nancheck.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries. */
|
||||
|
||||
lapack_logical LAPACKE_ssb_nancheck( int matrix_order, char uplo,
|
||||
lapack_int n, lapack_int kd,
|
||||
const float* ab,
|
||||
lapack_int ldab )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
return LAPACKE_sgb_nancheck( matrix_order, n, n, 0, kd, ab, ldab );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
return LAPACKE_sgb_nancheck( matrix_order, n, n, kd, 0, ab, ldab );
|
||||
}
|
||||
return (lapack_logical) 0;
|
||||
}
|
||||
50
lapack-netlib/lapacke/utils/lapacke_ssb_trans.c
Normal file
50
lapack-netlib/lapacke/utils/lapacke_ssb_trans.c
Normal file
@@ -0,0 +1,50 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetrical band matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_ssb_trans( int matrix_order, char uplo, lapack_int n,
|
||||
lapack_int kd,
|
||||
const float *in, lapack_int ldin,
|
||||
float *out, lapack_int ldout )
|
||||
{
|
||||
if( LAPACKE_lsame( uplo, 'u' ) ) {
|
||||
LAPACKE_sgb_trans( matrix_order, n, n, 0, kd, in, ldin, out, ldout );
|
||||
} else if( LAPACKE_lsame( uplo, 'l' ) ) {
|
||||
LAPACKE_sgb_trans( matrix_order, n, n, kd, 0, in, ldin, out, ldout );
|
||||
}
|
||||
}
|
||||
45
lapack-netlib/lapacke/utils/lapacke_ssp_nancheck.c
Normal file
45
lapack-netlib/lapacke/utils/lapacke_ssp_nancheck.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Check a matrix for NaN entries.
|
||||
* Since matrix in packed format stored continiously it just required to
|
||||
* check 1d array for NaNs. It doesn't depend upon uplo or matrix_order.
|
||||
*/
|
||||
|
||||
lapack_logical LAPACKE_ssp_nancheck( lapack_int n,
|
||||
const float *ap )
|
||||
{
|
||||
lapack_int len = n*(n+1)/2;
|
||||
return LAPACKE_s_nancheck( len, ap, 1 );
|
||||
}
|
||||
46
lapack-netlib/lapacke/utils/lapacke_ssp_trans.c
Normal file
46
lapack-netlib/lapacke/utils/lapacke_ssp_trans.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2010, Intel Corp.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************
|
||||
* Contents: Native C interface to LAPACK utility function
|
||||
* Author: Intel Corporation
|
||||
* Created in February, 2010
|
||||
*****************************************************************************/
|
||||
|
||||
#include "lapacke_utils.h"
|
||||
|
||||
/* Converts input symmetric packed matrix from row-major(C) to
|
||||
* column-major(Fortran) layout or vice versa.
|
||||
*/
|
||||
|
||||
void LAPACKE_ssp_trans( int matrix_order, char uplo, lapack_int n,
|
||||
const float *in,
|
||||
float *out )
|
||||
{
|
||||
LAPACKE_stp_trans( matrix_order, uplo, 'n', n, in, out );
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user