diff --git a/sklearn/setup.py b/sklearn/setup.py index a20d7e4e3fe22..80eea57fb6fbe 100644 --- a/sklearn/setup.py +++ b/sklearn/setup.py @@ -1,15 +1,16 @@ import os -from os.path import join -import warnings from sklearn._build_utils import maybe_cythonize_extensions def configuration(parent_package='', top_path=None): from numpy.distutils.misc_util import Configuration - from numpy.distutils.system_info import get_info, BlasNotFoundError + from numpy.distutils.system_info import get_info import numpy + # needs to be called during build otherwise show_version may fail sometimes + get_info('blas_opt', 0) + libraries = [] if os.name == 'posix': libraries.append('m') @@ -44,7 +45,6 @@ def configuration(parent_package='', top_path=None): config.add_subpackage('semi_supervised/tests') # submodules which have their own setup.py - # leave out "linear_model" and "utils" for now; add them after cblas below config.add_subpackage('cluster') config.add_subpackage('datasets') config.add_subpackage('decomposition') @@ -55,7 +55,9 @@ def configuration(parent_package='', top_path=None): config.add_subpackage('metrics') config.add_subpackage('neighbors') config.add_subpackage('tree') + config.add_subpackage('utils') config.add_subpackage('svm') + config.add_subpackage('linear_model') # add cython extension module for isotonic regression config.add_extension('_isotonic', @@ -64,19 +66,6 @@ def configuration(parent_package='', top_path=None): libraries=libraries, ) - # some libs needs cblas, fortran-compiled BLAS will not be sufficient - blas_info = get_info('blas_opt', 0) - if (not blas_info) or ( - ('NO_ATLAS_INFO', 1) in blas_info.get('define_macros', [])): - config.add_library('cblas', - sources=[join('src', 'cblas', '*.c')]) - warnings.warn(BlasNotFoundError.__doc__) - - # the following packages depend on cblas, so they have to be build - # after the above. - config.add_subpackage('linear_model') - config.add_subpackage('utils') - # add the test directory config.add_subpackage('tests') @@ -84,6 +73,7 @@ def configuration(parent_package='', top_path=None): return config + if __name__ == '__main__': from numpy.distutils.core import setup setup(**configuration(top_path='').todict()) diff --git a/sklearn/src/cblas/ATL_drefasum.c b/sklearn/src/cblas/ATL_drefasum.c deleted file mode 100644 index 221c19363967e..0000000000000 --- a/sklearn/src/cblas/ATL_drefasum.c +++ /dev/null @@ -1,133 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -double ATL_drefasum -( - const int N, - const double * X, - const int INCX -) -{ -/* - * Purpose - * ======= - * - * ATL_drefasum returns the sum of absolute values of the entries of a - * vector x. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double sum = ATL_dZERO, x0, x1, x2, x3, - x4, x5, x6, x7; - double * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incX3 = 3 * INCX, - incX4 = 4 * INCX, incX5 = 5 * INCX, - incX6 = 6 * INCX, incX7 = 7 * INCX, - incX8 = 8 * INCX; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && ( INCX >= 1 ) ) - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; x3 = X[incX3]; x7 = X[incX7]; - - sum += Mdabs( x0 ); sum += Mdabs( x4 ); - sum += Mdabs( x1 ); sum += Mdabs( x3 ); - sum += Mdabs( x2 ); sum += Mdabs( x6 ); - sum += Mdabs( x5 ); sum += Mdabs( x7 ); - - X += incX8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - sum += Mdabs( x0 ); - X += INCX; - } - } - return( sum ); -/* - * End of ATL_drefasum - */ -} diff --git a/sklearn/src/cblas/ATL_drefcopy.c b/sklearn/src/cblas/ATL_drefcopy.c deleted file mode 100644 index 6e7cae5da8262..0000000000000 --- a/sklearn/src/cblas/ATL_drefcopy.c +++ /dev/null @@ -1,148 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -void ATL_drefcopy -( - const int N, - const double * X, - const int INCX, - double * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_drefcopy copies the entries of an n-vector x into an n-vector y. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input/output) double * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( double ), - * that contains the vector y. On exit, the entries of the in- - * cremented array X are copied into the entries of the incre- - * mented array Y. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double x0, x1, x2, x3, x4, x5, x6, x7; - double * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY, - incX5 = 5 * INCX, incY5 = 5 * INCY, - incX6 = 6 * INCX, incY6 = 6 * INCY, - incX7 = 7 * INCX, incY7 = 7 * INCY, - incX8 = 8 * INCX, incY8 = 8 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( N > 0 ) - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; x3 = X[incX3]; x7 = X[incX7]; - - *Y = x0; Y[incY4] = x4; Y[INCY ] = x1; Y[incY5] = x5; - Y[incY2] = x2; Y[incY6] = x6; Y[incY3] = x3; Y[incY7] = x7; - - X += incX8; - Y += incY8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - *Y = x0; - - X += INCX; - Y += INCY; - } - } -/* - * End of ATL_drefcopy - */ -} diff --git a/sklearn/src/cblas/ATL_drefgemv.c b/sklearn/src/cblas/ATL_drefgemv.c deleted file mode 100644 index 66f433026adc4..0000000000000 --- a/sklearn/src/cblas/ATL_drefgemv.c +++ /dev/null @@ -1,178 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_drefgemv -( - const enum ATLAS_TRANS TRANS, - const int M, - const int N, - const double ALPHA, - const double * A, - const int LDA, - const double * X, - const int INCX, - const double BETA, - double * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_drefgemv performs one of the matrix-vector operations - * - * y := alpha * op( A ) * x + beta * y, - * - * where op( X ) is one of - * - * op( X ) = X or op( X ) = X'. - * - * where alpha and beta are scalars, x and y are vectors and op( A ) is - * an m by n matrix. - * - * Arguments - * ========= - * - * TRANS (input) const enum ATLAS_TRANS - * On entry, TRANS specifies the operation to be performed as - * follows: - * - * TRANS = AtlasNoTrans y := alpha*A *x + beta*y, - * - * TRANS = AtlasConj y := alpha*A *x + beta*y, - * - * TRANS = AtlasTrans y := alpha*A'*x + beta*y, - * - * TRANS = AtlasConjTrans y := alpha*A'*x + beta*y. - * - * Unchanged on exit. - * - * M (input) const int - * On entry, M specifies the number of rows of the matrix A - * when TRANS = AtlasNoTrans or TRANS = AtlasConj, and the num- - * ber of columns of the matrix A otherwise. M must be at least - * zero. Unchanged on exit. - * - * N (input) const int - * On entry, N specifies the number of columns of the matrix A - * when TRANS = AtlasNoTrans or TRANS = AtlasConj, and the num- - * ber of rows of the matrix A otherwise. N must be at least ze- - * ro. Unchanged on exit. - * - * ALPHA (input) const double - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero then A and X need not be set on input. Un- - * changed on exit. - * - * A (input) const double * - * On entry, A points to an array of size equal to or greater - * than LDA * ka * sizeof( double ), where ka is n when - * TRANS = AtlasNotrans or TRANS = AtlasConj, and m otherwise. - * Before entry, when TRANS = AtlasNotrans or TRANS = AtlasConj, - * the leading m by n part of the array A must contain the ma- - * trix coefficients, and otherwise the leading n by m part of - * the array A must contain the matrix coefficients. Unchanged - * on exit. - * - * LDA (input) const int - * On entry, LDA specifies the leading dimension of A as decla- - * red in the calling (sub) program. LDA must be at least - * MAX( 1, m ) when TRANS = AtlasNotrans or TRANS = AtlasConj, - * and MAX( 1, n ) otherwise. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * BETA (input) const double - * On entry, BETA specifies the scalar beta. When BETA is - * supplied as zero then Y need not be set on input. Unchanged - * on exit. - * - * Y (input/output) double * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( m - 1 ) * abs( INCY ) ) * sizeof( double ), - * that contains the vector y. Before entry with BETA non-zero, - * the incremented array Y must contain the vector y. On exit, - * Y is overwritten by the updated vector y. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* .. - * .. Executable Statements .. - * - */ - if( ( M == 0 ) || ( N == 0 ) || - ( ( ALPHA == ATL_dZERO ) && ( BETA == ATL_dONE ) ) ) return; - - if( ALPHA == ATL_dZERO ) { Mdvscal( M, BETA, Y, INCY ); return; } - - if( ( TRANS == AtlasNoTrans ) || ( TRANS == AtlasConj ) ) - { ATL_drefgemvN( M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ); } - else - { ATL_drefgemvT( M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ); } -/* - * End of ATL_drefgemv - */ -} diff --git a/sklearn/src/cblas/ATL_drefgemvN.c b/sklearn/src/cblas/ATL_drefgemvN.c deleted file mode 100644 index 07b5fb88ed462..0000000000000 --- a/sklearn/src/cblas/ATL_drefgemvN.c +++ /dev/null @@ -1,96 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_drefgemvN -( - const int M, - const int N, - const double ALPHA, - const double * A, - const int LDA, - const double * X, - const int INCX, - const double BETA, - double * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_drefgemvN( ... ) <=> ATL_drefgemv( AtlasNoTrans, ... ) - * - * See ATL_drefgemv for details. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double t0; - int i, iaij, iy, j, jaj, jx; -/* .. - * .. Executable Statements .. - * - */ - Mdvscal( M, BETA, Y, INCY ); - for( j = 0, jaj = 0, jx = 0; j < N; j++, jaj += LDA, jx += INCX ) - { - t0 = ALPHA * X[jx]; - for( i = 0, iaij = jaj, iy = 0; i < M; i++, iaij += 1, iy += INCY ) - { Y[iy] += A[iaij] * t0; } - } -/* - * End of ATL_drefgemvN - */ -} diff --git a/sklearn/src/cblas/ATL_drefgemvT.c b/sklearn/src/cblas/ATL_drefgemvT.c deleted file mode 100644 index 01d0332a06322..0000000000000 --- a/sklearn/src/cblas/ATL_drefgemvT.c +++ /dev/null @@ -1,96 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_drefgemvT -( - const int M, - const int N, - const double ALPHA, - const double * A, - const int LDA, - const double * X, - const int INCX, - const double BETA, - double * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_drefgemvT( ... ) <=> ATL_drefgemv( AtlasTrans, ... ) - * - * See ATL_drefgemv for details. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double t0; - int i, iaij, ix, j, jaj, jy; -/* .. - * .. Executable Statements .. - * - */ - for( j = 0, jaj = 0, jy = 0; j < M; j++, jaj += LDA, jy += INCY ) - { - t0 = ATL_dZERO; - for( i = 0, iaij = jaj, ix = 0; i < N; i++, iaij += 1, ix += INCX ) - { t0 += A[iaij] * X[ix]; } - Mdelscal( BETA, Y[jy] ); Y[jy] += ALPHA * t0; - } -/* - * End of ATL_drefgemvT - */ -} diff --git a/sklearn/src/cblas/ATL_drefger.c b/sklearn/src/cblas/ATL_drefger.c deleted file mode 100644 index 801b466a1e642..0000000000000 --- a/sklearn/src/cblas/ATL_drefger.c +++ /dev/null @@ -1,147 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_drefger -( - const int M, - const int N, - const double ALPHA, - const double * X, - const int INCX, - const double * Y, - const int INCY, - double * A, - const int LDA -) -{ -/* - * Purpose - * ======= - * - * ATL_drefger performs the rank 1 operation - * - * A := alpha * x * y' + A, - * - * where alpha is a scalar, x is an m-element vector, y is an n-element - * vector and A is an m by n matrix. - * - * Arguments - * ========= - * - * M (input) const int - * On entry, M specifies the number of rows of the matrix A. - * M must be at least zero. Unchanged on exit. - * - * N (input) const int - * On entry, N specifies the number of columns of the matrix A. - * N must be at least zero. Unchanged on exit. - * - * ALPHA (input) const double - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero then the arrays X and Y need not be set on - * input. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( m - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input) const double * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( double ), - * that contains the vector y. Unchanged on exit. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * A (input/output) double * - * On entry, A points to an array of size equal to or greater - * than LDA * n * sizeof( double ). Before entry, the lea- - * ding m by n part of the array A must contain the matrix - * coefficients. On exit, A is overwritten by the updated ma- - * trix. - * - * LDA (input) const int - * On entry, LDA specifies the first dimension of A as declared - * in the calling (sub) program. LDA must be at least max(1,m). - * Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double t0; - int i, iaij, ix, j, jaj, jy; -/* .. - * .. Executable Statements .. - * - */ - if( ( M == 0 ) || ( N == 0 ) || ( ALPHA == ATL_dZERO ) ) return; - - for( j = 0, jaj = 0, jy = 0; j < N; j++, jaj += LDA, jy += INCY ) - { - t0 = ALPHA * Y[jy]; - for( i = 0, iaij = jaj, ix = 0; i < M; i++, iaij += 1, ix += INCX ) - { A[iaij] += X[ix] * t0; } - } -/* - * End of ATL_drefger - */ -} diff --git a/sklearn/src/cblas/ATL_drefrot.c b/sklearn/src/cblas/ATL_drefrot.c deleted file mode 100644 index bfe396086b4e8..0000000000000 --- a/sklearn/src/cblas/ATL_drefrot.c +++ /dev/null @@ -1,170 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -void ATL_drefrot -( - const int N, - double * X, - const int INCX, - double * Y, - const int INCY, - const double C, - const double S -) -{ -/* - * Purpose - * ======= - * - * ATL_drefrot applies a plane rotation to the two n-vectors x and y. - * This routine computes: - * - * [ x_i ] [ c s ] [ x_i ] - * [ y_i ] = [ -s c ] [ y_i ] for all i = 1 .. n. - * - * If n <= 0 or if c = 1 and s = 0, this subroutine returns immediately. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input/output) double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. On exit, the entries of the in- - * cremented array X are rotated with the entries of the incre- - * mented array Y. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input/output) double * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( double ), - * that contains the vector y. On exit, the entries of the in- - * cremented array Y are rotated with the entries of the incre- - * mented array X. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * C (input) const double - * On entry, C specifies the scalar c definiting the plane rota- - * tion. Unchanged on exit. - * - * S (input) const double - * On entry, S specifies the scalar s definiting the plane rota- - * tion. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double x0, x1, x2, x3, y0, y1, y2, y3; - register const double co = C, si = S; - double * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && !Mdone( co, si ) ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); y0 = (*Y); - x1 = X[INCX ]; y1 = Y[INCY ]; - x2 = X[incX2]; y2 = Y[incY2]; - x3 = X[incX3]; y3 = Y[incY3]; - - *X = co * x0 + si * y0; *Y = co * y0 - si * x0; - X[INCX ] = co * x1 + si * y1; Y[INCY ] = co * y1 - si * x1; - X[incX2] = co * x2 + si * y2; Y[incY2] = co * y2 - si * x2; - X[incX3] = co * x3 + si * y3; Y[incY3] = co * y3 - si * x3; - - X += incX4; - Y += incY4; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - y0 = (*Y); - - *X = co * x0 + si * y0; - *Y = co * y0 - si * x0; - - X += INCX; - Y += INCY; - } - } -/* - * End of ATL_drefrot - */ -} diff --git a/sklearn/src/cblas/ATL_drefrotg.c b/sklearn/src/cblas/ATL_drefrotg.c deleted file mode 100644 index 0e124941b32c6..0000000000000 --- a/sklearn/src/cblas/ATL_drefrotg.c +++ /dev/null @@ -1,146 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -void ATL_drefrotg -( - double * A, - double * B, - double * C, - double * S -) -{ -/* - * Purpose - * ======= - * - * ATL_drefrotg constructs a Givens plane rotation. Given the scalars a - * and b, this routine computes the following quantities: - * - * sigma = sgn(a) if |a| > |b|, sgn(b) otherwise; - * r = sigma * sqrt( a^2 + b^2 ); - * c = a / r if r <> 0, 1 otherwise; - * s = b / r if r <> 0, 0 otherwise. - * - * The numbers c, s and r then satisfy the matrix equation: - * - * [ c s ] [ a ] [ r ] - * [ -s c ] [ b ] = [ 0 ]. - * - * The introduction of sigma is not essential to the computation of a - * Givens rotation matrix, but it permits later stable reconstruction of - * c and s from just one stored number. For this purpose, this routine - * also computes - * - * s if |a| > |b|, - * z = 1 / c if |b| >= |a| and c <> 0, - * 1 if c = 0. - * - * This subroutine returns r overwriting a, and z overwriting b, as well - * as returning c and s. If one later wishes to reconstruct c and s from - * z, it can be done as follows: - * - * if z = 1, set c = 0 and s = 1, - * if |z| < 1, set c = sqrt(1 - z^2) and s = z, - * if |z| > 1, set c = 1 / z and s = sqrt(1 - c^2). - * - * See ``Basic Linear Algebra Subprograms for Fortran Usage'' by C. Law- - * son, R. Hanson, D. Kincaid and F. Krogh, ACM Transactions on Mathema- - * tical Software, 1979, 5(3) pp 308-323, for further information. - * - * Arguments - * ========= - * - * A (input/output) double * - * On entry, A specifies the scalar a. On exit, A is overwritten - * by the scalar r defined above. - * - * B (input/output) double * - * On entry, B specifies the scalar b. On exit, B is overwritten - * by the scalar z defined above. - * - * C (output) double * - * On exit, C specifies the scalar c defined above. - * - * S (output) double * - * On exit, S specifies the scalar s defined above. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double absa, absb, roe, scale, r, tmpa, tmpb, z; -/* .. - * .. Executable Statements .. - * - */ - absa = Mdabs( *A ); absb = Mdabs( *B ); - roe = ( absa > absb ? (*A) : (*B) ); scale = absa + absb; - - if( scale != ATL_dZERO ) - { - tmpa = (*A) / scale; tmpb = (*B) / scale; - if( roe < ATL_dZERO ) - { r = - scale * sqrt( ( tmpa * tmpa ) + ( tmpb * tmpb ) ); } - else - { r = scale * sqrt( ( tmpa * tmpa ) + ( tmpb * tmpb ) ); } - *C = (*A) / r; *S = (*B) / r; z = ATL_dONE; - if( absa > absb ) { z = *S; } - if( ( absb >= absa ) && ( (*C) != ATL_dZERO ) ) - { z = ATL_dONE / (*C); } - } - else { *C = ATL_dONE; *S = r = z = ATL_dZERO; } - - *A = r; *B = z; -/* - * End of ATL_drefrotg - */ -} diff --git a/sklearn/src/cblas/ATL_dsrefdot.c b/sklearn/src/cblas/ATL_dsrefdot.c deleted file mode 100644 index 442e51a08e207..0000000000000 --- a/sklearn/src/cblas/ATL_dsrefdot.c +++ /dev/null @@ -1,141 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -double ATL_dsrefdot -( - const int N, - const float * X, - const int INCX, - const float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_dsrefdot returns the dot product x^T * y of two n-vectors x and - * y. The result is internally computed using double precision arithme- - * tic. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input) const float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. Unchanged on exit. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double dot = ATL_dZERO, x0, x1, x2, x3, y0, y1, y2, y3; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( N > 0 ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (double)(*X); y0 = (double)(*Y); - x1 = (double)(X[INCX ]); y1 = (double)(Y[INCY ]); - x2 = (double)(X[incX2]); y2 = (double)(Y[incY2]); - x3 = (double)(X[incX3]); y3 = (double)(Y[incY3]); - dot += x0 * y0; dot += x1 * y1; dot += x2 * y2; dot += x3 * y3; - X += incX4; - Y += incY4; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (double)(*X); y0 = (double)(*Y); dot += x0 * y0; - X += INCX; Y += INCY; - } - } - return( dot ); -/* - * End of ATL_dsrefdot - */ -} diff --git a/sklearn/src/cblas/ATL_srefasum.c b/sklearn/src/cblas/ATL_srefasum.c deleted file mode 100644 index aec26caf011ac..0000000000000 --- a/sklearn/src/cblas/ATL_srefasum.c +++ /dev/null @@ -1,133 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -float ATL_srefasum -( - const int N, - const float * X, - const int INCX -) -{ -/* - * Purpose - * ======= - * - * ATL_srefasum returns the sum of absolute values of the entries of a - * vector x. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float sum = ATL_sZERO, x0, x1, x2, x3, - x4, x5, x6, x7; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incX3 = 3 * INCX, - incX4 = 4 * INCX, incX5 = 5 * INCX, - incX6 = 6 * INCX, incX7 = 7 * INCX, - incX8 = 8 * INCX; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && ( INCX >= 1 ) ) - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; x3 = X[incX3]; x7 = X[incX7]; - - sum += Msabs( x0 ); sum += Msabs( x4 ); - sum += Msabs( x1 ); sum += Msabs( x3 ); - sum += Msabs( x2 ); sum += Msabs( x6 ); - sum += Msabs( x5 ); sum += Msabs( x7 ); - - X += incX8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - sum += Msabs( x0 ); - X += INCX; - } - } - return( sum ); -/* - * End of ATL_srefasum - */ -} diff --git a/sklearn/src/cblas/ATL_srefcopy.c b/sklearn/src/cblas/ATL_srefcopy.c deleted file mode 100644 index fec830e4fc9ea..0000000000000 --- a/sklearn/src/cblas/ATL_srefcopy.c +++ /dev/null @@ -1,148 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -void ATL_srefcopy -( - const int N, - const float * X, - const int INCX, - float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_srefcopy copies the entries of an n-vector x into an n-vector y. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input/output) float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. On exit, the entries of the in- - * cremented array X are copied into the entries of the incre- - * mented array Y. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float x0, x1, x2, x3, x4, x5, x6, x7; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY, - incX5 = 5 * INCX, incY5 = 5 * INCY, - incX6 = 6 * INCX, incY6 = 6 * INCY, - incX7 = 7 * INCX, incY7 = 7 * INCY, - incX8 = 8 * INCX, incY8 = 8 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( N > 0 ) - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; x3 = X[incX3]; x7 = X[incX7]; - - *Y = x0; Y[incY4] = x4; Y[INCY ] = x1; Y[incY5] = x5; - Y[incY2] = x2; Y[incY6] = x6; Y[incY3] = x3; Y[incY7] = x7; - - X += incX8; - Y += incY8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - *Y = x0; - - X += INCX; - Y += INCY; - } - } -/* - * End of ATL_srefcopy - */ -} diff --git a/sklearn/src/cblas/ATL_srefgemv.c b/sklearn/src/cblas/ATL_srefgemv.c deleted file mode 100644 index 79c0187eadbe3..0000000000000 --- a/sklearn/src/cblas/ATL_srefgemv.c +++ /dev/null @@ -1,178 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_srefgemv -( - const enum ATLAS_TRANS TRANS, - const int M, - const int N, - const float ALPHA, - const float * A, - const int LDA, - const float * X, - const int INCX, - const float BETA, - float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_srefgemv performs one of the matrix-vector operations - * - * y := alpha * op( A ) * x + beta * y, - * - * where op( X ) is one of - * - * op( X ) = X or op( X ) = X'. - * - * where alpha and beta are scalars, x and y are vectors and op( A ) is - * an m by n matrix. - * - * Arguments - * ========= - * - * TRANS (input) const enum ATLAS_TRANS - * On entry, TRANS specifies the operation to be performed as - * follows: - * - * TRANS = AtlasNoTrans y := alpha*A *x + beta*y, - * - * TRANS = AtlasConj y := alpha*A *x + beta*y, - * - * TRANS = AtlasTrans y := alpha*A'*x + beta*y, - * - * TRANS = AtlasConjTrans y := alpha*A'*x + beta*y. - * - * Unchanged on exit. - * - * M (input) const int - * On entry, M specifies the number of rows of the matrix A - * when TRANS = AtlasNoTrans or TRANS = AtlasConj, and the num- - * ber of columns of the matrix A otherwise. M must be at least - * zero. Unchanged on exit. - * - * N (input) const int - * On entry, N specifies the number of columns of the matrix A - * when TRANS = AtlasNoTrans or TRANS = AtlasConj, and the num- - * ber of rows of the matrix A otherwise. N must be at least ze- - * ro. Unchanged on exit. - * - * ALPHA (input) const float - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero then A and X need not be set on input. Un- - * changed on exit. - * - * A (input) const float * - * On entry, A points to an array of size equal to or greater - * than LDA * ka * sizeof( float ), where ka is n when - * TRANS = AtlasNotrans or TRANS = AtlasConj, and m otherwise. - * Before entry, when TRANS = AtlasNotrans or TRANS = AtlasConj, - * the leading m by n part of the array A must contain the ma- - * trix coefficients, and otherwise the leading n by m part of - * the array A must contain the matrix coefficients. Unchanged - * on exit. - * - * LDA (input) const int - * On entry, LDA specifies the leading dimension of A as decla- - * red in the calling (sub) program. LDA must be at least - * MAX( 1, m ) when TRANS = AtlasNotrans or TRANS = AtlasConj, - * and MAX( 1, n ) otherwise. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * BETA (input) const float - * On entry, BETA specifies the scalar beta. When BETA is - * supplied as zero then Y need not be set on input. Unchanged - * on exit. - * - * Y (input/output) float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( m - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. Before entry with BETA non-zero, - * the incremented array Y must contain the vector y. On exit, - * Y is overwritten by the updated vector y. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* .. - * .. Executable Statements .. - * - */ - if( ( M == 0 ) || ( N == 0 ) || - ( ( ALPHA == ATL_sZERO ) && ( BETA == ATL_sONE ) ) ) return; - - if( ALPHA == ATL_sZERO ) { Msvscal( M, BETA, Y, INCY ); return; } - - if( ( TRANS == AtlasNoTrans ) || ( TRANS == AtlasConj ) ) - { ATL_srefgemvN( M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ); } - else - { ATL_srefgemvT( M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ); } -/* - * End of ATL_srefgemv - */ -} diff --git a/sklearn/src/cblas/ATL_srefgemvN.c b/sklearn/src/cblas/ATL_srefgemvN.c deleted file mode 100644 index f6d419b979569..0000000000000 --- a/sklearn/src/cblas/ATL_srefgemvN.c +++ /dev/null @@ -1,96 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_srefgemvN -( - const int M, - const int N, - const float ALPHA, - const float * A, - const int LDA, - const float * X, - const int INCX, - const float BETA, - float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_srefgemvN( ... ) <=> ATL_srefgemv( AtlasNoTrans, ... ) - * - * See ATL_srefgemv for details. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float t0; - int i, iaij, iy, j, jaj, jx; -/* .. - * .. Executable Statements .. - * - */ - Msvscal( M, BETA, Y, INCY ); - for( j = 0, jaj = 0, jx = 0; j < N; j++, jaj += LDA, jx += INCX ) - { - t0 = ALPHA * X[jx]; - for( i = 0, iaij = jaj, iy = 0; i < M; i++, iaij += 1, iy += INCY ) - { Y[iy] += A[iaij] * t0; } - } -/* - * End of ATL_srefgemvN - */ -} diff --git a/sklearn/src/cblas/ATL_srefgemvT.c b/sklearn/src/cblas/ATL_srefgemvT.c deleted file mode 100644 index ecb092dbbda3f..0000000000000 --- a/sklearn/src/cblas/ATL_srefgemvT.c +++ /dev/null @@ -1,96 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_srefgemvT -( - const int M, - const int N, - const float ALPHA, - const float * A, - const int LDA, - const float * X, - const int INCX, - const float BETA, - float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_srefgemvT( ... ) <=> ATL_srefgemv( AtlasTrans, ... ) - * - * See ATL_srefgemv for details. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float t0; - int i, iaij, ix, j, jaj, jy; -/* .. - * .. Executable Statements .. - * - */ - for( j = 0, jaj = 0, jy = 0; j < M; j++, jaj += LDA, jy += INCY ) - { - t0 = ATL_sZERO; - for( i = 0, iaij = jaj, ix = 0; i < N; i++, iaij += 1, ix += INCX ) - { t0 += A[iaij] * X[ix]; } - Mselscal( BETA, Y[jy] ); Y[jy] += ALPHA * t0; - } -/* - * End of ATL_srefgemvT - */ -} diff --git a/sklearn/src/cblas/ATL_srefger.c b/sklearn/src/cblas/ATL_srefger.c deleted file mode 100644 index fbaaf819e8dd6..0000000000000 --- a/sklearn/src/cblas/ATL_srefger.c +++ /dev/null @@ -1,147 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflvl2.h" -#include "atlas_reflevel2.h" - -void ATL_srefger -( - const int M, - const int N, - const float ALPHA, - const float * X, - const int INCX, - const float * Y, - const int INCY, - float * A, - const int LDA -) -{ -/* - * Purpose - * ======= - * - * ATL_srefger performs the rank 1 operation - * - * A := alpha * x * y' + A, - * - * where alpha is a scalar, x is an m-element vector, y is an n-element - * vector and A is an m by n matrix. - * - * Arguments - * ========= - * - * M (input) const int - * On entry, M specifies the number of rows of the matrix A. - * M must be at least zero. Unchanged on exit. - * - * N (input) const int - * On entry, N specifies the number of columns of the matrix A. - * N must be at least zero. Unchanged on exit. - * - * ALPHA (input) const float - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero then the arrays X and Y need not be set on - * input. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( m - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input) const float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. Unchanged on exit. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * A (input/output) float * - * On entry, A points to an array of size equal to or greater - * than LDA * n * sizeof( float ). Before entry, the lea- - * ding m by n part of the array A must contain the matrix - * coefficients. On exit, A is overwritten by the updated ma- - * trix. - * - * LDA (input) const int - * On entry, LDA specifies the first dimension of A as declared - * in the calling (sub) program. LDA must be at least max(1,m). - * Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float t0; - int i, iaij, ix, j, jaj, jy; -/* .. - * .. Executable Statements .. - * - */ - if( ( M == 0 ) || ( N == 0 ) || ( ALPHA == ATL_sZERO ) ) return; - - for( j = 0, jaj = 0, jy = 0; j < N; j++, jaj += LDA, jy += INCY ) - { - t0 = ALPHA * Y[jy]; - for( i = 0, iaij = jaj, ix = 0; i < M; i++, iaij += 1, ix += INCX ) - { A[iaij] += X[ix] * t0; } - } -/* - * End of ATL_srefger - */ -} diff --git a/sklearn/src/cblas/ATL_srefnrm2.c b/sklearn/src/cblas/ATL_srefnrm2.c deleted file mode 100644 index c4188fb7db1f4..0000000000000 --- a/sklearn/src/cblas/ATL_srefnrm2.c +++ /dev/null @@ -1,204 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -float ATL_srefnrm2 -( - const int N, - const float * X, - const int INCX -) -{ -/* - * Purpose - * ======= - * - * ATL_srefnrm2 returns the 2-norm of an n-vector x. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float absxi, scale = ATL_sZERO, - ssq = ATL_sONE, temp, x0, x1, x2, x3, x4, - x5, x6, x7; - float * StX = (float *)(X) + N * INCX; - register int i; - int n = (int)(N), nu; - const int incX2 = 2 * INCX, incX3 = 3 * INCX, - incX4 = 4 * INCX, incX5 = 5 * INCX, - incX6 = 6 * INCX, incX7 = 7 * INCX, - incX8 = 8 * INCX; -/* .. - * .. Executable Statements .. - * - */ - if( ( N < 1 ) || ( INCX < 1 ) ) return( ATL_sZERO ); - else if( N == 1 ) return( Msabs( *X ) ); - - while( (X != StX) && ( *X == ATL_sZERO ) ) { X += INCX; n--; } - - if( X == StX ) return( ATL_sZERO ); - - if( ( nu = ( n >> 3 ) << 3 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; x3 = X[incX3]; x7 = X[incX7]; - - absxi = Msabs( x0 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x4 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x1 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x5 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x2 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x6 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x3 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Msabs( x7 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - X += incX8; - - } while( X != StX ); - } - - for( i = n - nu; i != 0; i-- ) - { - x0 = (*X); - - absxi = Msabs( x0 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_sONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - X += INCX; - } - return( scale * (float)(sqrt( (double)(ssq) )) ); -/* - * End of ATL_srefnrm2 - */ -} diff --git a/sklearn/src/cblas/ATL_srefrot.c b/sklearn/src/cblas/ATL_srefrot.c deleted file mode 100644 index e1a1d948fff5f..0000000000000 --- a/sklearn/src/cblas/ATL_srefrot.c +++ /dev/null @@ -1,170 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -void ATL_srefrot -( - const int N, - float * X, - const int INCX, - float * Y, - const int INCY, - const float C, - const float S -) -{ -/* - * Purpose - * ======= - * - * ATL_srefrot applies a plane rotation to the two n-vectors x and y. - * This routine computes: - * - * [ x_i ] [ c s ] [ x_i ] - * [ y_i ] = [ -s c ] [ y_i ] for all i = 1 .. n. - * - * If n <= 0 or if c = 1 and s = 0, this subroutine returns immediately. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input/output) float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. On exit, the entries of the in- - * cremented array X are rotated with the entries of the incre- - * mented array Y. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input/output) float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. On exit, the entries of the in- - * cremented array Y are rotated with the entries of the incre- - * mented array X. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * C (input) const float - * On entry, C specifies the scalar c definiting the plane rota- - * tion. Unchanged on exit. - * - * S (input) const float - * On entry, S specifies the scalar s definiting the plane rota- - * tion. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float x0, x1, x2, x3, y0, y1, y2, y3; - register const float co = C, si = S; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && !Msone( co, si ) ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); y0 = (*Y); - x1 = X[INCX ]; y1 = Y[INCY ]; - x2 = X[incX2]; y2 = Y[incY2]; - x3 = X[incX3]; y3 = Y[incY3]; - - *X = co * x0 + si * y0; *Y = co * y0 - si * x0; - X[INCX ] = co * x1 + si * y1; Y[INCY ] = co * y1 - si * x1; - X[incX2] = co * x2 + si * y2; Y[incY2] = co * y2 - si * x2; - X[incX3] = co * x3 + si * y3; Y[incY3] = co * y3 - si * x3; - - X += incX4; - Y += incY4; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - y0 = (*Y); - - *X = co * x0 + si * y0; - *Y = co * y0 - si * x0; - - X += INCX; - Y += INCY; - } - } -/* - * End of ATL_srefrot - */ -} diff --git a/sklearn/src/cblas/ATL_srefrotg.c b/sklearn/src/cblas/ATL_srefrotg.c deleted file mode 100644 index 4692a03754f54..0000000000000 --- a/sklearn/src/cblas/ATL_srefrotg.c +++ /dev/null @@ -1,146 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" -#include "atlas_reflevel1.h" - -void ATL_srefrotg -( - float * A, - float * B, - float * C, - float * S -) -{ -/* - * Purpose - * ======= - * - * ATL_srefrotg constructs a Givens plane rotation. Given the scalars a - * and b, this routine computes the following quantities: - * - * sigma = sgn(a) if |a| > |b|, sgn(b) otherwise; - * r = sigma * sqrt( a^2 + b^2 ); - * c = a / r if r <> 0, 1 otherwise; - * s = b / r if r <> 0, 0 otherwise. - * - * The numbers c, s and r then satisfy the matrix equation: - * - * [ c s ] [ a ] [ r ] - * [ -s c ] [ b ] = [ 0 ]. - * - * The introduction of sigma is not essential to the computation of a - * Givens rotation matrix, but it permits later stable reconstruction of - * c and s from just one stored number. For this purpose, this routine - * also computes - * - * s if |a| > |b|, - * z = 1 / c if |b| >= |a| and c <> 0, - * 1 if c = 0. - * - * This subroutine returns r overwriting a, and z overwriting b, as well - * as returning c and s. If one later wishes to reconstruct c and s from - * z, it can be done as follows: - * - * if z = 1, set c = 0 and s = 1, - * if |z| < 1, set c = sqrt(1 - z^2) and s = z, - * if |z| > 1, set c = 1 / z and s = sqrt(1 - c^2). - * - * See ``Basic Linear Algebra Subprograms for Fortran Usage'' by C. Law- - * son, R. Hanson, D. Kincaid and F. Krogh, ACM Transactions on Mathema- - * tical Software, 1979, 5(3) pp 308-323, for further information. - * - * Arguments - * ========= - * - * A (input/output) float * - * On entry, A specifies the scalar a. On exit, A is overwritten - * by the scalar r defined above. - * - * B (input/output) float * - * On entry, B specifies the scalar b. On exit, B is overwritten - * by the scalar z defined above. - * - * C (output) float * - * On exit, C specifies the scalar c defined above. - * - * S (output) float * - * On exit, S specifies the scalar s defined above. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float absa, absb, roe, scale, r, tmpa, tmpb, z; -/* .. - * .. Executable Statements .. - * - */ - absa = Msabs( *A ); absb = Msabs( *B ); - roe = ( absa > absb ? (*A) : (*B) ); scale = absa + absb; - - if( scale != ATL_sZERO ) - { - tmpa = (*A) / scale; tmpb = (*B) / scale; - if( roe < ATL_sZERO ) - { r = - scale * sqrt( ( tmpa * tmpa ) + ( tmpb * tmpb ) ); } - else - { r = scale * sqrt( ( tmpa * tmpa ) + ( tmpb * tmpb ) ); } - *C = (*A) / r; *S = (*B) / r; z = ATL_sONE; - if( absa > absb ) { z = *S; } - if( ( absb >= absa ) && ( (*C) != ATL_sZERO ) ) - { z = ATL_sONE / (*C); } - } - else { *C = ATL_sONE; *S = r = z = ATL_sZERO; } - - *A = r; *B = z; -/* - * End of ATL_srefrotg - */ -} diff --git a/sklearn/src/cblas/README.txt b/sklearn/src/cblas/README.txt deleted file mode 100644 index 98c3adbb1a194..0000000000000 --- a/sklearn/src/cblas/README.txt +++ /dev/null @@ -1,11 +0,0 @@ -This is a stripped-down version of CBLAS (C-interface to the Basic Linear -Algebra Subroutines), containing only those parts used by scikit-learn's -C/C++/Cython extensions. It is used when no CBLAS implementation is available -at build time. - -Sources here are taken from the reference implementation in ATLAS. To add new -algorithms, the only thing that should be done is to copy the reference -implementation from ${ATLAS}/src/blas/reference/level* into this directory. - -Header files are taken from ${ATLAS}/include, the only change being the -inclusion of "atlas_refalias*.h" into its respective "atlas_level*.h" file. diff --git a/sklearn/src/cblas/atlas_aux.h b/sklearn/src/cblas/atlas_aux.h deleted file mode 100644 index 20c37c6ca1ca3..0000000000000 --- a/sklearn/src/cblas/atlas_aux.h +++ /dev/null @@ -1,942 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ -/* - * Header file for ATLAS's auxiliary routines - */ -#ifndef ATLAS_AUX_H -#define ATLAS_AUX_H -#include "atlas_misc.h" - -void ATL_xerbla(int p, char *rout, char *form, ...); -int ATL_lcm(const int M, const int N); -double ATL_walltime(); -double ATL_cputime(); - -/* - * Auxiliary routines that come in all four types - */ -void ATL_sgeset(ATL_CINT M, ATL_CINT N, const float alpha, - const float beta, float *A, ATL_CINT lda); -void ATL_strsetL(ATL_CINT M, ATL_CINT N, const float alpha, - const float beta, float *A, ATL_CINT lda); -void ATL_strsetU(ATL_CINT M, ATL_CINT N, const float alpha, - const float beta, float *A, ATL_CINT lda); -float ATL_sgemaxnrm(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda); -void ATL_sgeadd(const int M, const int N, const float alpha, - const float *A, const int lda, const float beta, - float *C, const int ldc); -void ATL_sgemove(const int M, const int N, const float alpha, - const float *A, const int lda, float *C, const int ldc); -void ATL_sgemoveT(const int N, const int M, const float alpha, - const float *A, const int lda, float *C, const int ldc); -void ATL_ssyreflect(const enum ATLAS_UPLO Uplo, const int N, - float *C, const int ldc); -void ATL_sgecopy(const int M, const int N, const float *A, const int lda, - float *C, const int ldc); - -void ATL_sgescal(const int M, const int N, const float beta, - float *C, const int ldc); -void ATL_stradd - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float beta, float *C, ATL_CINT ldc); -void ATL_strscal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const float alpha, - float *A, const int lda); -void ATL_shescal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const float alpha, - float *A, const int lda); - -void ATL_sgezero(const int M, const int N, float *C, const int ldc); -void ATL_ssyApAt_NB - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float beta, float *C, ATL_CINT ldc); -void ATL_ssyApAt - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float beta, float *C, ATL_CINT ldc); -void ATL_sgeApBt_NB - (ATL_CINT M, ATL_CINT N, const float *A, ATL_CINT lda, - const float *B, ATL_CINT ldb, const float beta, float *C, ATL_CINT ldc); -void ATL_sgeswapT(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, - float *B, ATL_CINT ldb); -void ATL_ssqtrans(ATL_CINT N, float *C, ATL_CINT ldc); - -void ATL_szero(const int N, float *X, const int incX); -void ATL_sset(const int N, const float alpha, float *X, const int incX); -void ATL_sscal(const int N, const float alpha, float *X, const int incX); -void ATL_scopy(const int N, const float *X, const int incX, - float *Y, const int incY); -void ATL_scpsc(const int N, const float alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_saxpy(const int N, const float alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_saxpy_x1_y1(const int N, const float alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_saxpby(const int N, const float alpha, const float *X, - const int incX, const float beta, float *Y, const int incY); - -void ATL_sgeadd_a1_b1 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_a1_b1 - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_a0_b1 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_a0_b1 - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_aX_b1 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_aX_b1 - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_a1_b0 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_a1_b0 - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_a0_b0 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_a0_b0 - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_aX_b0 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_aX_b0 - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_a1_bX - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_a1_bX - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_a0_bX - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_a0_bX - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); -void ATL_sgeadd_aX_bX - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - ATL_CINT lda, const float beta, float *C, ATL_CINT ldc); -void ATL_saxpby_aX_bX - (ATL_CINT N, const float alpha, const float *X, ATL_CINT incX, - const float beta, float *Y, ATL_CINT incY); - -void ATL_sgemove_a1 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - const int lda, float *C, ATL_CINT ldc); -void ATL_sgemove_a0 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - const int lda, float *C, ATL_CINT ldc); -void ATL_sgemove_aX - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, - const int lda, float *C, ATL_CINT ldc); - -void ATL_sgescal_b1 - (ATL_CINT M, ATL_CINT N, const float beta, float *C, ATL_CINT ldc); -void ATL_sgescal_b0 - (ATL_CINT M, ATL_CINT N, const float beta, float *C, ATL_CINT ldc); -void ATL_sgescal_bX - (ATL_CINT M, ATL_CINT N, const float beta, float *C, ATL_CINT ldc); - -void ATL_dgeset(ATL_CINT M, ATL_CINT N, const double alpha, - const double beta, double *A, ATL_CINT lda); -void ATL_dtrsetL(ATL_CINT M, ATL_CINT N, const double alpha, - const double beta, double *A, ATL_CINT lda); -void ATL_dtrsetU(ATL_CINT M, ATL_CINT N, const double alpha, - const double beta, double *A, ATL_CINT lda); -double ATL_dgemaxnrm(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda); -void ATL_dgeadd(const int M, const int N, const double alpha, - const double *A, const int lda, const double beta, - double *C, const int ldc); -void ATL_dgemove(const int M, const int N, const double alpha, - const double *A, const int lda, double *C, const int ldc); -void ATL_dgemoveT(const int N, const int M, const double alpha, - const double *A, const int lda, double *C, const int ldc); -void ATL_dsyreflect(const enum ATLAS_UPLO Uplo, const int N, - double *C, const int ldc); -void ATL_dgecopy(const int M, const int N, const double *A, const int lda, - double *C, const int ldc); - -void ATL_dgescal(const int M, const int N, const double beta, - double *C, const int ldc); -void ATL_dtradd - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double beta, double *C, ATL_CINT ldc); -void ATL_dtrscal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const double alpha, - double *A, const int lda); -void ATL_dhescal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const double alpha, - double *A, const int lda); - -void ATL_dgezero(const int M, const int N, double *C, const int ldc); -void ATL_dsyApAt_NB - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double beta, double *C, ATL_CINT ldc); -void ATL_dsyApAt - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double beta, double *C, ATL_CINT ldc); -void ATL_dgeApBt_NB - (ATL_CINT M, ATL_CINT N, const double *A, ATL_CINT lda, - const double *B, ATL_CINT ldb, const double beta, double *C, ATL_CINT ldc); -void ATL_dgeswapT(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, - double *B, ATL_CINT ldb); -void ATL_dsqtrans(ATL_CINT N, double *C, ATL_CINT ldc); - -void ATL_dzero(const int N, double *X, const int incX); -void ATL_dset(const int N, const double alpha, double *X, const int incX); -void ATL_dscal(const int N, const double alpha, double *X, const int incX); -void ATL_dcopy(const int N, const double *X, const int incX, - double *Y, const int incY); -void ATL_dcpsc(const int N, const double alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_daxpy(const int N, const double alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_daxpy_x1_y1(const int N, const double alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_daxpby(const int N, const double alpha, const double *X, - const int incX, const double beta, double *Y, const int incY); - -void ATL_dgeadd_a1_b1 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_a1_b1 - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_a0_b1 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_a0_b1 - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_aX_b1 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_aX_b1 - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_a1_b0 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_a1_b0 - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_a0_b0 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_a0_b0 - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_aX_b0 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_aX_b0 - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_a1_bX - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_a1_bX - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_a0_bX - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_a0_bX - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); -void ATL_dgeadd_aX_bX - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - ATL_CINT lda, const double beta, double *C, ATL_CINT ldc); -void ATL_daxpby_aX_bX - (ATL_CINT N, const double alpha, const double *X, ATL_CINT incX, - const double beta, double *Y, ATL_CINT incY); - -void ATL_dgemove_a1 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - const int lda, double *C, ATL_CINT ldc); -void ATL_dgemove_a0 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - const int lda, double *C, ATL_CINT ldc); -void ATL_dgemove_aX - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, - const int lda, double *C, ATL_CINT ldc); - -void ATL_dgescal_b1 - (ATL_CINT M, ATL_CINT N, const double beta, double *C, ATL_CINT ldc); -void ATL_dgescal_b0 - (ATL_CINT M, ATL_CINT N, const double beta, double *C, ATL_CINT ldc); -void ATL_dgescal_bX - (ATL_CINT M, ATL_CINT N, const double beta, double *C, ATL_CINT ldc); - -void ATL_cgeset(ATL_CINT M, ATL_CINT N, const float *alpha, - const float *beta, float *A, ATL_CINT lda); -void ATL_ctrsetL(ATL_CINT M, ATL_CINT N, const float *alpha, - const float *beta, float *A, ATL_CINT lda); -void ATL_ctrsetU(ATL_CINT M, ATL_CINT N, const float *alpha, - const float *beta, float *A, ATL_CINT lda); -float ATL_cgemaxnrm(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda); -void ATL_cgeadd(const int M, const int N, const float *alpha, - const float *A, const int lda, const float *beta, - float *C, const int ldc); -void ATL_cgemove(const int M, const int N, const float *alpha, - const float *A, const int lda, float *C, const int ldc); -void ATL_cgemoveT(const int N, const int M, const float *alpha, - const float *A, const int lda, float *C, const int ldc); -void ATL_csyreflect(const enum ATLAS_UPLO Uplo, const int N, - float *C, const int ldc); -void ATL_cgecopy(const int M, const int N, const float *A, const int lda, - float *C, const int ldc); - -void ATL_cgescal(const int M, const int N, const float *beta, - float *C, const int ldc); -void ATL_ctradd - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float *beta, float *C, ATL_CINT ldc); -void ATL_ctrscal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const float *alpha, - float *A, const int lda); -void ATL_chescal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const float alpha, - float *A, const int lda); - -void ATL_cgezero(const int M, const int N, float *C, const int ldc); -void ATL_csyApAt_NB - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float *beta, float *C, ATL_CINT ldc); -void ATL_csyApAt - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float *beta, float *C, ATL_CINT ldc); -void ATL_cgeApBt_NB - (ATL_CINT M, ATL_CINT N, const float *A, ATL_CINT lda, - const float *B, ATL_CINT ldb, const float *beta, float *C, ATL_CINT ldc); -void ATL_cgeswapT(ATL_CINT M, ATL_CINT N, float *A, ATL_CINT lda, - float *B, ATL_CINT ldb); -void ATL_csqtrans(ATL_CINT N, float *C, ATL_CINT ldc); - -void ATL_czero(const int N, float *X, const int incX); -void ATL_cset(const int N, const float *alpha, float *X, const int incX); -void ATL_cscal(const int N, const float *alpha, float *X, const int incX); -void ATL_ccopy(const int N, const float *X, const int incX, - float *Y, const int incY); -void ATL_ccpsc(const int N, const float *alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_caxpy(const int N, const float *alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_caxpy_x1_y1(const int N, const float *alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_caxpby(const int N, const float *alpha, const float *X, - const int incX, const float *beta, float *Y, const int incY); - -void ATL_cgeadd_a1_b1 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_a1_b1 - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_a0_b1 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_a0_b1 - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_aX_b1 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_aX_b1 - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_a1_b0 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_a1_b0 - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_a0_b0 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_a0_b0 - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_aX_b0 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_aX_b0 - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_a1_bX - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_a1_bX - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_a0_bX - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_a0_bX - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); -void ATL_cgeadd_aX_bX - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - ATL_CINT lda, const float *beta, float *C, ATL_CINT ldc); -void ATL_caxpby_aX_bX - (ATL_CINT N, const float *alpha, const float *X, ATL_CINT incX, - const float *beta, float *Y, ATL_CINT incY); - -void ATL_cgemove_a1 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - const int lda, float *C, ATL_CINT ldc); -void ATL_cgemove_a0 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - const int lda, float *C, ATL_CINT ldc); -void ATL_cgemove_aX - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, - const int lda, float *C, ATL_CINT ldc); - -void ATL_cgescal_b1 - (ATL_CINT M, ATL_CINT N, const float *beta, float *C, ATL_CINT ldc); -void ATL_cgescal_b0 - (ATL_CINT M, ATL_CINT N, const float *beta, float *C, ATL_CINT ldc); -void ATL_cgescal_bX - (ATL_CINT M, ATL_CINT N, const float *beta, float *C, ATL_CINT ldc); - -void ATL_zgeset(ATL_CINT M, ATL_CINT N, const double *alpha, - const double *beta, double *A, ATL_CINT lda); -void ATL_ztrsetL(ATL_CINT M, ATL_CINT N, const double *alpha, - const double *beta, double *A, ATL_CINT lda); -void ATL_ztrsetU(ATL_CINT M, ATL_CINT N, const double *alpha, - const double *beta, double *A, ATL_CINT lda); -double ATL_zgemaxnrm(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda); -void ATL_zgeadd(const int M, const int N, const double *alpha, - const double *A, const int lda, const double *beta, - double *C, const int ldc); -void ATL_zgemove(const int M, const int N, const double *alpha, - const double *A, const int lda, double *C, const int ldc); -void ATL_zgemoveT(const int N, const int M, const double *alpha, - const double *A, const int lda, double *C, const int ldc); -void ATL_zsyreflect(const enum ATLAS_UPLO Uplo, const int N, - double *C, const int ldc); -void ATL_zgecopy(const int M, const int N, const double *A, const int lda, - double *C, const int ldc); - -void ATL_zgescal(const int M, const int N, const double *beta, - double *C, const int ldc); -void ATL_ztradd - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double *beta, double *C, ATL_CINT ldc); -void ATL_ztrscal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const double *alpha, - double *A, const int lda); -void ATL_zhescal - (const enum ATLAS_UPLO Uplo, const int M, const int N, const double alpha, - double *A, const int lda); - -void ATL_zgezero(const int M, const int N, double *C, const int ldc); -void ATL_zsyApAt_NB - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double *beta, double *C, ATL_CINT ldc); -void ATL_zsyApAt - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double *beta, double *C, ATL_CINT ldc); -void ATL_zgeApBt_NB - (ATL_CINT M, ATL_CINT N, const double *A, ATL_CINT lda, - const double *B, ATL_CINT ldb, const double *beta, double *C, ATL_CINT ldc); -void ATL_zgeswapT(ATL_CINT M, ATL_CINT N, double *A, ATL_CINT lda, - double *B, ATL_CINT ldb); -void ATL_zsqtrans(ATL_CINT N, double *C, ATL_CINT ldc); - -void ATL_zzero(const int N, double *X, const int incX); -void ATL_zset(const int N, const double *alpha, double *X, const int incX); -void ATL_zscal(const int N, const double *alpha, double *X, const int incX); -void ATL_zcopy(const int N, const double *X, const int incX, - double *Y, const int incY); -void ATL_zcpsc(const int N, const double *alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_zaxpy(const int N, const double *alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_zaxpy_x1_y1(const int N, const double *alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_zaxpby(const int N, const double *alpha, const double *X, - const int incX, const double *beta, double *Y, const int incY); - -void ATL_zgeadd_a1_b1 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_a1_b1 - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_a0_b1 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_a0_b1 - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_aX_b1 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_aX_b1 - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_a1_b0 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_a1_b0 - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_a0_b0 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_a0_b0 - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_aX_b0 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_aX_b0 - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_a1_bX - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_a1_bX - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_a0_bX - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_a0_bX - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); -void ATL_zgeadd_aX_bX - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - ATL_CINT lda, const double *beta, double *C, ATL_CINT ldc); -void ATL_zaxpby_aX_bX - (ATL_CINT N, const double *alpha, const double *X, ATL_CINT incX, - const double *beta, double *Y, ATL_CINT incY); - -void ATL_zgemove_a1 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - const int lda, double *C, ATL_CINT ldc); -void ATL_zgemove_a0 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - const int lda, double *C, ATL_CINT ldc); -void ATL_zgemove_aX - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, - const int lda, double *C, ATL_CINT ldc); - -void ATL_zgescal_b1 - (ATL_CINT M, ATL_CINT N, const double *beta, double *C, ATL_CINT ldc); -void ATL_zgescal_b0 - (ATL_CINT M, ATL_CINT N, const double *beta, double *C, ATL_CINT ldc); -void ATL_zgescal_bX - (ATL_CINT M, ATL_CINT N, const double *beta, double *C, ATL_CINT ldc); - -/* - * Specialized complex auxiliary routines - */ - -void ATL_cheApAc_NB - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float *beta, float *C, ATL_CINT ldc); -void ATL_cheApAc - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const float *A, ATL_CINT lda, - const float *beta, float *C, ATL_CINT ldc); -void ATL_cgeApBc_NB - (ATL_CINT M, ATL_CINT N, const float *A, ATL_CINT lda, - const float *B, ATL_CINT ldb, const float *beta, float *C, ATL_CINT ldc); -void ATL_ccplxdivide - (ATL_CINT N, float *b, float *X, ATL_CINT incX, float *Y, ATL_CINT incY); -void ATL_ccplxinvert - (const int N, float *X, const int incX, float *Y, const int incY); - -void ATL_chereflect(const enum ATLAS_UPLO Uplo, const int N, - float *C, const int ldc); -void ATL_cscalConj - (const int N, const float *alpha, float *X, const int incX); -void ATL_ccopyConj - (const int N, const float *X, const int incX, float *Y, const int incY); -void ATL_cmoveConj - (const int N, const float *alpha, const float *X, const int incX, - float *Y, const int incY); -void ATL_caxpyConj - (const int N, const float *alpha, const float *X, const int incX, - float *Y, const int incY); -void ATL_caxpyConj_x1_y1(const int N, const float *alpha, const float *X, - const int incX, float *Y, const int incY); -void ATL_caxpbyConj - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgemoveC(const int N, const int M, const float *alpha, - const float *A, const int lda, float *C, const int ldc); - -void ATL_cgeaddConj_aXi0_b1 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a1_b1 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a0_b1 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_b1 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aX_b1 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_b0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a1_b0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a0_b0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_b0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aX_b0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a1_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a0_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aX_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_bX - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a1_bX - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_a0_bX - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aXi0_bX - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_cgeaddConj_aX_bX - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_aXi0_b1 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_caxpby_aXi0_b1 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_aXi0_b1 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_aXi0_b0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_caxpby_aXi0_b0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_aXi0_b0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_aXi0_bXi0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_caxpby_aXi0_bXi0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_aXi0_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_aXi0_bX - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_caxpby_aXi0_bX - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_aXi0_bX - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_a1_bXi0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_a1_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_a0_bXi0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_a0_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); -void ATL_caxpby_aX_bXi0 - (const int N, const float *alpha, const float *X, const int incX, - const float *beta, float *Y, const int incY); -void ATL_cgeadd_aX_bXi0 - (const int M, const int N, const float *alpha, const float *A, - const int lda, const float *beta, float *C, const int ldc); - -void ATL_cgemove_aXi0 - (const int M, const int N, const float *alpha0, const float *A, - const int lda, float *C, const int ldc); - -void ATL_cgescal_bXi0 - (const int M, const int N, const float *beta, float *C, const int ldc); - -void ATL_zheApAc_NB - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double *beta, double *C, ATL_CINT ldc); -void ATL_zheApAc - (const enum ATLAS_UPLO Uplo, ATL_CINT N, const double *A, ATL_CINT lda, - const double *beta, double *C, ATL_CINT ldc); -void ATL_zgeApBc_NB - (ATL_CINT M, ATL_CINT N, const double *A, ATL_CINT lda, - const double *B, ATL_CINT ldb, const double *beta, double *C, ATL_CINT ldc); -void ATL_zcplxdivide - (ATL_CINT N, double *b, double *X, ATL_CINT incX, double *Y, ATL_CINT incY); -void ATL_zcplxinvert - (const int N, double *X, const int incX, double *Y, const int incY); - -void ATL_zhereflect(const enum ATLAS_UPLO Uplo, const int N, - double *C, const int ldc); -void ATL_zscalConj - (const int N, const double *alpha, double *X, const int incX); -void ATL_zcopyConj - (const int N, const double *X, const int incX, double *Y, const int incY); -void ATL_zmoveConj - (const int N, const double *alpha, const double *X, const int incX, - double *Y, const int incY); -void ATL_zaxpyConj - (const int N, const double *alpha, const double *X, const int incX, - double *Y, const int incY); -void ATL_zaxpyConj_x1_y1(const int N, const double *alpha, const double *X, - const int incX, double *Y, const int incY); -void ATL_zaxpbyConj - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgemoveC(const int N, const int M, const double *alpha, - const double *A, const int lda, double *C, const int ldc); - -void ATL_zgeaddConj_aXi0_b1 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a1_b1 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a0_b1 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_b1 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aX_b1 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_b0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a1_b0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a0_b0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_b0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aX_b0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a1_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a0_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aX_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_bX - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a1_bX - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_a0_bX - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aXi0_bX - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zgeaddConj_aX_bX - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_aXi0_b1 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zaxpby_aXi0_b1 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_aXi0_b1 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_aXi0_b0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zaxpby_aXi0_b0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_aXi0_b0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_aXi0_bXi0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zaxpby_aXi0_bXi0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_aXi0_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_aXi0_bX - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zaxpby_aXi0_bX - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_aXi0_bX - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_a1_bXi0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_a1_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_a0_bXi0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_a0_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); -void ATL_zaxpby_aX_bXi0 - (const int N, const double *alpha, const double *X, const int incX, - const double *beta, double *Y, const int incY); -void ATL_zgeadd_aX_bXi0 - (const int M, const int N, const double *alpha, const double *A, - const int lda, const double *beta, double *C, const int ldc); - -void ATL_zgemove_aXi0 - (const int M, const int N, const double *alpha0, const double *A, - const int lda, double *C, const int ldc); - -void ATL_zgescal_bXi0 - (const int M, const int N, const double *beta, double *C, const int ldc); - - -void ATL_qdgecollapse(const int M, const int N, ATL_QTYPE *C, - const int dldc, const int sldc); -void ATL_dsgecollapse(const int M, const int N, double *C, - const int dldc, const int sldc); -void ATL_ezgecollapse(const int M, const int N, ATL_QTYPE *C, - const int dldc, const int sldc); -void ATL_zcgecollapse(const int M, const int N, double *C, - const int dldc, const int sldc); -void ATL_qdtrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag, - const int N, ATL_QTYPE *C, const int dldc,const int sldc); -void ATL_dstrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag, - const int N, double *C, const int dldc, const int sldc); -void ATL_zctrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag, - const int N, double *C, const int dldc, const int sldc); -void ATL_eztrcollapse(const enum ATLAS_UPLO Uplo, const enum ATLAS_DIAG Diag, - const int N, ATL_QTYPE *C, const int dldc,const int sldc); - -/* - * This is the general LRU-based flush - */ -#if defined(ATL_USEPTHREADS) && !defined(ATL_flushcache) - #include "atlas_pthreads.h" - #define ATL_flushcache ATL_ptflushcache - #define ATL_PTCACHEMUL * ATL_NTHREADS -#else - #define ATL_PTCACHEMUL -#endif -double ATL_flushcache(int size); -/* - * If we have it, use assembly-based explicit cache-line flush algorithm - */ -#if defined(ATL_ARCH_PPCG5) || defined(ATL_ARCH_PPCG4) || \ - defined(ATL_GAS_PPC) || defined(ATL_SSE1) || \ - defined(ATL_ARCH_IA64Itan) || defined(ATL_ARCH_IA64Itan2) - - #define ATL_LINEFLUSH 1 - typedef struct flStruct FLSTRUCT; - struct flStruct - { - void *p; - int length; - FLSTRUCT *next; - }; - FLSTRUCT *ATL_GetFlushStruct(void *p, int length, FLSTRUCT *next); - void ATL_KillAllFlushStructs(FLSTRUCT *p); - void ATL_flushCacheByAddr(int N, void *vp); - void ATL_FlushAreasByCL(FLSTRUCT *fp); - #if defined(ATL_USEPTHREADS) && !defined(ATL_FlushAreasByCL) - void ATL_ptFlushAreasByCL(FLSTRUCT *fp); - #define ATL_FlushAreasByCL ATL_ptFlushAreasByCL - #endif - -#else - #define ATL_LINEFLUSH 0 -#endif - -#endif diff --git a/sklearn/src/cblas/atlas_dsysinfo.h b/sklearn/src/cblas/atlas_dsysinfo.h deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/sklearn/src/cblas/atlas_enum.h b/sklearn/src/cblas/atlas_enum.h deleted file mode 100644 index 1999eefc38c7f..0000000000000 --- a/sklearn/src/cblas/atlas_enum.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.6.0 - * (C) Copyright 1997 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ -#ifndef ATLAS_ENUM_H - #define ATLAS_ENUM_H - - #define CBLAS_ENUM_ONLY - #include "cblas.h" - #undef CBLAS_ENUM_ONLY - - #define ATLAS_ORDER CBLAS_ORDER - #define AtlasRowMajor CblasRowMajor - #define AtlasColMajor CblasColMajor - #define ATLAS_TRANS CBLAS_TRANSPOSE - #define AtlasNoTrans CblasNoTrans - #define AtlasTrans CblasTrans - #define AtlasConjTrans CblasConjTrans - #define ATLAS_UPLO CBLAS_UPLO - #define AtlasUpper CblasUpper - #define AtlasLower CblasLower - #define ATLAS_DIAG CBLAS_DIAG - #define AtlasNonUnit CblasNonUnit - #define AtlasUnit CblasUnit - #define ATLAS_SIDE CBLAS_SIDE - #define AtlasLeft CblasLeft - #define AtlasRight CblasRight - -#endif - diff --git a/sklearn/src/cblas/atlas_level1.h b/sklearn/src/cblas/atlas_level1.h deleted file mode 100644 index c1542f41e4dee..0000000000000 --- a/sklearn/src/cblas/atlas_level1.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -/* - * Prototypes ATLAS Level 1 functions not defined in atlas_aux.h - */ - -#ifndef ATLAS_LEVEL1_H -#define ATLAS_LEVEL1_H -#include "atlas_refalias1.h" - -/* - * Many level one blas routines actually taken care of by atlas auxiliary - */ -#include "atlas_aux.h" - -float ATL_sdsdot(const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY); -double ATL_dsdot(const int N, const float *X, const int incX, - const float *Y, const int incY); -/* - * Routines with all four types - */ -void ATL_sswap(const int N, float *X, const int incX, - float *Y, const int incY); -int ATL_isamax(const int N, const float *X, const int incX); - -void ATL_dswap(const int N, double *X, const int incX, - double *Y, const int incY); -int ATL_idamax(const int N, const double *X, const int incX); - -void ATL_cswap(const int N, float *X, const int incX, - float *Y, const int incY); -int ATL_icamax(const int N, const float *X, const int incX); - -void ATL_zswap(const int N, double *X, const int incX, - double *Y, const int incY); -int ATL_izamax(const int N, const double *X, const int incX); - -/* - * Routines with real types - */ -void ATL_srotg(float *a, float *b, float *c, float *s); -void ATL_srotmg(float *d1, float *d2, float *b1, const float b2, float *P); -void ATL_srot(const int N, float *X, const int incX, - float *Y, const int incY, const float c, const float s); -void ATL_srotm(const int N, float *X, const int incX, - float *Y, const int incY, const float *P); -float ATL_sdot(const int N, const float *X, const int incX, - const float *Y, const int incY); -void ATL_sssq(const int N, const float *X, const int incX, - float *scal0, float *ssq0); -float ATL_snrm2(const int N, const float *X, const int incX); -float ATL_sasum(const int N, const float *X, const int incX); - -void ATL_drotg(double *a, double *b, double *c, double *s); -void ATL_drotmg(double *d1, double *d2, double *b1, const double b2, double *P); -void ATL_drot(const int N, double *X, const int incX, - double *Y, const int incY, const double c, const double s); -void ATL_drotm(const int N, double *X, const int incX, - double *Y, const int incY, const double *P); -double ATL_ddot(const int N, const double *X, const int incX, - const double *Y, const int incY); -void ATL_dssq(const int N, const double *X, const int incX, - double *scal0, double *ssq0); -double ATL_dnrm2(const int N, const double *X, const int incX); -double ATL_dasum(const int N, const double *X, const int incX); - -/* - * Routines with complex types - */ -void ATL_csrot(const int N, float *X, const int incX, - float *Y, const int incY, const float c, const float s); -void ATL_crotg(float *a, const float *b, float *c, float *s); -void ATL_cdotu_sub(const int N, const float *X, const int incX, - const float *Y, const int incY, float *dot); -void ATL_cdotc_sub(const int N, const float *X, const int incX, - const float *Y, const int incY, float *dot); -void ATL_cssq(const int N, const float *X, const int incX, - float *scal0, float *ssq0); -float ATL_scnrm2(const int N, const float *X, const int incX); -float ATL_scasum(const int N, const float *X, const int incX); - -void ATL_zdrot(const int N, double *X, const int incX, - double *Y, const int incY, const double c, const double s); -void ATL_zrotg(double *a, const double *b, double *c, double *s); -void ATL_zdotu_sub(const int N, const double *X, const int incX, - const double *Y, const int incY, double *dot); -void ATL_zdotc_sub(const int N, const double *X, const int incX, - const double *Y, const int incY, double *dot); -void ATL_zssq(const int N, const double *X, const int incX, - double *scal0, double *ssq0); -double ATL_dznrm2(const int N, const double *X, const int incX); -double ATL_dzasum(const int N, const double *X, const int incX); - - -#define ATL_casum ATL_scasum -#define ATL_zasum ATL_dzasum -#define ATL_cnrm2 ATL_scnrm2 -#define ATL_znrm2 ATL_dznrm2 - -#endif diff --git a/sklearn/src/cblas/atlas_level2.h b/sklearn/src/cblas/atlas_level2.h deleted file mode 100644 index 673c40e7a1e6e..0000000000000 --- a/sklearn/src/cblas/atlas_level2.h +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributors may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -/* - * =========================================================================== - * Prototypes for level 2 BLAS - * =========================================================================== - */ -#ifndef ATLAS_LEVEL2_H -#define ATLAS_LEVEL2_H -#include "atlas_refalias2.h" - -/* - * Routines with standard 4 prefixes (S, D, C, Z) - */ -void ATL_sgemv(const enum ATLAS_TRANS TransA, const int M, const int N, - const float alpha, const float *A, const int lda, - const float *X, const int incX, const float beta, - float *Y, const int incY); -void ATL_sgemvT_L2 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, ATL_CINT lda, - const float *X, ATL_CINT incX, const float beta, float *Y, ATL_CINT incY); -void ATL_sgemvT_L1 - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, ATL_CINT lda, - const float *X, ATL_CINT incX, const float beta, float *Y, ATL_CINT incY); -void ATL_sgemvT - (ATL_CINT M, ATL_CINT N, const float alpha, const float *A, ATL_CINT lda, - const float *X, ATL_CINT incX, const float beta, float *Y, ATL_CINT incY); -void ATL_sgbmv(const enum ATLAS_TRANS TransA, const int M, const int N, - const int KL, const int KU, const float alpha, - const float *A, const int lda, const float *X, - const int incX, const float beta, float *Y, const int incY); -void ATL_strmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const float *A, const int lda, float *X, const int incX); -void ATL_stbmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const float *A, const int lda, float *X, const int incX); -void ATL_stpmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const float *Ap, - float *X, const int incX); -void ATL_strsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const float *A, const int lda, float *X, const int incX); -void ATL_stbsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const float *A, const int lda, float *X, const int incX); -void ATL_stpsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const float *Ap, float *X, const int incX); - -void ATL_dgemv(const enum ATLAS_TRANS TransA, const int M, const int N, - const double alpha, const double *A, const int lda, - const double *X, const int incX, const double beta, - double *Y, const int incY); -void ATL_dgemvT_L2 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, ATL_CINT lda, - const double *X, ATL_CINT incX, const double beta, double *Y, ATL_CINT incY); -void ATL_dgemvT_L1 - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, ATL_CINT lda, - const double *X, ATL_CINT incX, const double beta, double *Y, ATL_CINT incY); -void ATL_dgemvT - (ATL_CINT M, ATL_CINT N, const double alpha, const double *A, ATL_CINT lda, - const double *X, ATL_CINT incX, const double beta, double *Y, ATL_CINT incY); -void ATL_dgbmv(const enum ATLAS_TRANS TransA, const int M, const int N, - const int KL, const int KU, const double alpha, - const double *A, const int lda, const double *X, - const int incX, const double beta, double *Y, const int incY); -void ATL_dtrmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const double *A, const int lda, double *X, const int incX); -void ATL_dtbmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const double *A, const int lda, double *X, const int incX); -void ATL_dtpmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const double *Ap, - double *X, const int incX); -void ATL_dtrsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const double *A, const int lda, double *X, const int incX); -void ATL_dtbsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const double *A, const int lda, double *X, const int incX); -void ATL_dtpsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const double *Ap, double *X, const int incX); - -void ATL_cgemv(const enum ATLAS_TRANS TransA, const int M, const int N, - const float *alpha, const float *A, const int lda, - const float *X, const int incX, const float *beta, - float *Y, const int incY); -void ATL_cgemvT_L2 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, ATL_CINT lda, - const float *X, ATL_CINT incX, const float *beta, float *Y, ATL_CINT incY); -void ATL_cgemvT_L1 - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, ATL_CINT lda, - const float *X, ATL_CINT incX, const float *beta, float *Y, ATL_CINT incY); -void ATL_cgemvT - (ATL_CINT M, ATL_CINT N, const float *alpha, const float *A, ATL_CINT lda, - const float *X, ATL_CINT incX, const float *beta, float *Y, ATL_CINT incY); -void ATL_cgbmv(const enum ATLAS_TRANS TransA, const int M, const int N, - const int KL, const int KU, const float *alpha, - const float *A, const int lda, const float *X, - const int incX, const float *beta, float *Y, const int incY); -void ATL_ctrmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const float *A, const int lda, float *X, const int incX); -void ATL_ctbmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const float *A, const int lda, float *X, const int incX); -void ATL_ctpmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const float *Ap, - float *X, const int incX); -void ATL_ctrsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const float *A, const int lda, float *X, const int incX); -void ATL_ctbsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const float *A, const int lda, float *X, const int incX); -void ATL_ctpsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const float *Ap, float *X, const int incX); - -void ATL_zgemv(const enum ATLAS_TRANS TransA, const int M, const int N, - const double *alpha, const double *A, const int lda, - const double *X, const int incX, const double *beta, - double *Y, const int incY); -void ATL_zgemvT_L2 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, ATL_CINT lda, - const double *X, ATL_CINT incX, const double *beta, double *Y, ATL_CINT incY); -void ATL_zgemvT_L1 - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, ATL_CINT lda, - const double *X, ATL_CINT incX, const double *beta, double *Y, ATL_CINT incY); -void ATL_zgemvT - (ATL_CINT M, ATL_CINT N, const double *alpha, const double *A, ATL_CINT lda, - const double *X, ATL_CINT incX, const double *beta, double *Y, ATL_CINT incY); -void ATL_zgbmv(const enum ATLAS_TRANS TransA, const int M, const int N, - const int KL, const int KU, const double *alpha, - const double *A, const int lda, const double *X, - const int incX, const double *beta, double *Y, const int incY); -void ATL_ztrmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const double *A, const int lda, double *X, const int incX); -void ATL_ztbmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const double *A, const int lda, double *X, const int incX); -void ATL_ztpmv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const double *Ap, - double *X, const int incX); -void ATL_ztrsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const double *A, const int lda, double *X, const int incX); -void ATL_ztbsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, const int K, - const double *A, const int lda, double *X, const int incX); -void ATL_ztpsv(const enum ATLAS_UPLO Uplo, const enum ATLAS_TRANS TransA, - const enum ATLAS_DIAG Diag, const int N, - const double *Ap, double *X, const int incX); - - -/* - * Routines with S and D prefixes only - */ -void ATL_ssymv(const enum ATLAS_UPLO Uplo, const int N, - const float alpha, const float *A, const int lda, - const float *X, const int incX, const float beta, - float *Y, const int incY); -void ATL_ssbmv(const enum ATLAS_UPLO Uplo, const int N, const int K, - const float alpha, const float *A, const int lda, - const float *X, const int incX, const float beta, - float *Y, const int incY); -void ATL_sspmv(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *Ap, const float *X, const int incX, - const float beta, float *Y, const int incY); -void ATL_sger(const int M, const int N, const float alpha, - const float *X, const int incX, const float *Y, const int incY, - float *A, const int lda); -void ATL_sger2(const int M, const int N, const float alpha, - const float *X, const int incX, const float *Y, const int incY, - const float beta, - const float *W, const int incW, const float *Z, const int incZ, - float *A, const int lda); -void ATL_ssyr(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *X, const int incX, float *A, const int lda); -void ATL_sspr(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *X, const int incX, float *Ap); -void ATL_ssyr2(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *X, const int incX, const float *Y, const int incY, - float *A, const int lda); -void ATL_sspr2(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *X, const int incX, const float *Y, const int incY, - float *A); - -void ATL_dsymv(const enum ATLAS_UPLO Uplo, const int N, - const double alpha, const double *A, const int lda, - const double *X, const int incX, const double beta, - double *Y, const int incY); -void ATL_dsbmv(const enum ATLAS_UPLO Uplo, const int N, const int K, - const double alpha, const double *A, const int lda, - const double *X, const int incX, const double beta, - double *Y, const int incY); -void ATL_dspmv(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *Ap, const double *X, const int incX, - const double beta, double *Y, const int incY); -void ATL_dger(const int M, const int N, const double alpha, - const double *X, const int incX, const double *Y, const int incY, - double *A, const int lda); -void ATL_dger2(const int M, const int N, const double alpha, - const double *X, const int incX, const double *Y, const int incY, - const double beta, - const double *W, const int incW, const double *Z, const int incZ, - double *A, const int lda); -void ATL_dsyr(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *X, const int incX, double *A, const int lda); -void ATL_dspr(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *X, const int incX, double *Ap); -void ATL_dsyr2(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *X, const int incX, const double *Y, const int incY, - double *A, const int lda); -void ATL_dspr2(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *X, const int incX, const double *Y, const int incY, - double *A); - - -/* - * Routines with C and Z prefixes only - */ -void ATL_chemv(const enum ATLAS_UPLO Uplo, const int N, - const float *alpha, const float *A, const int lda, - const float *X, const int incX, const float *beta, - float *Y, const int incY); -void ATL_chbmv(const enum ATLAS_UPLO Uplo, const int N, const int K, - const float *alpha, const float *A, const int lda, - const float *X, const int incX, const float *beta, - float *Y, const int incY); -void ATL_chpmv(const enum ATLAS_UPLO Uplo, const int N, - const float *alpha, const float *Ap, - const float *X, const int incX, const float *beta, - float *Y, const int incY); -void ATL_cgeru(const int M, const int N, const float *alpha, - const float *X, const int incX, const float *Y, const int incY, - float *A, const int lda); -void ATL_cgerc(const int M, const int N, const float *alpha, - const float *X, const int incX, const float *Y, const int incY, - float *A, const int lda); -void ATL_cger2u(const int M, const int N, - const float *alpha, const float *X, const int incX, - const float *Y, const int incY, - const float *beta, const float *W, const int incW, - const float *Z, const int incZ, - float *A, const int lda); -void ATL_cger2c(const int M, const int N, - const float *alpha, const float *X, const int incX, - const float *Y, const int incY, - const float *beta, const float *W, const int incW, - const float *Z, const int incZ, - float *A, const int lda); -void ATL_cher(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *X, const int incX, float *A, const int lda); -void ATL_chpr(const enum ATLAS_UPLO Uplo, const int N, const float alpha, - const float *X, const int incX, float *A); -void ATL_cher2(const enum ATLAS_UPLO Uplo, const int N, - const float *alpha, const float *X, const int incX, - const float *Y, const int incY, float *A, const int lda); -void ATL_chpr2(const enum ATLAS_UPLO Uplo, const int N, - const float *alpha, const float *X, const int incX, - const float *Y, const int incY, float *Ap); - -void ATL_zhemv(const enum ATLAS_UPLO Uplo, const int N, - const double *alpha, const double *A, const int lda, - const double *X, const int incX, const double *beta, - double *Y, const int incY); -void ATL_zhbmv(const enum ATLAS_UPLO Uplo, const int N, const int K, - const double *alpha, const double *A, const int lda, - const double *X, const int incX, const double *beta, - double *Y, const int incY); -void ATL_zhpmv(const enum ATLAS_UPLO Uplo, const int N, - const double *alpha, const double *Ap, - const double *X, const int incX, const double *beta, - double *Y, const int incY); -void ATL_zgeru(const int M, const int N, const double *alpha, - const double *X, const int incX, const double *Y, const int incY, - double *A, const int lda); -void ATL_zgerc(const int M, const int N, const double *alpha, - const double *X, const int incX, const double *Y, const int incY, - double *A, const int lda); -void ATL_zger2u(const int M, const int N, - const double *alpha, const double *X, const int incX, - const double *Y, const int incY, - const double *beta, const double *W, const int incW, - const double *Z, const int incZ, - double *A, const int lda); -void ATL_zger2c(const int M, const int N, - const double *alpha, const double *X, const int incX, - const double *Y, const int incY, - const double *beta, const double *W, const int incW, - const double *Z, const int incZ, - double *A, const int lda); -void ATL_zher(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *X, const int incX, double *A, const int lda); -void ATL_zhpr(const enum ATLAS_UPLO Uplo, const int N, const double alpha, - const double *X, const int incX, double *A); -void ATL_zher2(const enum ATLAS_UPLO Uplo, const int N, - const double *alpha, const double *X, const int incX, - const double *Y, const int incY, double *A, const int lda); -void ATL_zhpr2(const enum ATLAS_UPLO Uplo, const int N, - const double *alpha, const double *X, const int incX, - const double *Y, const int incY, double *Ap); - - -#endif diff --git a/sklearn/src/cblas/atlas_misc.h b/sklearn/src/cblas/atlas_misc.h deleted file mode 100644 index 55da67c934826..0000000000000 --- a/sklearn/src/cblas/atlas_misc.h +++ /dev/null @@ -1,477 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1997 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#include -#include -#include "atlas_enum.h" - -#ifndef ATLAS_MISC_H -#define ATLAS_MISC_H -#include "atlas_type.h" -#ifdef ATL_PROFILE - extern int ATL_ProfGemmCameFrom; -#endif -/* - * If using a C99 compiler, define the restrict attribute, which says that - * this is the only pointer referencing the given section of memory - */ -#if defined(__STDC_VERSION__) && (__STDC_VERSION__/100 >= 1999) - #define ATL_RESTRICT restrict -#else - #define ATL_RESTRICT -#endif - -/* - * Some useful macro functions - */ -#if (defined(PentiumCPS) || defined(ATL_USEPTHREADS)) && !defined(WALL) - #define WALL -#endif -#ifndef time00 - #if defined(WALL) - #define time00 ATL_walltime - #else - #define time00 ATL_cputime - #endif -#endif -#define Mabs(x) ( (x) >= 0 ? (x) : -(x) ) -#define Mmax(x, y) ( (x) > (y) ? (x) : (y) ) -#define Mmin(x, y) ( (x) > (y) ? (y) : (x) ) -#define Mlowcase(C) ( ((C) > 64 && (C) < 91) ? (C) | 32 : (C) ) -#define Mupcase(C) ( ((C) > 96 && (C) < 123) ? (C) & 0xDF : (C) ) -/* - * packed indexing functions (upper & lower) - */ - -#define Mjoin(pre, nam) my_join(pre, nam) -#define my_join(pre, nam) pre ## nam -#define Mstr2(m) # m -#define Mstr(m) Mstr2(m) - -#define ATL_assert(n_) \ -{ \ - if (!(n_)) \ - { \ - ATL_xerbla(0, __FILE__, "assertion %s failed, line %d of file %s\n", \ - Mstr(n_), __LINE__, __FILE__); \ - } \ -} - -/* - * Define some C99 features that we use when we know the compiler supports them - */ -#if defined(__STDC_VERSION__) && (__STDC_VERSION__/100 >= 1999) - #define INLINE inline - #define RESTRICT restrict -#else - #define INLINE - #define RESTRICT -#endif - -#ifdef ATL_LONG_INT - #define ATL_INT long - #define ATL_CINT const long -#else - #define ATL_INT int - #define ATL_CINT const int -#endif - - -#define ATL_QTYPE long double -#if defined(SREAL) - #define EPS 5.0e-7 - #define TYPE float - #define PRE s - #define UPR s - #define PREU S - #define PATL ATL_s - #define PATU ATLU_s - #define UATL ATLU_s - #define CBLA cblas_s - #define PATLU ATL_s - #define ATL_rone 1.0f - #define ATL_rnone -1.0f - #define ATL_rzero 0.0f - #define ATL_typify(m_) Mjoin(m_,f) - #include "atlas_ssysinfo.h" -#elif defined(DREAL) - #define EPS 1.0e-15 - #define TYPE double - #define PRE d - #define UPR d - #define PREU D - #define PATL ATL_d - #define PATU ATLU_d - #define UATL ATLU_d - #define CBLA cblas_d - #define PATLU ATL_d - #define ATL_rone 1.0 - #define ATL_rnone -1.0 - #define ATL_rzero 0.0 - #define ATL_typify(m_) m_ - #include "atlas_dsysinfo.h" -#elif defined (QREAL) - #define EPS 1.9259299443872358530559779425849273E-34L - #define TYPE long double - #define PRE q - #define UPR q - #define PREU Q - #define PATL ATL_q - #define PATU ATLU_q - #define CBLA cblas_q - #define ATL_rone 1.0 - #define ATL_rnone -1.0 - #define ATL_rzero 0.0 -#elif defined(SCPLX) - #define EPS 5.0e-7 - #define TYPE float - #define PRE c - #define UPR s - #define PREU C - #define PATL ATL_c - #define PATLU ATL_s - #define PATU ATLU_c - #define UATL ATLU_s - #define ATL_rone 1.0f - #define ATL_rnone -1.0f - #define ATL_rzero 0.0f - #define ATL_typify(m_) Mjoin(m_,f) - #define CBLA cblas_c - #include "atlas_csysinfo.h" -#elif defined(DCPLX) - #define TYPE double - #define PRE z - #define UPR d - #define PREU Z - #define PATL ATL_z - #define PATLU ATL_d - #define PATU ATLU_z - #define UATL ATLU_d - #define EPS 1.0e-15 - #define ATL_rone 1.0 - #define ATL_rnone -1.0 - #define ATL_rzero 0.0 - #define ATL_typify(m_) m_ - #define CBLA cblas_z - #include "atlas_zsysinfo.h" -#elif defined(QCPLX) - #define TYPE ATL_QTYPE - #define PRE e - #define UPR q - #define PREU E - #define PATL ATL_e - #define PATLU ATL_q - #define UATL ATLU_q - #define EPS 1.9259299443872358530559779425849273E-34L - #define ATL_rone 1.0 - #define ATL_rnone -1.0 - #define ATL_rzero 0.0 - #define CBLA cblas_e -#endif - -#if defined (SREAL) || defined (DREAL) || defined (SCPLX) || defined (DCPLX) - #define ATL_sizeof Mjoin(PATL,size) - #define ATL_MulBySize Mjoin(PATL,MulBySize) - #define ATL_DivBySize Mjoin(PATL,DivBySize) -#else - #define ATL_sizeof sizeof(TYPE) - #define ATL_MulBySize Mjoin(Mjoin(ATL_,PRE),MulBySize)(N_) \ - ((N_)*sizeof(TYPE)) - #define ATL_DivBySize Mjoin(Mjoin(ATL_,PRE),DivBySize)(N_) \ - ((N_)/sizeof(TYPE)) -#endif - -#if ( defined(SREAL) || defined(DREAL) || defined(QREAL) ) - #define TREAL - #define SHIFT - #define SCALAR TYPE - #define SADD & - #define SVAL - #define SVVAL * - #define SCALAR_IS_ONE(M_scalar) ((M_scalar) == ATL_rone) - #define SCALAR_IS_NONE(M_scalar) ((M_scalar) == ATL_rnone) - #define SCALAR_IS_ZERO(M_scalar) ((M_scalar) == ATL_rzero) -#elif defined(SCPLX) || defined(DCPLX) || defined(QCPLX) - #define TCPLX -/* - * c = b*c + v; - */ - #define CMULT2(v, a, b, tmp) \ - { \ - tmp = *(a) * *(b) - *(a+1) * *(b+1); \ - *(b+1) = *(a) * *(b+1) + *(a+1) * *(b) + *(v+1); \ - *(b) = tmp + *v; \ - } - #define SHIFT << 1 - #define SCALAR TYPE * - #define SADD - #define SVAL * - #define SVVAL - #define SCALAR_IS_ONE(M_scalar) \ - ( (*(M_scalar) == ATL_rone) && ((M_scalar)[1] == ATL_rzero) ) - #define SCALAR_IS_NONE(M_scalar) \ - ( (*(M_scalar) == ATL_rnone) && ((M_scalar)[1] == ATL_rzero) ) - #define SCALAR_IS_ZERO(M_scalar) \ - ( (*(M_scalar) == ATL_rzero) && ((M_scalar)[1] == ATL_rzero) ) -#endif - -#if defined(ALPHA1) - #define ATL_MulByALPHA(x_) (x_) - #define NM _a1 -#elif defined (ALPHA0) - #define ATL_MulByALPHA(x_) ATL_rzero - #define NM _a0 -#elif defined (ALPHAN1) - #define ATL_MulByALPHA(x_) (-(x_)) - #define NM _an1 -#elif defined (ALPHAXI0) - #define ATL_MulByALPHA(x_) (ralpha*(x_)) - #define NM _aXi0 -#elif defined (ALPHA1C) - #define NM _a1c -#elif defined (ALPHAN1C) - #define NM _an1c -#elif defined (ALPHAXI0C) - #define NM _aXi0c -#elif defined (ALPHAXC) - #define NM _aXc -#elif defined (ALPHAX) - #define ATL_MulByALPHA(x_) (alpha*(x_)) - #define NM _aX -#endif - -#if defined(BETA1) - #define ATL_MulByBETA(x_) (x_) - #define MSTAT A[i] += v[i] - #define BNM _b1 -#elif defined(BETA1C) - #define BNM _b1c -#elif defined(BETAN1) - #define ATL_MulByBETA(x_) (-(x_)) - #define MSTAT A[i] = v[i] - A[i] - #define BNM _bn1 -#elif defined(BETAN1C) - #define BNM _bn1c -#elif defined(BETA0) - #define ATL_MulByBETA(x_) ATL_rzero - #define MSTAT A[i] = v[i] - #define BNM _b0 -#elif defined (BETAXI0) - #define BNM _bXi0 - #define ATL_MulByBETA(x_) (rbeta*(x_)) -#elif defined (BETAXI0C) - #define BNM _bXi0c -#elif defined (BETAX) - #define ATL_MulByBETA(x_) (beta*(x_)) - #define MSTAT A[i] = beta*A[i] + v[i] - #define BNM _bX -#elif defined (BETAXC) - #define BNM _bXc -#endif - -/* any alignment below this forces data copy in gemm */ -#ifndef ATL_MinMMAlign - #define ATL_MinMMAlign 16 -#endif -#if (ATL_MinMMAlign == 1 || ATL_MinMMAlign == 0) - #define ATL_DataIsMinAligned(ptr) 1 -#elif (ATL_MinMMAlign == 2) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>1)<<1 == (size_t) (ptr) ) -#elif (ATL_MinMMAlign == 4) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>2)<<2 == (size_t) (ptr) ) -#elif (ATL_MinMMAlign == 8) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>3)<<3 == (size_t) (ptr) ) -#elif (ATL_MinMMAlign == 16) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>4)<<4 == (size_t) (ptr) ) -#elif (ATL_MinMMAlign == 32) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>5)<<5 == (size_t) (ptr) ) -#elif (ATL_MinMMAlign == 64) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>6)<<6 == (size_t) (ptr) ) -#elif (ATL_MinMMAlign == 128) - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))>>7)<<7 == (size_t) (ptr) ) -#else - #define ATL_DataIsMinAligned(ptr) \ - ( (((size_t) (ptr))/ATL_MinMMAlign)*ATL_MinMMAlign == (size_t) (ptr) ) -#endif - -#define ATL_Cachelen 32 -#if (ATL_Cachelen == 4) - #define ATL_MulByCachelen(N_) ( (N_) << 2 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 2 ) -#elif (ATL_Cachelen == 8) - #define ATL_MulByCachelen(N_) ( (N_) << 3 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 3 ) -#elif (ATL_Cachelen == 16) - #define ATL_MulByCachelen(N_) ( (N_) << 4 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 4 ) -#elif (ATL_Cachelen == 32) - #define ATL_MulByCachelen(N_) ( (N_) << 5 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 5 ) -#elif (ATL_Cachelen == 64) - #define ATL_MulByCachelen(N_) ( (N_) << 6 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 6 ) -#elif (ATL_Cachelen == 128) - #define ATL_MulByCachelen(N_) ( (N_) << 7 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 7 ) -#elif (ATL_Cachelen == 256) - #define ATL_MulByCachelen(N_) ( (N_) << 8 ) - #define ATL_DivByCachelen(N_) ( (N_) >> 8 ) -#else - #define ATL_MulByCachelen(N_) ( (N_) * ATL_Cachelen ) - #define ATL_DivByCachelen(N_) ( (N_) / ATL_Cachelen ) -#endif - -#if (ATL_Cachelen < ATL_MinMMAlign) - Force a compilation error if our required alignment is at least the - minimum!!@^ -#endif - -#define ATL_AlignPtr(vp) \ - (void*) (ATL_Cachelen + ATL_MulByCachelen(ATL_DivByCachelen((size_t) (vp)))) - -#define ATL_FindPtrAdjust(vp, iadj_) \ -{ \ - (iadj_) = ((size_t)(vp))-ATL_MulByCachelen(ATL_DivByCachelen((size_t)(vp)));\ - if (iadj_) \ - { \ - if ( (iadj_) == ATL_MulBySize(ATL_DivBySize(iadj_)) ) \ - (iadj_) = ATL_DivBySize(iadj_); \ - else (iadj_) = 0; \ - }\ -} -#define ATL_FindMatAdjust(vp_, lda_, iadj_) \ -{ \ - if (ATL_MulByCachelen(ATL_DivByCachelen(ATL_MulBySize(lda_))) \ - == ATL_MulBySize(lda_)) \ - { \ - ATL_FindPtrAdjust(vp_, iadj_); \ - } \ - else (iadj_) = 0; \ -} - -#define ATL_sqrtLL(x, res) \ - asm ("fsqrt" : "=t" (res) : "0" (x)); - -/* - * Find N necessary for alignment. Written as function for optimization, - * declared static to encourage inlining - */ -static int ATL_AlignOffset -(const int N, /* max return value */ - const void *vp, /* pointer to be aligned */ - const int inc, /* size of each elt, in bytes */ - const int align) /* required alignment, in bytes */ -{ - const int p = align/inc; - const size_t k=(size_t)vp, j=k/inc; - int iret; - if (k == (j)*inc && p*inc == align) - { - iret = ((j+p-1) / p)*p - j; - if (iret <= N) return(iret); - } - return(N); -} -static void *ATL_Align2Ptr(const void *pu, const void *pA) -/* - * Aligns pu%ATL_Cachelen to pA%ATL_Cachelen by adding at most ATL_Cachlen - * to pu - * RETURNS: pu possibly incremented so that it has same alignment as pA - */ -{ - size_t tu = (size_t) pu, ta = (size_t) pA; - - tu -= (tu/ATL_Cachelen)*ATL_Cachelen; - ta -= (ta/ATL_Cachelen)*ATL_Cachelen; - if (tu <= ta) - tu = ta; - else - tu = ta + ATL_Cachelen-tu; - tu += (size_t) pu; - return((void*) tu); -} - - -/* - * Gcc links in crap that MSVC++ and DVF can't handle if you use stdout - * or stderr, so use this beautiful kludge to avoid this problem -- RCW - */ -#ifdef GCCWIN - -#include -static int WINFPRINTF(FILE *fpout, char *form, ...) -{ - int ierr=0; - va_list argptr; - - va_start(argptr, form); - if (fpout == NULL) ierr = vprintf(form, argptr); - else ierr = vfprintf(fpout, form, argptr); - va_end(argptr); - - return(ierr); -} - -#ifdef stdout - #undef stdout -#endif -#ifdef stderr - #undef stderr -#endif -#ifdef assert - #undef assert -#endif - -#define stdout NULL -#define stderr NULL -#define fprintf WINFPRINTF -#define assert WINASSERT -#define WINASSERT(n_) \ -{ \ - if (!(n_)) \ - { \ - printf("assertion %s failed, line %d of file %s\n", \ - Mstr(n_), __LINE__, __FILE__); \ - exit(1); \ - } \ -} - -#endif - -#include "atlas_aux.h" - -#endif diff --git a/sklearn/src/cblas/atlas_ptalias1.h b/sklearn/src/cblas/atlas_ptalias1.h deleted file mode 100644 index 4668cb282dd9f..0000000000000 --- a/sklearn/src/cblas/atlas_ptalias1.h +++ /dev/null @@ -1,60 +0,0 @@ -#define ATLAS_PTALIAS1_H /* no threaded routs for Level 1 yet */ -#ifndef ATLAS_PTALIAS1_H -#define ATLAS_PTALIAS1_H -/* - * Real BLAS - */ - #define ATL_dsdot ATL_dstdot - #define ATL_sdsdot ATL_sdstdot - #define ATL_sasum ATL_stasum - #define ATL_snrm2 ATL_stnrm2 - #define ATL_sdot ATL_stdot - #define ATL_saxpy ATL_staxpy - #define ATL_scopy ATL_stcopy - #define ATL_sscal ATL_stscal - #define ATL_sswap ATL_stswap - #define ATL_srotm ATL_strotm - #define ATL_srot ATL_strot - #define ATL_srotmg ATL_strotmg - #define ATL_srotg ATL_strotg - #define ATL_isamax ATL_istamax - - #define ATL_dasum ATL_dtasum - #define ATL_dnrm2 ATL_dtnrm2 - #define ATL_ddot ATL_dtdot - #define ATL_daxpy ATL_dtaxpy - #define ATL_dcopy ATL_dtcopy - #define ATL_dscal ATL_dtscal - #define ATL_dswap ATL_dtswap - #define ATL_drotm ATL_dtrotm - #define ATL_drot ATL_dtrot - #define ATL_drotmg ATL_dtrotmg - #define ATL_drotg ATL_dtrotg - #define ATL_idamax ATL_idtamax - -/* - * Complex BLAS - */ - #define ATL_cdotc_sub ATL_ctdotc_sub - #define ATL_cdotu_sub ATL_ctdotu_sub - #define ATL_caxpy ATL_ctaxpy - #define ATL_ccopy ATL_ctcopy - #define ATL_cscal ATL_ctscal - #define ATL_cswap ATL_ctswap - #define ATL_icamax ATL_ictamax - #define ATL_csscal ATL_cstscal - #define ATL_scnrm2 ATL_sctnrm2 - #define ATL_scasum ATL_sctasum - - #define ATL_zdotc_sub ATL_ztdotc_sub - #define ATL_zdotu_sub ATL_ztdotu_sub - #define ATL_zaxpy ATL_ztaxpy - #define ATL_zcopy ATL_ztcopy - #define ATL_zscal ATL_ztscal - #define ATL_zswap ATL_ztswap - #define ATL_izamax ATL_iztamax - #define ATL_zdscal ATL_zdtscal - #define ATL_dznrm2 ATL_dztnrm2 - #define ATL_dzasum ATL_dztasum - -#endif diff --git a/sklearn/src/cblas/atlas_ptalias2.h b/sklearn/src/cblas/atlas_ptalias2.h deleted file mode 100644 index 8699fb750bed4..0000000000000 --- a/sklearn/src/cblas/atlas_ptalias2.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef ATLAS_PTALIAS2_H -#define ATLAS_PTALIAS2_H -/* - * Real BLAS - */ - #define ATL_sger ATL_stger - #define ATL_sgemv ATL_stgemv - - #define ATL_dger ATL_dtger - #define ATL_dgemv ATL_dtgemv - -/* - * Complex BLAS - */ - #define ATL_cgemv ATL_ctgemv - #define ATL_cgerc ATL_ctgerc - #define ATL_cgeru ATL_ctgeru - - #define ATL_zgemv ATL_ztgemv - #define ATL_zgerc ATL_ztgerc - #define ATL_zgeru ATL_ztgeru - -#endif diff --git a/sklearn/src/cblas/atlas_refalias1.h b/sklearn/src/cblas/atlas_refalias1.h deleted file mode 100644 index 7dcac8ad873a3..0000000000000 --- a/sklearn/src/cblas/atlas_refalias1.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef ATLAS_REFALIAS1_H -#define ATLAS_REFALIAS1_H -/* - * Real BLAS - */ - #define ATL_dsdot ATL_dsrefdot - #define ATL_sdsdot ATL_sdsrefdot - #define ATL_sasum ATL_srefasum - #define ATL_snrm2 ATL_srefnrm2 - #define ATL_sdot ATL_srefdot - #define ATL_saxpy ATL_srefaxpy - #define ATL_scopy ATL_srefcopy - #define ATL_sscal ATL_srefscal - #define ATL_sswap ATL_srefswap - #define ATL_srotm ATL_srefrotm - #define ATL_srot ATL_srefrot - #define ATL_srotmg ATL_srefrotmg - #define ATL_srotg ATL_srefrotg - #define ATL_isamax ATL_isrefamax - - #define ATL_dasum ATL_drefasum - #define ATL_dnrm2 ATL_drefnrm2 - #define ATL_ddot ATL_drefdot - #define ATL_daxpy ATL_drefaxpy - #define ATL_dcopy ATL_drefcopy - #define ATL_dscal ATL_drefscal - #define ATL_dswap ATL_drefswap - #define ATL_drotm ATL_drefrotm - #define ATL_drot ATL_drefrot - #define ATL_drotmg ATL_drefrotmg - #define ATL_drotg ATL_drefrotg - #define ATL_idamax ATL_idrefamax - -/* - * Complex BLAS - */ - #define ATL_cdotc_sub ATL_crefdotc_sub - #define ATL_cdotu_sub ATL_crefdotu_sub - #define ATL_caxpy ATL_crefaxpy - #define ATL_ccopy ATL_crefcopy - #define ATL_cscal ATL_crefscal - #define ATL_cswap ATL_crefswap - #define ATL_icamax ATL_icrefamax - #define ATL_csscal ATL_csrefscal - #define ATL_scnrm2 ATL_screfnrm2 - #define ATL_scasum ATL_screfasum - - #define ATL_zdotc_sub ATL_zrefdotc_sub - #define ATL_zdotu_sub ATL_zrefdotu_sub - #define ATL_zaxpy ATL_zrefaxpy - #define ATL_zcopy ATL_zrefcopy - #define ATL_zscal ATL_zrefscal - #define ATL_zswap ATL_zrefswap - #define ATL_izamax ATL_izrefamax - #define ATL_zdscal ATL_zdrefscal - #define ATL_dznrm2 ATL_dzrefnrm2 - #define ATL_dzasum ATL_dzrefasum - -#endif diff --git a/sklearn/src/cblas/atlas_refalias2.h b/sklearn/src/cblas/atlas_refalias2.h deleted file mode 100644 index ffba93c4ed5e1..0000000000000 --- a/sklearn/src/cblas/atlas_refalias2.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef ATLAS_REFALIAS2_H -#define ATLAS_REFALIAS2_H -/* - * Real BLAS - */ - #define ATL_sger2 ATL_srefger2 - #define ATL_sspr2 ATL_srefspr2 - #define ATL_ssyr2 ATL_srefsyr2 - #define ATL_sspr ATL_srefspr - #define ATL_ssyr ATL_srefsyr - #define ATL_sger ATL_srefger - #define ATL_stpsv ATL_sreftpsv - #define ATL_stbsv ATL_sreftbsv - #define ATL_strsv ATL_sreftrsv - #define ATL_stpmv ATL_sreftpmv - #define ATL_stbmv ATL_sreftbmv - #define ATL_strmv ATL_sreftrmv - #define ATL_sspmv ATL_srefspmv - #define ATL_ssbmv ATL_srefsbmv - #define ATL_ssymv ATL_srefsymv - #define ATL_sgbmv ATL_srefgbmv - #define ATL_sgemv ATL_srefgemv - - #define ATL_dger2 ATL_drefger2 - #define ATL_dspr2 ATL_drefspr2 - #define ATL_dsyr2 ATL_drefsyr2 - #define ATL_dspr ATL_drefspr - #define ATL_dsyr ATL_drefsyr - #define ATL_dger ATL_drefger - #define ATL_dtpsv ATL_dreftpsv - #define ATL_dtbsv ATL_dreftbsv - #define ATL_dtrsv ATL_dreftrsv - #define ATL_dtpmv ATL_dreftpmv - #define ATL_dtbmv ATL_dreftbmv - #define ATL_dtrmv ATL_dreftrmv - #define ATL_dspmv ATL_drefspmv - #define ATL_dsbmv ATL_drefsbmv - #define ATL_dsymv ATL_drefsymv - #define ATL_dgbmv ATL_drefgbmv - #define ATL_dgemv ATL_drefgemv - -/* - * Complex BLAS - */ - #define ATL_cger2c ATL_crefger2c - #define ATL_cger2u ATL_crefger2u - #define ATL_chpr2 ATL_crefhpr2 - #define ATL_cher2 ATL_crefher2 - #define ATL_chpr ATL_crefhpr - #define ATL_cher ATL_crefher - #define ATL_cgerc ATL_crefgerc - #define ATL_cgeru ATL_crefgeru - #define ATL_ctpsv ATL_creftpsv - #define ATL_ctbsv ATL_creftbsv - #define ATL_ctrsv ATL_creftrsv - #define ATL_ctpmv ATL_creftpmv - #define ATL_ctbmv ATL_creftbmv - #define ATL_ctrmv ATL_creftrmv - #define ATL_chpmv ATL_crefhpmv - #define ATL_chbmv ATL_crefhbmv - #define ATL_chemv ATL_crefhemv - #define ATL_cgbmv ATL_crefgbmv - #define ATL_cgemv ATL_crefgemv - - #define ATL_zger2c ATL_zrefger2c - #define ATL_zger2u ATL_zrefger2u - #define ATL_zhpr2 ATL_zrefhpr2 - #define ATL_zher2 ATL_zrefher2 - #define ATL_zhpr ATL_zrefhpr - #define ATL_zher ATL_zrefher - #define ATL_zgerc ATL_zrefgerc - #define ATL_zgeru ATL_zrefgeru - #define ATL_ztpsv ATL_zreftpsv - #define ATL_ztbsv ATL_zreftbsv - #define ATL_ztrsv ATL_zreftrsv - #define ATL_ztpmv ATL_zreftpmv - #define ATL_ztbmv ATL_zreftbmv - #define ATL_ztrmv ATL_zreftrmv - #define ATL_zhpmv ATL_zrefhpmv - #define ATL_zhbmv ATL_zrefhbmv - #define ATL_zhemv ATL_zrefhemv - #define ATL_zgbmv ATL_zrefgbmv - #define ATL_zgemv ATL_zrefgemv - -#endif diff --git a/sklearn/src/cblas/atlas_reflevel1.h b/sklearn/src/cblas/atlas_reflevel1.h deleted file mode 100644 index b457d5d63043e..0000000000000 --- a/sklearn/src/cblas/atlas_reflevel1.h +++ /dev/null @@ -1,423 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ - -#ifndef ATLAS_REFLEVEL1_H -#define ATLAS_REFLEVEL1_H - -/* - * ===================================================================== - * Prototypes for Level 1 Reference ATLAS BLAS routines - * ===================================================================== - */ -void ATL_srefrotg -( - float *, - float *, - float *, - float * -); - -void ATL_srefrotmg -( - float *, - float *, - float *, - const float, - float * -); - -float ATL_srefnrm2 -( - const int, - const float *, const int -); - -float ATL_srefasum -( - const int, - const float *, const int -); - -int ATL_isrefamax -( - const int, - const float *, const int -); - -void ATL_srefscal -( - const int, - const float, - float *, const int -); - -void ATL_srefswap -( - const int, - float *, const int, - float *, const int -); - -void ATL_srefcopy -( - const int, - const float *, const int, - float *, const int -); - -void ATL_srefaxpy -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_srefrot -( - const int, - float *, const int, - float *, const int, - const float, - const float -); - -void ATL_srefrotm -( - const int, - float *, const int, - float *, const int, - const float * -); - -float ATL_srefdot -( - const int, - const float *, const int, - const float *, const int -); - -float ATL_sdsrefdot -( - const int, - const float, - const float *, const int, - const float *, const int -); - -double ATL_dsrefdot -( - const int, - const float *, const int, - const float *, const int -); - -void ATL_drefrotg -( - double *, - double *, - double *, - double * -); - -void ATL_drefrotmg -( - double *, - double *, - double *, - const double, - double * -); - -double ATL_drefnrm2 -( - const int, - const double *, const int -); - -double ATL_drefasum -( - const int, - const double *, const int -); - -int ATL_idrefamax -( - const int, - const double *, const int -); - -void ATL_drefscal -( - const int, - const double, - double *, const int -); - -void ATL_drefswap -( - const int, - double *, const int, - double *, const int -); - -void ATL_drefcopy -( - const int, - const double *, const int, - double *, const int -); - -void ATL_drefaxpy -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_drefrot -( - const int, - double *, const int, - double *, const int, - const double, - const double -); - -void ATL_drefrotm -( - const int, - double *, const int, - double *, const int, - const double * -); - -double ATL_drefdot -( - const int, - const double *, const int, - const double *, const int -); - -void ATL_crefrotg -( - float *, - const float *, - float *, - float * -); - -float ATL_screfnrm2 -( - const int, - const float *, const int -); - -float ATL_screfasum -( - const int, - const float *, const int -); - -int ATL_icrefamax -( - const int, - const float *, const int -); - -void ATL_crefscal -( - const int, - const float *, - float *, const int -); - -void ATL_csrefscal -( - const int, - const float, - float *, const int -); - -void ATL_crefswap -( - const int, - float *, const int, - float *, const int -); - -void ATL_crefcopy -( - const int, - const float *, const int, - float *, const int -); - -void ATL_crefaxpy -( - const int, - const float *, - const float *, const int, - float *, const int -); - -void ATL_csrefrot -( - const int, - float *, const int, - float *, const int, - const float, - const float -); - -void ATL_crefdotc_sub -( - const int, - const float *, const int, - const float *, const int, - float * -); - -void ATL_crefdotu_sub -( - const int, - const float *, const int, - const float *, const int, - float * -); - -void ATL_zrefrotg -( - double *, - const double *, - double *, - double * -); - -double ATL_dzrefnrm2 -( - const int, - const double *, const int -); - -double ATL_dzrefasum -( - const int, - const double *, const int -); - -int ATL_izrefamax -( - const int, - const double *, const int -); - -void ATL_zrefscal -( - const int, - const double *, - double *, const int -); - -void ATL_zdrefscal -( - const int, - const double, - double *, const int -); - -void ATL_zrefswap -( - const int, - double *, const int, - double *, const int -); - -void ATL_zrefcopy -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zrefaxpy -( - const int, - const double *, - const double *, const int, - double *, const int -); - -void ATL_zdrefrot -( - const int, - double *, const int, - double *, const int, - const double, - const double -); - -void ATL_zrefdotc_sub -( - const int, - const double *, const int, - const double *, const int, - double * -); - -void ATL_zrefdotu_sub -( - const int, - const double *, const int, - const double *, const int, - double * -); - -#endif -/* - * End of atlas_reflevel1.h - */ diff --git a/sklearn/src/cblas/atlas_reflevel2.h b/sklearn/src/cblas/atlas_reflevel2.h deleted file mode 100644 index 95e6e5bfbae9c..0000000000000 --- a/sklearn/src/cblas/atlas_reflevel2.h +++ /dev/null @@ -1,792 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ - -#ifndef ATLAS_REFLEVEL2_H -#define ATLAS_REFLEVEL2_H - -#include "atlas_enum.h" -/* - * ===================================================================== - * Prototypes for Level 2 Reference ATLAS BLAS routines - * ===================================================================== - */ -void ATL_srefgbmv -( - const enum ATLAS_TRANS, - const int, const int, - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgpmv -( - const enum ATLAS_UPLO, - const enum ATLAS_TRANS, - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgemv -( - const enum ATLAS_TRANS, - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgpr -( - const enum ATLAS_UPLO, - const int, const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefger -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefsbmv -( - const enum ATLAS_UPLO, - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefspmv -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefspr -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - float * -); - -void ATL_srefspr2 -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - const float *, const int, - float * -); - -void ATL_srefsymv -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefsyr -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_srefsyr2 -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, - float *, const int -); - -void ATL_sreftpsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, - float *, const int -); - -void ATL_sreftrmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, const int, - float *, const int -); - -void ATL_drefgbmv -( - const enum ATLAS_TRANS, - const int, const int, - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgpmv -( - const enum ATLAS_UPLO, - const enum ATLAS_TRANS, - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgemv -( - const enum ATLAS_TRANS, - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgpr -( - const enum ATLAS_UPLO, - const int, const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefger -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefsbmv -( - const enum ATLAS_UPLO, - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefspmv -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefspr -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - double * -); - -void ATL_drefspr2 -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - const double *, const int, - double * -); - -void ATL_drefsymv -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefsyr -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_drefsyr2 -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, - double *, const int -); - -void ATL_dreftpsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, - double *, const int -); - -void ATL_dreftrmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, const int, - double *, const int -); - -void ATL_crefgbmv -( - const enum ATLAS_TRANS, - const int, const int, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmv -( - const enum ATLAS_UPLO, - const enum ATLAS_TRANS, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgemv -( - const enum ATLAS_TRANS, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgprc -( - const enum ATLAS_UPLO, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefgpru -( - const enum ATLAS_UPLO, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefgerc -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefgeru -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefhbmv -( - const enum ATLAS_UPLO, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhpmv -( - const enum ATLAS_UPLO, - const int, - const float *, - const float *, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhpr -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - float * -); - -void ATL_crefhpr2 -( - const enum ATLAS_UPLO, - const int, - const float *, - const float *, const int, - const float *, const int, - float * -); - -void ATL_crefhemv -( - const enum ATLAS_UPLO, - const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefher -( - const enum ATLAS_UPLO, - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_crefher2 -( - const enum ATLAS_UPLO, - const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, - float *, const int -); - -void ATL_creftpsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, - float *, const int -); - -void ATL_creftrmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const float *, const int, - float *, const int -); - -void ATL_zrefgbmv -( - const enum ATLAS_TRANS, - const int, const int, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmv -( - const enum ATLAS_UPLO, - const enum ATLAS_TRANS, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgemv -( - const enum ATLAS_TRANS, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgprc -( - const enum ATLAS_UPLO, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefgpru -( - const enum ATLAS_UPLO, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefgerc -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefgeru -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefhbmv -( - const enum ATLAS_UPLO, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhpmv -( - const enum ATLAS_UPLO, - const int, - const double *, - const double *, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhpr -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - double * -); - -void ATL_zrefhpr2 -( - const enum ATLAS_UPLO, - const int, - const double *, - const double *, const int, - const double *, const int, - double * -); - -void ATL_zrefhemv -( - const enum ATLAS_UPLO, - const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefher -( - const enum ATLAS_UPLO, - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_zrefher2 -( - const enum ATLAS_UPLO, - const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, - double *, const int -); - -void ATL_zreftpsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, - double *, const int -); - -void ATL_zreftrmv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsv -( - const enum ATLAS_UPLO, const enum ATLAS_TRANS, const enum ATLAS_DIAG, - const int, - const double *, const int, - double *, const int -); - -#endif -/* - * End of atlas_reflevel2.h - */ diff --git a/sklearn/src/cblas/atlas_reflvl2.h b/sklearn/src/cblas/atlas_reflvl2.h deleted file mode 100644 index e64f90d26b987..0000000000000 --- a/sklearn/src/cblas/atlas_reflvl2.h +++ /dev/null @@ -1,3187 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -#ifndef ATLAS_REFLVL2_H -#define ATLAS_REFLVL2_H -/* - * ===================================================================== - * Prototypes for Level 2 Reference Internal ATLAS BLAS routines - * ===================================================================== - */ -void ATL_srefgbmvN -( - const int, const int, - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgbmvT -( - const int, const int, - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgpmvUN -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgpmvUT -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgpmvLN -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgpmvLT -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgemvN -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgemvT -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefgprL -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefgprU -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefsbmvL -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefsbmvU -( - const int, const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefspmvL -( - const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefspmvU -( - const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefsprL -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_srefsprU -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_srefspr2L -( - const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefspr2U -( - const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefsymvL -( - const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefsymvU -( - const int, - const float, - const float *, const int, - const float *, const int, - const float, - float *, const int -); - -void ATL_srefsyrL -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_srefsyrU -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_srefsyr2L -( - const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_srefsyr2U -( - const int, - const float, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvLNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvLNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvLTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvLTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvUNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvUNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvUTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbmvUTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpmvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrmvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvLNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvLNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvLTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvLTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvUNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvUNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvUTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftbsvUTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftpsvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_sreftrsvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_drefgbmvN -( - const int, const int, - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgbmvT -( - const int, const int, - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgpmvUN -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgpmvUT -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgpmvLN -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgpmvLT -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgemvN -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgemvT -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefgprL -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefgprU -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefsbmvL -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefsbmvU -( - const int, const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefspmvL -( - const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefspmvU -( - const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefsprL -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_drefsprU -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_drefspr2L -( - const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefspr2U -( - const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefsymvL -( - const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefsymvU -( - const int, - const double, - const double *, const int, - const double *, const int, - const double, - double *, const int -); - -void ATL_drefsyrL -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_drefsyrU -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_drefsyr2L -( - const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_drefsyr2U -( - const int, - const double, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvLNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvLNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvLTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvLTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvUNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvUNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvUTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbmvUTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpmvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrmvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvLNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvLNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvLTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvLTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvUNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvUNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvUTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftbsvUTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftpsvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_dreftrsvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_crefgbmvN -( - const int, const int, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgbmvT -( - const int, const int, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgbmvC -( - const int, const int, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgbmvH -( - const int, const int, - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvUN -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvUT -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvUC -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvUH -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvLN -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvLT -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvLC -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgpmvLH -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgemvN -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgemvT -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgemvC -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgemvH -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefgprcL -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefgprcU -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefgpruL -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefgpruU -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefhbmvL -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhbmvU -( - const int, const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhpmvL -( - const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhpmvU -( - const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhprL -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_crefhprU -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_crefhpr2L -( - const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefhpr2U -( - const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefhemvL -( - const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefhemvU -( - const int, - const float *, - const float *, const int, - const float *, const int, - const float *, - float *, const int -); - -void ATL_crefherL -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_crefherU -( - const int, - const float, - const float *, const int, - float *, const int -); - -void ATL_crefher2L -( - const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_crefher2U -( - const int, - const float *, - const float *, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLCN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLCU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLHN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvLHU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUCN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUCU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUHN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbmvUHU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvLHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpmvUHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvLHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrmvUHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLCN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLCU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLHN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvLHU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUNN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUNU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUTN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUTU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUCN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUCU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUHN -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftbsvUHU -( - const int, const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvLHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftpsvUHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvLHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUNN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUNU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUTN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUTU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUCN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUCU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUHN -( - const int, - const float *, const int, - float *, const int -); - -void ATL_creftrsvUHU -( - const int, - const float *, const int, - float *, const int -); - -void ATL_zrefgbmvN -( - const int, const int, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgbmvT -( - const int, const int, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgbmvC -( - const int, const int, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgbmvH -( - const int, const int, - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvUN -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvUT -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvUC -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvUH -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvLN -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvLT -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvLC -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgpmvLH -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgemvN -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgemvT -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgemvC -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgemvH -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefgprcL -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefgprcU -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefgpruL -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefgpruU -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefhbmvL -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhbmvU -( - const int, const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhpmvL -( - const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhpmvU -( - const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhprL -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_zrefhprU -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_zrefhpr2L -( - const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefhpr2U -( - const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefhemvL -( - const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefhemvU -( - const int, - const double *, - const double *, const int, - const double *, const int, - const double *, - double *, const int -); - -void ATL_zrefherL -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_zrefherU -( - const int, - const double, - const double *, const int, - double *, const int -); - -void ATL_zrefher2L -( - const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zrefher2U -( - const int, - const double *, - const double *, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLCN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLCU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLHN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvLHU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUCN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUCU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUHN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbmvUHU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvLHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpmvUHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvLHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrmvUHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLCN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLCU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLHN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvLHU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUNN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUNU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUTN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUTU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUCN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUCU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUHN -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftbsvUHU -( - const int, const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvLHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftpsvUHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvLHU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUNN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUNU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUTN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUTU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUCN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUCU -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUHN -( - const int, - const double *, const int, - double *, const int -); - -void ATL_zreftrsvUHU -( - const int, - const double *, const int, - double *, const int -); - -#endif -/* - * End of atlas_reflvl2.h - */ diff --git a/sklearn/src/cblas/atlas_refmisc.h b/sklearn/src/cblas/atlas_refmisc.h deleted file mode 100644 index 47d4ba980e3c9..0000000000000 --- a/sklearn/src/cblas/atlas_refmisc.h +++ /dev/null @@ -1,370 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -#ifndef ATL_REFMISC_H -#define ATL_REFMISC_H -/* - * ===================================================================== - * Include files - * ===================================================================== - */ -#include -#include "atlas_enum.h" -/* - * ===================================================================== - * #define macro constants - * ===================================================================== - */ -#define ATL_sNONE (-1.0f) -#define ATL_sNTWO (-2.0f) -#define ATL_sONE ( 1.0f) -#define ATL_sZERO ( 0.0f) - -#define ATL_dNONE (-1.0) -#define ATL_dNTWO (-2.0) -#define ATL_dONE ( 1.0) -#define ATL_dZERO ( 0.0) -/* - * ===================================================================== - * # macro functions - * ===================================================================== - */ -#define Msabs( a_ ) ( ( (a_) < ATL_sZERO ) ? -(a_) : (a_) ) - -#define Mszero( a_r_, a_i_ ) \ - ( ( (a_r_) == ATL_sZERO ) && ( (a_i_) == ATL_sZERO ) ) - -#define Msone( a_r_, a_i_ ) \ - ( ( (a_r_) == ATL_sONE ) && ( (a_i_) == ATL_sZERO ) ) - -#define Msscl( a_r_, a_i_, c_r_, c_i_ ) \ - { \ - register float tmp_r_, tmp_i_; \ - tmp_r_ = (a_r_) * c_r_ - (a_i_) * c_i_; \ - tmp_i_ = (a_r_) * c_i_ + (a_i_) * c_r_; \ - c_r_ = tmp_r_; \ - c_i_ = tmp_i_; \ - } -/* - * Msdiv performs complex division in real arithmetic - * a_r_ + i * a_i_ = ( a_r_ + i * a_i_ ) / ( b_r_ + i * b_i_ ); - * The algorithm is due to Robert L. Smith and can be found in D. Knuth, - * The art of Computer Programming, Vol.2, p.195 - */ -#define Msdiv( b_r_, b_i_, a_r_, a_i_ ) \ - { \ - register float c_i_, c_r_, tmp1_, tmp2_; \ - if( Msabs( b_i_ ) < Msabs( b_r_ ) ) \ - { \ - tmp1_ = (b_i_) / (b_r_); \ - tmp2_ = (b_r_) + (b_i_) * tmp1_; \ - c_r_ = ( (a_r_) + (a_i_) * tmp1_ ) / tmp2_; \ - c_i_ = ( (a_i_) - (a_r_) * tmp1_ ) / tmp2_; \ - } \ - else \ - { \ - tmp1_ = (b_r_) / (b_i_); \ - tmp2_ = (b_i_) + (b_r_) * tmp1_; \ - c_r_ = ( (a_i_) + (a_r_) * tmp1_ ) / tmp2_; \ - c_i_ = ( -(a_r_) + (a_i_) * tmp1_ ) / tmp2_; \ - } \ - a_r_ = c_r_; \ - a_i_ = c_i_; \ - } - -#define Mdabs( a_ ) ( ( (a_) < ATL_dZERO ) ? -(a_) : (a_) ) - -#define Mdzero( a_r_, a_i_ ) \ - ( ( (a_r_) == ATL_dZERO ) && ( (a_i_) == ATL_dZERO ) ) - -#define Mdone( a_r_, a_i_ ) \ - ( ( (a_r_) == ATL_dONE ) && ( (a_i_) == ATL_dZERO ) ) - -#define Mdscl( a_r_, a_i_, c_r_, c_i_ ) \ - { \ - register double tmp_r_, tmp_i_; \ - tmp_r_ = (a_r_) * c_r_ - (a_i_) * c_i_; \ - tmp_i_ = (a_r_) * c_i_ + (a_i_) * c_r_; \ - c_r_ = tmp_r_; \ - c_i_ = tmp_i_; \ - } -/* - * Mddiv performs complex division in real arithmetic - * a_r_ + i * a_i_ = ( a_r_ + i * a_i_ ) / ( b_r_ + i * b_i_ ); - * The algorithm is due to Robert L. Smith and can be found in D. Knuth, - * The art of Computer Programming, Vol.2, p.195 - */ -#define Mddiv( b_r_, b_i_, a_r_, a_i_ ) \ - { \ - register double c_i_, c_r_, tmp1_, tmp2_; \ - if( Mdabs( b_i_ ) < Mdabs( b_r_ ) ) \ - { \ - tmp1_ = (b_i_) / (b_r_); \ - tmp2_ = (b_r_) + (b_i_) * tmp1_; \ - c_r_ = ( (a_r_) + (a_i_) * tmp1_ ) / tmp2_; \ - c_i_ = ( (a_i_) - (a_r_) * tmp1_ ) / tmp2_; \ - } \ - else \ - { \ - tmp1_ = (b_r_) / (b_i_); \ - tmp2_ = (b_i_) + (b_r_) * tmp1_; \ - c_r_ = ( (a_i_) + (a_r_) * tmp1_ ) / tmp2_; \ - c_i_ = ( -(a_r_) + (a_i_) * tmp1_ ) / tmp2_; \ - } \ - a_r_ = c_r_; \ - a_i_ = c_i_; \ - } - -#define Mmin( a_, b_ ) ( ( (a_) < (b_) ) ? (a_) : (b_) ) - -#define Mmax( a_, b_ ) ( ( (a_) > (b_) ) ? (a_) : (b_) ) - -#define Mmul( a_r_, a_i_, b_r_, b_i_, c_r_, c_i_ ) \ - { \ - c_r_ = (a_r_) * (b_r_) - (a_i_) * (b_i_); \ - c_i_ = (a_r_) * (b_i_) + (a_i_) * (b_r_); \ - } - -#define Mmla( a_r_, a_i_, b_r_, b_i_, c_r_, c_i_ ) \ - { \ - c_r_ += (a_r_) * (b_r_) - (a_i_) * (b_i_); \ - c_i_ += (a_r_) * (b_i_) + (a_i_) * (b_r_); \ - } - -#define Mmls( a_r_, a_i_, b_r_, b_i_, c_r_, c_i_ ) \ - { \ - c_r_ -= (a_r_) * (b_r_) - (a_i_) * (b_i_); \ - c_i_ -= (a_r_) * (b_i_) + (a_i_) * (b_r_); \ - } - -#define Mset( a_r_, a_i_, b_r_, b_i_ ) \ - { \ - b_r_ = (a_r_); \ - b_i_ = (a_i_); \ - } - -#define Mselscal( al_, a_ ) \ - { \ - if( (al_) == ATL_sZERO ) { (a_) = ATL_sZERO; } \ - else if( (al_) != ATL_sONE ) { (a_) *= (al_); } \ - } - -#define Mdelscal( al_, a_ ) \ - { \ - if( (al_) == ATL_dZERO ) { (a_) = ATL_dZERO; } \ - else if( (al_) != ATL_dONE ) { (a_) *= (al_); } \ - } - -#define Mcelscal( al_r_, al_i_, a_r_, a_i_ ) \ - { \ - if( Mszero( (al_r_), (al_i_) ) ) \ - { (a_r_) = (a_i_) = ATL_sZERO; } \ - else if( ! Msone( (al_r_), (al_i_) ) ) \ - { Msscl( (al_r_), (al_i_), (a_r_), (a_i_) ); } \ - } - -#define Mzelscal( al_r_, al_i_, a_r_, a_i_ ) \ - { \ - if( Mdzero( (al_r_), (al_i_) ) ) \ - { (a_r_) = (a_i_) = ATL_dZERO; } \ - else if( ! Mdone( (al_r_), (al_i_) ) ) \ - { Mdscl( (al_r_), (al_i_), (a_r_), (a_i_) ); } \ - } - -#define Msvscal( n_, al_, x_, incx_ ) \ - { \ - int i_, ix_; \ - if( (al_) == ATL_sZERO ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \ - { (x_)[ix_] = ATL_sZERO; } \ - } \ - else if( (al_) != ATL_sONE ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \ - { (x_)[ix_] *= (al_); } \ - } \ - } - -#define Mdvscal( n_, al_, x_, incx_ ) \ - { \ - int i_, ix_; \ - if( (al_) == ATL_dZERO ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \ - { (x_)[ix_] = ATL_dZERO; } \ - } \ - else if( (al_) != ATL_dONE ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \ - { (x_)[ix_] *= (al_); } \ - } \ - } - -#define Mcvscal( n_, al_, x_, incx_ ) \ - { \ - int i_, ix_, incx2_ = ( 2 * (incx_) ); \ - if( Mszero( (al_)[0], (al_)[1] ) ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \ - { (x_)[ix_] = (x_)[ix_+1] = ATL_sZERO; } \ - } \ - else if( ! Msone( (al_)[0], (al_)[1] ) ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \ - { Msscl( (al_)[0], (al_)[1], (x_)[ix_], (x_)[ix_+1] ); } \ - } \ - } - -#define Mzvscal( n_, al_, x_, incx_ ) \ - { \ - int i_, ix_, incx2_ = ( 2 * (incx_) ); \ - if( Mdzero( (al_)[0], (al_)[1] ) ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \ - { (x_)[ix_] = (x_)[ix_+1] = ATL_dZERO; } \ - } \ - else if( ! Mdone( (al_)[0], (al_)[1] ) ) \ - { \ - for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \ - { Mdscl( (al_)[0], (al_)[1], (x_)[ix_], (x_)[ix_+1] ); } \ - } \ - } - -#define Msgescal( m_, n_, al_, a_, lda_ ) \ - { \ - int i_, iaij_, j_, jaj_; \ - if( (al_) == ATL_sZERO ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \ - { (a_)[iaij_] = ATL_sZERO; } \ - } \ - } \ - else if( (al_) != ATL_sONE ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \ - { (a_)[iaij_] *= (al_); } \ - } \ - } \ - } - -#define Mdgescal( m_, n_, al_, a_, lda_ ) \ - { \ - int i_, iaij_, j_, jaj_; \ - if( (al_) == ATL_dZERO ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \ - { (a_)[iaij_] = ATL_dZERO; } \ - } \ - } \ - else if( (al_) != ATL_dONE ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \ - { (a_)[iaij_] *= (al_); } \ - } \ - } \ - } - -#define Mcgescal( m_, n_, al_, a_, lda_ ) \ - { \ - int i_, iaij_, j_, jaj_, lda2_ = ( (lda_) << 1 ); \ - if( Mszero( (al_)[0], (al_)[1] ) ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \ - { (a_)[iaij_] = (a_)[iaij_+1] = ATL_sZERO; } \ - } \ - } \ - else if( ! Msone( (al_)[0], (al_)[1] ) ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \ - { \ - Msscl( (al_)[0], (al_)[1], (a_)[iaij_], (a_)[iaij_+1] ); \ - } \ - } \ - } \ - } - -#define Mzgescal( m_, n_, al_, a_, lda_ ) \ - { \ - int i_, iaij_, j_, jaj_, lda2_ = ( (lda_) << 1 ); \ - if( Mdzero( (al_)[0], (al_)[1] ) ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \ - { (a_)[iaij_] = (a_)[iaij_+1] = ATL_dZERO; } \ - } \ - } \ - else if( ! Mdone( (al_)[0], (al_)[1] ) ) \ - { \ - for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \ - { \ - for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \ - { \ - Mdscl( (al_)[0], (al_)[1], (a_)[iaij_], (a_)[iaij_+1] ); \ - } \ - } \ - } \ - } - -#endif -/* - * End of atlas_refmisc.h - */ diff --git a/sklearn/src/cblas/atlas_ssysinfo.h b/sklearn/src/cblas/atlas_ssysinfo.h deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/sklearn/src/cblas/atlas_type.h b/sklearn/src/cblas/atlas_type.h deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/sklearn/src/cblas/cblas.h b/sklearn/src/cblas/cblas.h deleted file mode 100644 index 4087ffb922912..0000000000000 --- a/sklearn/src/cblas/cblas.h +++ /dev/null @@ -1,596 +0,0 @@ -#ifndef CBLAS_H - -#ifndef CBLAS_ENUM_DEFINED_H - #define CBLAS_ENUM_DEFINED_H - enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 }; - enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113, - AtlasConj=114}; - enum CBLAS_UPLO {CblasUpper=121, CblasLower=122}; - enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132}; - enum CBLAS_SIDE {CblasLeft=141, CblasRight=142}; -#endif - -#ifndef CBLAS_ENUM_ONLY -#define CBLAS_H -#define CBLAS_INDEX int - -int cblas_errprn(int ierr, int info, char *form, ...); - -/* - * =========================================================================== - * Prototypes for level 1 BLAS functions (complex are recast as routines) - * =========================================================================== - */ -float cblas_sdsdot(const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY); -double cblas_dsdot(const int N, const float *X, const int incX, const float *Y, - const int incY); -float cblas_sdot(const int N, const float *X, const int incX, - const float *Y, const int incY); -double cblas_ddot(const int N, const double *X, const int incX, - const double *Y, const int incY); -/* - * Functions having prefixes Z and C only - */ -void cblas_cdotu_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotu); -void cblas_cdotc_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotc); - -void cblas_zdotu_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotu); -void cblas_zdotc_sub(const int N, const void *X, const int incX, - const void *Y, const int incY, void *dotc); - - -/* - * Functions having prefixes S D SC DZ - */ -float cblas_snrm2(const int N, const float *X, const int incX); -float cblas_sasum(const int N, const float *X, const int incX); - -double cblas_dnrm2(const int N, const double *X, const int incX); -double cblas_dasum(const int N, const double *X, const int incX); - -float cblas_scnrm2(const int N, const void *X, const int incX); -float cblas_scasum(const int N, const void *X, const int incX); - -double cblas_dznrm2(const int N, const void *X, const int incX); -double cblas_dzasum(const int N, const void *X, const int incX); - - -/* - * Functions having standard 4 prefixes (S D C Z) - */ -CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX); -CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX); -CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX); -CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX); - -/* - * =========================================================================== - * Prototypes for level 1 BLAS routines - * =========================================================================== - */ - -/* - * Routines with standard 4 prefixes (s, d, c, z) - */ -void cblas_sswap(const int N, float *X, const int incX, - float *Y, const int incY); -void cblas_scopy(const int N, const float *X, const int incX, - float *Y, const int incY); -void cblas_saxpy(const int N, const float alpha, const float *X, - const int incX, float *Y, const int incY); -void catlas_saxpby(const int N, const float alpha, const float *X, - const int incX, const float beta, float *Y, const int incY); -void catlas_sset - (const int N, const float alpha, float *X, const int incX); - -void cblas_dswap(const int N, double *X, const int incX, - double *Y, const int incY); -void cblas_dcopy(const int N, const double *X, const int incX, - double *Y, const int incY); -void cblas_daxpy(const int N, const double alpha, const double *X, - const int incX, double *Y, const int incY); -void catlas_daxpby(const int N, const double alpha, const double *X, - const int incX, const double beta, double *Y, const int incY); -void catlas_dset - (const int N, const double alpha, double *X, const int incX); - -void cblas_cswap(const int N, void *X, const int incX, - void *Y, const int incY); -void cblas_ccopy(const int N, const void *X, const int incX, - void *Y, const int incY); -void cblas_caxpy(const int N, const void *alpha, const void *X, - const int incX, void *Y, const int incY); -void catlas_caxpby(const int N, const void *alpha, const void *X, - const int incX, const void *beta, void *Y, const int incY); -void catlas_cset - (const int N, const void *alpha, void *X, const int incX); - -void cblas_zswap(const int N, void *X, const int incX, - void *Y, const int incY); -void cblas_zcopy(const int N, const void *X, const int incX, - void *Y, const int incY); -void cblas_zaxpy(const int N, const void *alpha, const void *X, - const int incX, void *Y, const int incY); -void catlas_zaxpby(const int N, const void *alpha, const void *X, - const int incX, const void *beta, void *Y, const int incY); -void catlas_zset - (const int N, const void *alpha, void *X, const int incX); - - -/* - * Routines with S and D prefix only - */ -void cblas_srotg(float *a, float *b, float *c, float *s); -void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P); -void cblas_srot(const int N, float *X, const int incX, - float *Y, const int incY, const float c, const float s); -void cblas_srotm(const int N, float *X, const int incX, - float *Y, const int incY, const float *P); - -void cblas_drotg(double *a, double *b, double *c, double *s); -void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P); -void cblas_drot(const int N, double *X, const int incX, - double *Y, const int incY, const double c, const double s); -void cblas_drotm(const int N, double *X, const int incX, - double *Y, const int incY, const double *P); - - -/* - * Routines with S D C Z CS and ZD prefixes - */ -void cblas_sscal(const int N, const float alpha, float *X, const int incX); -void cblas_dscal(const int N, const double alpha, double *X, const int incX); -void cblas_cscal(const int N, const void *alpha, void *X, const int incX); -void cblas_zscal(const int N, const void *alpha, void *X, const int incX); -void cblas_csscal(const int N, const float alpha, void *X, const int incX); -void cblas_zdscal(const int N, const double alpha, void *X, const int incX); - -/* - * Extra reference routines provided by ATLAS, but not mandated by the standard - */ -void cblas_crotg(void *a, void *b, void *c, void *s); -void cblas_zrotg(void *a, void *b, void *c, void *s); -void cblas_csrot(const int N, void *X, const int incX, void *Y, const int incY, - const float c, const float s); -void cblas_zdrot(const int N, void *X, const int incX, void *Y, const int incY, - const double c, const double s); - -/* - * =========================================================================== - * Prototypes for level 2 BLAS - * =========================================================================== - */ - -/* - * Routines with standard 4 prefixes (S, D, C, Z) - */ -void cblas_sgemv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const float alpha, const float *A, const int lda, - const float *X, const int incX, const float beta, - float *Y, const int incY); -void cblas_sgbmv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const float alpha, - const float *A, const int lda, const float *X, - const int incX, const float beta, float *Y, const int incY); -void cblas_strmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *A, const int lda, - float *X, const int incX); -void cblas_stbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const float *A, const int lda, - float *X, const int incX); -void cblas_stpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *Ap, float *X, const int incX); -void cblas_strsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *A, const int lda, float *X, - const int incX); -void cblas_stbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const float *A, const int lda, - float *X, const int incX); -void cblas_stpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const float *Ap, float *X, const int incX); - -void cblas_dgemv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const double alpha, const double *A, const int lda, - const double *X, const int incX, const double beta, - double *Y, const int incY); -void cblas_dgbmv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const double alpha, - const double *A, const int lda, const double *X, - const int incX, const double beta, double *Y, const int incY); -void cblas_dtrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *A, const int lda, - double *X, const int incX); -void cblas_dtbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const double *A, const int lda, - double *X, const int incX); -void cblas_dtpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *Ap, double *X, const int incX); -void cblas_dtrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *A, const int lda, double *X, - const int incX); -void cblas_dtbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const double *A, const int lda, - double *X, const int incX); -void cblas_dtpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const double *Ap, double *X, const int incX); - -void cblas_cgemv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *X, const int incX, const void *beta, - void *Y, const int incY); -void cblas_cgbmv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const void *alpha, - const void *A, const int lda, const void *X, - const int incX, const void *beta, void *Y, const int incY); -void cblas_ctrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, - void *X, const int incX); -void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ctpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); -void cblas_ctrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, void *X, - const int incX); -void cblas_ctbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ctpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); - -void cblas_zgemv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *X, const int incX, const void *beta, - void *Y, const int incY); -void cblas_zgbmv(const enum CBLAS_ORDER Order, - const enum CBLAS_TRANSPOSE TransA, const int M, const int N, - const int KL, const int KU, const void *alpha, - const void *A, const int lda, const void *X, - const int incX, const void *beta, void *Y, const int incY); -void cblas_ztrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, - void *X, const int incX); -void cblas_ztbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ztpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); -void cblas_ztrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *A, const int lda, void *X, - const int incX); -void cblas_ztbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const int K, const void *A, const int lda, - void *X, const int incX); -void cblas_ztpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, - const int N, const void *Ap, void *X, const int incX); - - -/* - * Routines with S and D prefixes only - */ -void cblas_ssymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *A, - const int lda, const float *X, const int incX, - const float beta, float *Y, const int incY); -void cblas_ssbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const float alpha, const float *A, - const int lda, const float *X, const int incX, - const float beta, float *Y, const int incY); -void cblas_sspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *Ap, - const float *X, const int incX, - const float beta, float *Y, const int incY); -void cblas_sger(const enum CBLAS_ORDER Order, const int M, const int N, - const float alpha, const float *X, const int incX, - const float *Y, const int incY, float *A, const int lda); -void cblas_ssyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, float *A, const int lda); -void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, float *Ap); -void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY, float *A, - const int lda); -void cblas_sspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const float *X, - const int incX, const float *Y, const int incY, float *A); - -void cblas_dsymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *A, - const int lda, const double *X, const int incX, - const double beta, double *Y, const int incY); -void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const double alpha, const double *A, - const int lda, const double *X, const int incX, - const double beta, double *Y, const int incY); -void cblas_dspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *Ap, - const double *X, const int incX, - const double beta, double *Y, const int incY); -void cblas_dger(const enum CBLAS_ORDER Order, const int M, const int N, - const double alpha, const double *X, const int incX, - const double *Y, const int incY, double *A, const int lda); -void cblas_dsyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, double *A, const int lda); -void cblas_dspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, double *Ap); -void cblas_dsyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, const double *Y, const int incY, double *A, - const int lda); -void cblas_dspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const double *X, - const int incX, const double *Y, const int incY, double *A); - - -/* - * Routines with C and Z prefixes only - */ -void cblas_chemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_chbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_chpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *Ap, - const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_cgeru(const enum CBLAS_ORDER Order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_cgerc(const enum CBLAS_ORDER Order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_cher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const void *X, const int incX, - void *A, const int lda); -void cblas_chpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const float alpha, const void *X, - const int incX, void *A); -void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_chpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *Ap); - -void cblas_zhemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_zhbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const int K, const void *alpha, const void *A, - const int lda, const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_zhpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const void *alpha, const void *Ap, - const void *X, const int incX, - const void *beta, void *Y, const int incY); -void cblas_zgeru(const enum CBLAS_ORDER Order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const void *X, const int incX, - void *A, const int lda); -void cblas_zhpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const int N, const double alpha, const void *X, - const int incX, void *A); -void cblas_zher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *A, const int lda); -void cblas_zhpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N, - const void *alpha, const void *X, const int incX, - const void *Y, const int incY, void *Ap); - -/* - * =========================================================================== - * Prototypes for level 3 BLAS - * =========================================================================== - */ - -/* - * Routines with standard 4 prefixes (S, D, C, Z) - */ -void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const float alpha, const float *A, - const int lda, const float *B, const int ldb, - const float beta, float *C, const int ldc); -void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const float alpha, const float *A, const int lda, - const float *B, const int ldb, const float beta, - float *C, const int ldc); -void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const float alpha, const float *A, const int lda, - const float beta, float *C, const int ldc); -void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const float alpha, const float *A, const int lda, - const float *B, const int ldb, const float beta, - float *C, const int ldc); -void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const float alpha, const float *A, const int lda, - float *B, const int ldb); -void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const float alpha, const float *A, const int lda, - float *B, const int ldb); - -void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const double alpha, const double *A, - const int lda, const double *B, const int ldb, - const double beta, double *C, const int ldc); -void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const double alpha, const double *A, const int lda, - const double *B, const int ldb, const double beta, - double *C, const int ldc); -void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const double alpha, const double *A, const int lda, - const double beta, double *C, const int ldc); -void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const double alpha, const double *A, const int lda, - const double *B, const int ldb, const double beta, - double *C, const int ldc); -void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const double alpha, const double *A, const int lda, - double *B, const int ldb); -void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const double alpha, const double *A, const int lda, - double *B, const int ldb); - -void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const void *alpha, const void *A, - const int lda, const void *B, const int ldb, - const void *beta, void *C, const int ldc); -void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *beta, void *C, const int ldc); -void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); -void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); - -void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_TRANSPOSE TransB, const int M, const int N, - const int K, const void *alpha, const void *A, - const int lda, const void *B, const int ldb, - const void *beta, void *C, const int ldc); -void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *beta, void *C, const int ldc); -void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); -void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, - const enum CBLAS_DIAG Diag, const int M, const int N, - const void *alpha, const void *A, const int lda, - void *B, const int ldb); - - -/* - * Routines with prefixes C and Z only - */ -void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const float alpha, const void *A, const int lda, - const float beta, void *C, const int ldc); -void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const float beta, - void *C, const int ldc); -void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, - const enum CBLAS_UPLO Uplo, const int M, const int N, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const void *beta, - void *C, const int ldc); -void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const double alpha, const void *A, const int lda, - const double beta, void *C, const int ldc); -void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, - const enum CBLAS_TRANSPOSE Trans, const int N, const int K, - const void *alpha, const void *A, const int lda, - const void *B, const int ldb, const double beta, - void *C, const int ldc); - -int cblas_errprn(int ierr, int info, char *form, ...); - -#endif /* end #ifdef CBLAS_ENUM_ONLY */ -#endif diff --git a/sklearn/src/cblas/cblas_dasum.c b/sklearn/src/cblas/cblas_dasum.c deleted file mode 100644 index dd383440ecbd2..0000000000000 --- a/sklearn/src/cblas/cblas_dasum.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.1 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributors may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define DREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -double cblas_dasum(const int N, const double *X, const int incX) -{ - if (N > 0 && incX > 0) - return(ATL_dasum(N, X, incX)); - return(0.0); -} diff --git a/sklearn/src/cblas/cblas_daxpy.c b/sklearn/src/cblas/cblas_daxpy.c deleted file mode 100644 index dce744b291984..0000000000000 --- a/sklearn/src/cblas/cblas_daxpy.c +++ /dev/null @@ -1,159 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" - -void cblas_daxpy -( - const int N, - const double ALPHA, - const double * X, - const int INCX, - double * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_drefaxpy performs the following operation: - * - * y := y + alpha * x, - * - * where alpha is a scalar and x and y are two n-vectors. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * ALPHA (input) const double - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero, then the entries of the incremented array X - * need not be set on input. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input/output) double * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( double ), - * that contains the vector y. On exit, the entries of the in- - * cremented array Y are updated with the scaled entries of the - * incremented array X. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register const double alpha = ALPHA; - register double x0, x1, x2, x3, y0, y1, y2, y3; - double * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && ( alpha != ATL_dZERO ) ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); y0 = (*Y); x1 = X[INCX ]; y1 = Y[INCY ]; - x2 = X[incX2]; y2 = Y[incY2]; x3 = X[incX3]; y3 = Y[incY3]; - - *Y = y0 + alpha * x0; Y[INCY ] = y1 + alpha * x1; - Y[incY2] = y2 + alpha * x2; Y[incY3] = y3 + alpha * x3; - - X += incX4; - Y += incY4; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - y0 = (*Y); - - *Y = y0 + alpha * x0; - - X += INCX; - Y += INCY; - } - } -/* - * End of ATL_drefaxpy - */ -} diff --git a/sklearn/src/cblas/cblas_dcopy.c b/sklearn/src/cblas/cblas_dcopy.c deleted file mode 100644 index cb1f13cf8748e..0000000000000 --- a/sklearn/src/cblas/cblas_dcopy.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define DREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -void cblas_dcopy(const int N, const double *X, const int incX, - double *Y, const int incY) -{ - if (N > 0) - { - if (incX < 0) - { - if (incY < 0) ATL_dcopy(N, X, -incX, Y, -incY); - else ATL_dcopy(N, X+(1-N)*incX, incX, Y, incY); - } - else if (incY < 0) ATL_dcopy(N, X+(N-1)*incX, -incX, Y, -incY); - else ATL_dcopy(N, X, incX, Y, incY); - } -} diff --git a/sklearn/src/cblas/cblas_ddot.c b/sklearn/src/cblas/cblas_ddot.c deleted file mode 100644 index 7f2fd32db4e6a..0000000000000 --- a/sklearn/src/cblas/cblas_ddot.c +++ /dev/null @@ -1,135 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" - -double cblas_ddot -( - const int N, - const double * X, - const int INCX, - const double * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_drefdot returns the dot product x^T * y of two n-vectors x and y. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input) const double * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( double ), - * that contains the vector y. Unchanged on exit. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double dot = ATL_dZERO, x0, x1, x2, x3, - y0, y1, y2, y3; - double * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( N > 0 ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); y0 = (*Y); x1 = X[INCX ]; y1 = Y[INCY ]; - x2 = X[incX2]; y2 = Y[incY2]; x3 = X[incX3]; y3 = Y[incY3]; - dot += x0 * y0; dot += x1 * y1; dot += x2 * y2; dot += x3 * y3; - X += incX4; Y += incY4; - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { x0 = (*X); y0 = (*Y); dot += x0 * y0; X += INCX; Y += INCY; } - } - return( dot ); -/* - * End of ATL_drefdot - */ -} diff --git a/sklearn/src/cblas/cblas_dgemv.c b/sklearn/src/cblas/cblas_dgemv.c deleted file mode 100644 index 97c5afaf329d9..0000000000000 --- a/sklearn/src/cblas/cblas_dgemv.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.0 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define DREAL -#include "atlas_misc.h" -#include "cblas.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias2.h" -#endif -#include "atlas_level2.h" - -void cblas_dgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TA, - const int M, const int N, const double alpha, const double *A, - const int lda, const double *X, const int incX, - const double beta, double *Y, const int incY) -{ - int info = 2000; - #define x X - #define y Y - -#ifndef NoCblasErrorChecks - if (TA != CblasNoTrans && TA != CblasTrans && TA != CblasConjTrans) - info = cblas_errprn(2, info, - "TransA must be %d, %d or %d, but is set to %d", - CblasNoTrans, CblasTrans, CblasConjTrans, TA); - - if (M < 0) info = cblas_errprn(3, info, - "M cannot be less than zero; is set to %d.", M); - if (N < 0) info = cblas_errprn(4, info, - "N cannot be less than zero; is set to %d.", N); - if (!incX) info = cblas_errprn(9, info, - "incX cannot be zero; is set to %d.", incX); - if (!incY) info = cblas_errprn(12, info, - "incY cannot be zero; is set to %d.", incY); - if (Order == CblasColMajor) - { - if (lda < M || lda < 1) - info = cblas_errprn(7, info, "lda must be >= MAX(M,1): lda=%d M=%d", - lda, M); - } - else if (Order == CblasRowMajor) - { - if (lda < N || lda < 1) - info = cblas_errprn(7, info, "lda must be >= MAX(N,1): lda=%d N=%d", - lda, N); - } - else - info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d", - CblasRowMajor, CblasColMajor, Order); - if (info != 2000) - { - cblas_xerbla(info, "cblas_dgemv", ""); - return; - } -#endif - if (TA == AtlasNoTrans) - { - if (incX < 0) x += (1-N)*incX; - if (incY < 0) y += (1-M)*incY; - } - else - { - if (incX < 0) x += (1-M)*incX; - if (incY < 0) y += (1-N)*incY; - } - if (Order == CblasColMajor) - ATL_dgemv(TA, M, N, alpha, A, lda, x, incX, beta, y, incY); - else - { - if (TA == CblasNoTrans) - ATL_dgemv(CblasTrans, N, M, alpha, A, lda, x, incX, beta, y, incY); - else - ATL_dgemv(CblasNoTrans, N, M, alpha, A, lda, x, incX, beta, y, incY); - } -} diff --git a/sklearn/src/cblas/cblas_dger.c b/sklearn/src/cblas/cblas_dger.c deleted file mode 100644 index 6a9d9b7e64aee..0000000000000 --- a/sklearn/src/cblas/cblas_dger.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.0 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define DREAL -#include "atlas_misc.h" -#include "cblas.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias2.h" -#endif -#include "atlas_level2.h" - -void cblas_dger (const enum CBLAS_ORDER Order, const int M, const int N, - const double alpha, const double *X, const int incX, - const double *Y, const int incY, double *A, const int lda) -{ - int info = 2000; - #define x X - #define y Y - -#ifndef NoCblasErrorChecks - if (M < 0) info = cblas_errprn(2, info, - "M cannot be less than zero; is set to %d.", M); - if (N < 0) info = cblas_errprn(3, info, - "N cannot be less than zero; is set to %d.", N); - if (!incX) info = cblas_errprn(6, info, - "incX cannot be zero; is set to %d.", incX); - if (!incY) info = cblas_errprn(8, info, - "incY cannot be zero; is set to %d.", incY); - if (Order == CblasColMajor) - { - if (lda < M || lda < 1) - info = cblas_errprn(10, info, "lda must be >= MAX(M,1): lda=%d M=%d", - lda, M); - } - else if (Order == CblasRowMajor) - { - if (lda < N || lda < 1) - info = cblas_errprn(10, info, "lda must be >= MAX(N,1): lda=%d M=%d", - lda, N); - } - else - info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d", - CblasRowMajor, CblasColMajor, Order); - if (info != 2000) - { - cblas_xerbla(info, "cblas_dger", ""); - return; - } -#endif - - if (incX < 0) x += (1-M)*incX; - if (incY < 0) y += (1-N)*incY; - - if (Order == CblasColMajor) - ATL_dger(M, N, alpha, x, incX, y, incY, A, lda); - else - ATL_dger(N, M, alpha, y, incY, x, incX, A, lda); -} diff --git a/sklearn/src/cblas/cblas_dnrm2.c b/sklearn/src/cblas/cblas_dnrm2.c deleted file mode 100644 index 113faa5585d71..0000000000000 --- a/sklearn/src/cblas/cblas_dnrm2.c +++ /dev/null @@ -1,206 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" - -double cblas_dnrm2 -( - const int N, - const double * X, - const int INCX -) -{ -/* - * Purpose - * ======= - * - * ATL_drefnrm2 returns the 2-norm of an n-vector x. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register double absxi, scale = ATL_dZERO, - ssq = ATL_dONE, temp, x0, x1, x2, x3, x4, - x5, x6, x7; - double * StX = (double *)(X) + N * INCX; - register int i; - int n = (int)(N), nu; - const int incX2 = 2 * INCX, incX3 = 3 * INCX, - incX4 = 4 * INCX, incX5 = 5 * INCX, - incX6 = 6 * INCX, incX7 = 7 * INCX, - incX8 = 8 * INCX; -/* .. - * .. Executable Statements .. - * - */ - if( ( N < 1 ) || ( INCX < 1 ) ) return( ATL_dZERO ); - else if( N == 1 ) return( Mdabs( *X ) ); - - while( (X != StX) && ( *X == ATL_dZERO ) ) { X += INCX; n--; } - - if( X == StX ) return( ATL_dZERO ); - - if( ( nu = ( n >> 3 ) << 3 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; x3 = X[incX3]; x7 = X[incX7]; - - absxi = Mdabs( x0 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x4 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x1 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x5 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x2 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x6 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x3 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - absxi = Mdabs( x7 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - X += incX8; - - } while( X != StX ); - } - - for( i = n - nu; i != 0; i-- ) - { - x0 = (*X); - - absxi = Mdabs( x0 ); - if( scale < absxi ) - { - temp = scale / absxi; scale = absxi; - ssq = ATL_dONE + ssq * ( temp * temp ); - } - else { temp = absxi / scale; ssq += temp * temp; } - - X += INCX; - } - return( scale * sqrt( ssq ) ); -/* - * End of ATL_drefnrm2 - */ -} diff --git a/sklearn/src/cblas/cblas_drot.c b/sklearn/src/cblas/cblas_drot.c deleted file mode 100644 index b7ce33e763346..0000000000000 --- a/sklearn/src/cblas/cblas_drot.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define DREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -void cblas_drot(const int N, double *X, const int incX, - double *Y, const int incY, const double c, const double s) -{ - double *x = X, *y = Y; - int incx = incX, incy = incY; - - if (N > 0) - { - if (incX < 0) - { - if (incY < 0) { incx = -incx; incy = -incy; } - else x += -incX * ((N-1)); - } - else if (incY < 0) - { - incy = -incy; - incx = -incx; - x += (N-1)*(incX); - } - ATL_drot(N, x, incx, y, incy, c, s); - } -} diff --git a/sklearn/src/cblas/cblas_drotg.c b/sklearn/src/cblas/cblas_drotg.c deleted file mode 100644 index 0a76bf26bf079..0000000000000 --- a/sklearn/src/cblas/cblas_drotg.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define DREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -void cblas_drotg(double *a, double *b, double *c, double *s) -{ - Mjoin(PATL,rotg)(a, b, c, s); -} diff --git a/sklearn/src/cblas/cblas_dscal.c b/sklearn/src/cblas/cblas_dscal.c deleted file mode 100644 index 8d1e33b67b6e1..0000000000000 --- a/sklearn/src/cblas/cblas_dscal.c +++ /dev/null @@ -1,183 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * -- Suggestions, comments, bugs reports should be sent to the follo- - * wing e-mail address: atlas@cs.utk.edu - * - * Author : Antoine P. Petitet - * University of Tennessee - Innovative Computing Laboratory - * Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" - -void cblas_dscal -( - const int N, - const double ALPHA, - double * X, - const int INCX -) -{ -/* - * Purpose - * ======= - * - * ATL_drefscal performs the following operation: - * - * x := alpha * x, - * - * where alpha is a scalar and x is an n-vector. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * ALPHA (input) const double - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero, then the entries of the incremented array X - * need not be set on input. Unchanged on exit. - * - * X (input/output) double * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( double ), - * that contains the vector x. On exit, the entries of the in- - * cremented array X are mutiplied by alpha. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ -/* .. - * .. Executable Statements .. - * - */ - register double x0, x1, x2, x3, x4, x5, x6, x7; - register const double alpha = ALPHA; - double * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incX3 = 3 * INCX, - incX4 = 4 * INCX, incX5 = 5 * INCX, - incX6 = 6 * INCX, incX7 = 7 * INCX, - incX8 = 8 * INCX; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && ( alpha != ATL_dONE ) ) - { - if( alpha == ATL_dZERO ) - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - (*X) = ATL_dZERO; X[incX4] = ATL_dZERO; - X[INCX ] = ATL_dZERO; X[incX5] = ATL_dZERO; - X[incX2] = ATL_dZERO; X[incX6] = ATL_dZERO; - X[incX3] = ATL_dZERO; X[incX7] = ATL_dZERO; - - X += incX8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - *X = ATL_dZERO; - X += INCX; - } - } - else - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (double *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; - x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; - x3 = X[incX3]; x7 = X[incX7]; - - x0 *= alpha; x4 *= alpha; - x1 *= alpha; x5 *= alpha; - x2 *= alpha; x6 *= alpha; - x3 *= alpha; x7 *= alpha; - - (*X) = x0; X[incX4] = x4; - X[INCX ] = x1; X[incX5] = x5; - X[incX2] = x2; X[incX6] = x6; - X[incX3] = x3; X[incX7] = x7; - - X += incX8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - x0 *= alpha; - *X = x0; - X += INCX; - } - } - } -/* - * End of ATL_drefscal - */ -} diff --git a/sklearn/src/cblas/cblas_errprn.c b/sklearn/src/cblas/cblas_errprn.c deleted file mode 100644 index 8f5bb4af562eb..0000000000000 --- a/sklearn/src/cblas/cblas_errprn.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.6.0 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributors may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ -#include "atlas_refmisc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias3.h" -#endif -#include "cblas.h" - -#include -#include -int cblas_errprn(int ierr, int info, char *form, ...) -{ - va_list argptr; - - va_start(argptr, form); -#ifdef GCCWIN - vprintf(form, argptr); -#else - vfprintf(stderr, form, argptr); -#endif - va_end(argptr); - return(Mmin(ierr,info)); -} diff --git a/sklearn/src/cblas/cblas_sasum.c b/sklearn/src/cblas/cblas_sasum.c deleted file mode 100644 index 439707ba021f4..0000000000000 --- a/sklearn/src/cblas/cblas_sasum.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.2 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -float cblas_sasum(const int N, const float *X, const int incX) -{ - if (N > 0 && incX > 0) - return(ATL_sasum(N, X, incX)); - return(0.0f); -} diff --git a/sklearn/src/cblas/cblas_saxpy.c b/sklearn/src/cblas/cblas_saxpy.c deleted file mode 100644 index 19600a53a5127..0000000000000 --- a/sklearn/src/cblas/cblas_saxpy.c +++ /dev/null @@ -1,156 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" - -void cblas_saxpy -( - const int N, - const float ALPHA, - const float * X, - const int INCX, - float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_srefaxpy performs the following operation: - * - * y := y + alpha * x, - * - * where alpha is a scalar and x and y are two n-vectors. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * ALPHA (input) const float - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero, then the entries of the incremented array X - * need not be set on input. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input/output) float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. On exit, the entries of the in- - * cremented array Y are updated with the scaled entries of the - * incremented array X. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register const float alpha = ALPHA; - register float x0, x1, x2, x3, y0, y1, y2, y3; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && ( alpha != ATL_sZERO ) ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); y0 = (*Y); x1 = X[INCX ]; y1 = Y[INCY ]; - x2 = X[incX2]; y2 = Y[incY2]; x3 = X[incX3]; y3 = Y[incY3]; - - *Y = y0 + alpha * x0; Y[INCY ] = y1 + alpha * x1; - Y[incY2] = y2 + alpha * x2; Y[incY3] = y3 + alpha * x3; - - X += incX4; - Y += incY4; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - y0 = (*Y); - - *Y = y0 + alpha * x0; - - X += INCX; - Y += INCY; - } - } -/* - * End of ATL_srefaxpy - */ -} diff --git a/sklearn/src/cblas/cblas_scopy.c b/sklearn/src/cblas/cblas_scopy.c deleted file mode 100644 index 38feca50a67db..0000000000000 --- a/sklearn/src/cblas/cblas_scopy.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -void cblas_scopy(const int N, const float *X, const int incX, - float *Y, const int incY) -{ - if (N > 0) - { - if (incX < 0) - { - if (incY < 0) ATL_scopy(N, X, -incX, Y, -incY); - else ATL_scopy(N, X+(1-N)*incX, incX, Y, incY); - } - else if (incY < 0) ATL_scopy(N, X+(N-1)*incX, -incX, Y, -incY); - else ATL_scopy(N, X, incX, Y, incY); - } -} diff --git a/sklearn/src/cblas/cblas_sdot.c b/sklearn/src/cblas/cblas_sdot.c deleted file mode 100644 index e385b4484adce..0000000000000 --- a/sklearn/src/cblas/cblas_sdot.c +++ /dev/null @@ -1,132 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.2 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ -#include "atlas_refmisc.h" - -float cblas_sdot -( - const int N, - const float * X, - const int INCX, - const float * Y, - const int INCY -) -{ -/* - * Purpose - * ======= - * - * ATL_srefdot returns the dot product x^T * y of two n-vectors x and y. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * X (input) const float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. Unchanged on exit. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * Y (input) const float * - * On entry, Y points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCY ) ) * sizeof( float ), - * that contains the vector y. Unchanged on exit. - * - * INCY (input) const int - * On entry, INCY specifies the increment for the elements of Y. - * INCY must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ - register float dot = ATL_sZERO, x0, x1, x2, x3, - y0, y1, y2, y3; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incY2 = 2 * INCY, - incX3 = 3 * INCX, incY3 = 3 * INCY, - incX4 = 4 * INCX, incY4 = 4 * INCY; -/* .. - * .. Executable Statements .. - * - */ - if( N > 0 ) - { - if( ( nu = ( N >> 2 ) << 2 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); y0 = (*Y); x1 = X[INCX ]; y1 = Y[INCY ]; - x2 = X[incX2]; y2 = Y[incY2]; x3 = X[incX3]; y3 = Y[incY3]; - dot += x0 * y0; dot += x1 * y1; dot += x2 * y2; dot += x3 * y3; - X += incX4; Y += incY4; - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { x0 = (*X); y0 = (*Y); dot += x0 * y0; X += INCX; Y += INCY; } - } - return( dot ); -/* - * End of ATL_srefdot - */ -} diff --git a/sklearn/src/cblas/cblas_sgemv.c b/sklearn/src/cblas/cblas_sgemv.c deleted file mode 100644 index f16253016b8cc..0000000000000 --- a/sklearn/src/cblas/cblas_sgemv.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.3 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#include "cblas.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias2.h" -#endif -#include "atlas_level2.h" - -void cblas_sgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TA, - const int M, const int N, const float alpha, const float *A, - const int lda, const float *X, const int incX, - const float beta, float *Y, const int incY) -{ - int info = 2000; - #define x X - #define y Y - -#ifndef NoCblasErrorChecks - if (TA != CblasNoTrans && TA != CblasTrans && TA != CblasConjTrans) - info = cblas_errprn(2, info, - "TransA must be %d, %d or %d, but is set to %d", - CblasNoTrans, CblasTrans, CblasConjTrans, TA); - - if (M < 0) info = cblas_errprn(3, info, - "M cannot be less than zero; is set to %d.", M); - if (N < 0) info = cblas_errprn(4, info, - "N cannot be less than zero; is set to %d.", N); - if (!incX) info = cblas_errprn(9, info, - "incX cannot be zero; is set to %d.", incX); - if (!incY) info = cblas_errprn(12, info, - "incY cannot be zero; is set to %d.", incY); - if (Order == CblasColMajor) - { - if (lda < M || lda < 1) - info = cblas_errprn(7, info, "lda must be >= MAX(M,1): lda=%d M=%d", - lda, M); - } - else if (Order == CblasRowMajor) - { - if (lda < N || lda < 1) - info = cblas_errprn(7, info, "lda must be >= MAX(N,1): lda=%d N=%d", - lda, N); - } - else - info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d", - CblasRowMajor, CblasColMajor, Order); - if (info != 2000) - { - cblas_xerbla(info, "cblas_sgemv", ""); - return; - } -#endif - if (TA == AtlasNoTrans) - { - if (incX < 0) x += (1-N)*incX; - if (incY < 0) y += (1-M)*incY; - } - else - { - if (incX < 0) x += (1-M)*incX; - if (incY < 0) y += (1-N)*incY; - } - if (Order == CblasColMajor) - ATL_sgemv(TA, M, N, alpha, A, lda, x, incX, beta, y, incY); - else - { - if (TA == CblasNoTrans) - ATL_sgemv(CblasTrans, N, M, alpha, A, lda, x, incX, beta, y, incY); - else - ATL_sgemv(CblasNoTrans, N, M, alpha, A, lda, x, incX, beta, y, incY); - } -} diff --git a/sklearn/src/cblas/cblas_sger.c b/sklearn/src/cblas/cblas_sger.c deleted file mode 100644 index ef3046c2c691d..0000000000000 --- a/sklearn/src/cblas/cblas_sger.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.3 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#include "cblas.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias2.h" -#endif -#include "atlas_level2.h" - -void cblas_sger (const enum CBLAS_ORDER Order, const int M, const int N, - const float alpha, const float *X, const int incX, - const float *Y, const int incY, float *A, const int lda) -{ - int info = 2000; - #define x X - #define y Y - -#ifndef NoCblasErrorChecks - if (M < 0) info = cblas_errprn(2, info, - "M cannot be less than zero; is set to %d.", M); - if (N < 0) info = cblas_errprn(3, info, - "N cannot be less than zero; is set to %d.", N); - if (!incX) info = cblas_errprn(6, info, - "incX cannot be zero; is set to %d.", incX); - if (!incY) info = cblas_errprn(8, info, - "incY cannot be zero; is set to %d.", incY); - if (Order == CblasColMajor) - { - if (lda < M || lda < 1) - info = cblas_errprn(10, info, "lda must be >= MAX(M,1): lda=%d M=%d", - lda, M); - } - else if (Order == CblasRowMajor) - { - if (lda < N || lda < 1) - info = cblas_errprn(10, info, "lda must be >= MAX(N,1): lda=%d M=%d", - lda, N); - } - else - info = cblas_errprn(1, info, "Order must be %d or %d, but is set to %d", - CblasRowMajor, CblasColMajor, Order); - if (info != 2000) - { - cblas_xerbla(info, "cblas_sger", ""); - return; - } -#endif - - if (incX < 0) x += (1-M)*incX; - if (incY < 0) y += (1-N)*incY; - - if (Order == CblasColMajor) - ATL_sger(M, N, alpha, x, incX, y, incY, A, lda); - else - ATL_sger(N, M, alpha, y, incY, x, incX, A, lda); -} diff --git a/sklearn/src/cblas/cblas_snrm2.c b/sklearn/src/cblas/cblas_snrm2.c deleted file mode 100644 index 45e5668fafe38..0000000000000 --- a/sklearn/src/cblas/cblas_snrm2.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.10.0 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -float cblas_snrm2(const int N, const float *X, const int incX) -{ - if (N > 0 && incX > 0) - return(ATL_snrm2(N, X, incX)); - return(0.0f); -} diff --git a/sklearn/src/cblas/cblas_srot.c b/sklearn/src/cblas/cblas_srot.c deleted file mode 100644 index b2365d3866605..0000000000000 --- a/sklearn/src/cblas/cblas_srot.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -void cblas_srot(const int N, float *X, const int incX, - float *Y, const int incY, const float c, const float s) -{ - float *x = X, *y = Y; - int incx = incX, incy = incY; - - if (N > 0) - { - if (incX < 0) - { - if (incY < 0) { incx = -incx; incy = -incy; } - else x += -incX * ((N-1)); - } - else if (incY < 0) - { - incy = -incy; - incx = -incx; - x += (N-1)*(incX); - } - ATL_srot(N, x, incx, y, incy, c, s); - } -} diff --git a/sklearn/src/cblas/cblas_srotg.c b/sklearn/src/cblas/cblas_srotg.c deleted file mode 100644 index 56bb01757c66a..0000000000000 --- a/sklearn/src/cblas/cblas_srotg.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.9.25 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ - -#define SREAL -#include "atlas_misc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias1.h" -#endif -#include "atlas_level1.h" -#include "cblas.h" - -void cblas_srotg(float *a, float *b, float *c, float *s) -{ - Mjoin(PATL,rotg)(a, b, c, s); -} diff --git a/sklearn/src/cblas/cblas_sscal.c b/sklearn/src/cblas/cblas_sscal.c deleted file mode 100644 index 742efe0bacb92..0000000000000 --- a/sklearn/src/cblas/cblas_sscal.c +++ /dev/null @@ -1,185 +0,0 @@ -/* --------------------------------------------------------------------- - * - * -- Automatically Tuned Linear Algebra Software (ATLAS) - * (C) Copyright 2000 All Rights Reserved - * - * -- ATLAS routine -- Version 3.9.24 -- December 25, 2000 - * - * Author : Antoine P. Petitet - * Originally developed at the University of Tennessee, - * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA. - * - * --------------------------------------------------------------------- - * - * -- Copyright notice and Licensing terms: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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 distri- - * bution. - * 3. The name of the University, the ATLAS group, or the names of its - * contributors may not be used to endorse or promote products deri- - * ved from this software without specific written permission. - * - * -- Disclaimer: - * - * 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 UNIVERSITY - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- - * CIAL, 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 THEO- - * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN- - * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * --------------------------------------------------------------------- - */ -/* - * Include files - */ - -// For scikit-learn users : this file has been modified from the Atlas -// library v3.10.3. -// The original file is /ATLAS/src/blas/reference/level1/ATL_srefscal.c - -#include "atlas_refmisc.h" - -void cblas_sscal -( - const int N, - const float ALPHA, - float * X, - const int INCX -) -{ -/* - * Purpose - * ======= - * - * ATL_drefscal performs the following operation: - * - * x := alpha * x, - * - * where alpha is a scalar and x is an n-vector. - * - * Arguments - * ========= - * - * N (input) const int - * On entry, N specifies the length of the vector x. N must be - * at least zero. Unchanged on exit. - * - * ALPHA (input) const float - * On entry, ALPHA specifies the scalar alpha. When ALPHA is - * supplied as zero, then the entries of the incremented array X - * need not be set on input. Unchanged on exit. - * - * X (input/output) float * - * On entry, X points to the first entry to be accessed of an - * incremented array of size equal to or greater than - * ( 1 + ( n - 1 ) * abs( INCX ) ) * sizeof( float ), - * that contains the vector x. On exit, the entries of the in- - * cremented array X are mutiplied by alpha. - * - * INCX (input) const int - * On entry, INCX specifies the increment for the elements of X. - * INCX must not be zero. Unchanged on exit. - * - * --------------------------------------------------------------------- - */ -/* - * .. Local Variables .. - */ -/* .. - * .. Executable Statements .. - * - */ - register float x0, x1, x2, x3, x4, x5, x6, x7; - register const float alpha = ALPHA; - float * StX; - register int i; - int nu; - const int incX2 = 2 * INCX, incX3 = 3 * INCX, - incX4 = 4 * INCX, incX5 = 5 * INCX, - incX6 = 6 * INCX, incX7 = 7 * INCX, - incX8 = 8 * INCX; -/* .. - * .. Executable Statements .. - * - */ - if( ( N > 0 ) && ( alpha != ATL_dONE ) ) - { - if( alpha == ATL_sZERO ) - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - (*X) = ATL_sZERO; X[incX4] = ATL_sZERO; - X[INCX ] = ATL_sZERO; X[incX5] = ATL_sZERO; - X[incX2] = ATL_sZERO; X[incX6] = ATL_sZERO; - X[incX3] = ATL_sZERO; X[incX7] = ATL_sZERO; - - X += incX8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - *X = ATL_sZERO; - X += INCX; - } - } - else - { - if( ( nu = ( N >> 3 ) << 3 ) != 0 ) - { - StX = (float *)X + nu * INCX; - - do - { - x0 = (*X); x4 = X[incX4]; - x1 = X[INCX ]; x5 = X[incX5]; - x2 = X[incX2]; x6 = X[incX6]; - x3 = X[incX3]; x7 = X[incX7]; - - x0 *= alpha; x4 *= alpha; - x1 *= alpha; x5 *= alpha; - x2 *= alpha; x6 *= alpha; - x3 *= alpha; x7 *= alpha; - - (*X) = x0; X[incX4] = x4; - X[INCX ] = x1; X[incX5] = x5; - X[incX2] = x2; X[incX6] = x6; - X[incX3] = x3; X[incX7] = x7; - - X += incX8; - - } while( X != StX ); - } - - for( i = N - nu; i != 0; i-- ) - { - x0 = (*X); - x0 *= alpha; - *X = x0; - X += INCX; - } - } - } -/* - * End of ATL_drefscal - */ -} diff --git a/sklearn/src/cblas/cblas_xerbla.c b/sklearn/src/cblas/cblas_xerbla.c deleted file mode 100644 index 7b68d1cff8a38..0000000000000 --- a/sklearn/src/cblas/cblas_xerbla.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Automatically Tuned Linear Algebra Software v3.6.0 - * (C) Copyright 1999 R. Clint Whaley - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. The name of the ATLAS group or the names of its contributers may - * not be used to endorse or promote products derived from this - * software without specific 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 ATLAS GROUP OR ITS 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. - * - */ -#include "atlas_refmisc.h" -#ifdef ATL_USEPTHREADS - #include "atlas_ptalias3.h" -#endif -#include "cblas.h" - -#include -#include -void cblas_xerbla(int p, char *rout, char *form, ...) -{ - va_list argptr; - - va_start(argptr, form); -#ifdef GCCWIN - if (p) printf("Parameter %d to routine %s was incorrect\n", p, rout); - vprintf(form, argptr); -#else - if (p) - fprintf(stderr, "Parameter %d to routine %s was incorrect\n", p, rout); - vfprintf(stderr, form, argptr); -#endif - va_end(argptr); - exit(-1); -} diff --git a/sklearn/svm/liblinear.pxd b/sklearn/svm/liblinear.pxd index 5260392e09cf8..d41dcfb0ff0e5 100644 --- a/sklearn/svm/liblinear.pxd +++ b/sklearn/svm/liblinear.pxd @@ -1,7 +1,18 @@ cimport numpy as np -cdef extern from "src/liblinear/linear.h": +cdef extern from "_cython_blas_helpers.h": + ctypedef double (*dot_func)(int, double*, int, double*, int) + ctypedef void (*axpy_func)(int, double, double*, int, double*, int) + ctypedef void (*scal_func)(int, double, double*, int) + ctypedef double (*nrm2_func)(int, double*, int) + cdef struct BlasFunctions: + dot_func dot + axpy_func axpy + scal_func scal + nrm2_func nrm2 + +cdef extern from "linear.h": cdef struct feature_node cdef struct problem cdef struct model @@ -10,14 +21,14 @@ cdef extern from "src/liblinear/linear.h": ctypedef parameter* parameter_const_ptr "parameter const *" ctypedef char* char_const_ptr "char const *" char_const_ptr check_parameter(problem_const_ptr prob, parameter_const_ptr param) - model *train(problem_const_ptr prob, parameter_const_ptr param) nogil + model *train(problem_const_ptr prob, parameter_const_ptr param, BlasFunctions *blas_functions) nogil int get_nr_feature (model *model) int get_nr_class (model *model) void get_n_iter (model *model, int *n_iter) void free_and_destroy_model (model **) void destroy_param (parameter *) -cdef extern from "src/liblinear/liblinear_helper.c": +cdef extern from "liblinear_helper.c": void copy_w(void *, model *, int) parameter *set_parameter(int, double, double, int, char *, char *, int, int, double) problem *set_problem (char *, char *, np.npy_intp *, double, char *) diff --git a/sklearn/svm/liblinear.pyx b/sklearn/svm/liblinear.pyx index d9f7c9ca8188a..51de4ee84ca1b 100644 --- a/sklearn/svm/liblinear.pyx +++ b/sklearn/svm/liblinear.pyx @@ -6,7 +6,9 @@ Author: fabian.pedregosa@inria.fr import numpy as np cimport numpy as np -cimport liblinear + +from ..utils._cython_blas cimport _dot, _axpy, _scal, _nrm2 + np.import_array() @@ -49,10 +51,16 @@ def train_wrap(X, np.ndarray[np.float64_t, ndim=1, mode='c'] Y, free_problem(problem) free_parameter(param) raise ValueError(error_msg) + + cdef BlasFunctions blas_functions + blas_functions.dot = _dot[double] + blas_functions.axpy = _axpy[double] + blas_functions.scal = _scal[double] + blas_functions.nrm2 = _nrm2[double] # early return with nogil: - model = train(problem, param) + model = train(problem, param, &blas_functions) # coef matrix holder created as fortran since that's what's used in liblinear cdef np.ndarray[np.float64_t, ndim=2, mode='fortran'] w diff --git a/sklearn/svm/setup.py b/sklearn/svm/setup.py index 399b1a841eb77..53d4cab394c31 100644 --- a/sklearn/svm/setup.py +++ b/sklearn/svm/setup.py @@ -2,8 +2,6 @@ from os.path import join import numpy -from sklearn._build_utils import get_blas_info - def configuration(parent_package='', top_path=None): from numpy.distutils.misc_util import Configuration @@ -39,9 +37,9 @@ def configuration(parent_package='', top_path=None): ) # liblinear module - cblas_libs, blas_info = get_blas_info() + libraries = [] if os.name == 'posix': - cblas_libs.append('m') + libraries.append('m') liblinear_sources = ['liblinear.pyx', join('src', 'liblinear', '*.cpp')] @@ -51,15 +49,13 @@ def configuration(parent_package='', top_path=None): config.add_extension('liblinear', sources=liblinear_sources, - libraries=cblas_libs, - include_dirs=[join('..', 'src', 'cblas'), - numpy.get_include(), - blas_info.pop('include_dirs', [])], - extra_compile_args=blas_info.pop('extra_compile_args', - []), + libraries=libraries, + include_dirs=[join('.', 'src', 'liblinear'), + join('..', 'utils'), + numpy.get_include()], depends=liblinear_depends, # extra_compile_args=['-O0 -fno-inline'], - ** blas_info) + ) # end liblinear module diff --git a/sklearn/svm/src/liblinear/_cython_blas_helpers.h b/sklearn/svm/src/liblinear/_cython_blas_helpers.h new file mode 100644 index 0000000000000..6b2475e9d56cf --- /dev/null +++ b/sklearn/svm/src/liblinear/_cython_blas_helpers.h @@ -0,0 +1,16 @@ +#ifndef _CYTHON_BLAS_HELPERS_H +#define _CYTHON_BLAS_HELPERS_H + +typedef double (*dot_func)(int, double*, int, double*, int); +typedef void (*axpy_func)(int, double, double*, int, double*, int); +typedef void (*scal_func)(int, double, double*, int); +typedef double (*nrm2_func)(int, double*, int); + +typedef struct BlasFunctions{ + dot_func dot; + axpy_func axpy; + scal_func scal; + nrm2_func nrm2; +} BlasFunctions; + +#endif diff --git a/sklearn/svm/src/liblinear/linear.cpp b/sklearn/svm/src/liblinear/linear.cpp index d2e43ae157c14..c516fa27991b1 100644 --- a/sklearn/svm/src/liblinear/linear.cpp +++ b/sklearn/svm/src/liblinear/linear.cpp @@ -2244,7 +2244,7 @@ static void group_classes(const problem *prob, int *nr_class_ret, int **label_re free(data_label); } -static int train_one(const problem *prob, const parameter *param, double *w, double Cp, double Cn) +static int train_one(const problem *prob, const parameter *param, double *w, double Cp, double Cn, BlasFunctions *blas_functions) { double eps=param->eps; double* sample_weight=prob->sample_weight; @@ -2274,7 +2274,7 @@ static int train_one(const problem *prob, const parameter *param, double *w, dou } fun_obj=new l2r_lr_fun(prob, C); - TRON tron_obj(fun_obj, primal_solver_tol, max_iter); + TRON tron_obj(fun_obj, primal_solver_tol, max_iter, blas_functions); tron_obj.set_print_string(liblinear_print_string); n_iter=tron_obj.tron(w); delete fun_obj; @@ -2292,7 +2292,7 @@ static int train_one(const problem *prob, const parameter *param, double *w, dou C[i] = Cn; } fun_obj=new l2r_l2_svc_fun(prob, C); - TRON tron_obj(fun_obj, primal_solver_tol, max_iter); + TRON tron_obj(fun_obj, primal_solver_tol, max_iter, blas_functions); tron_obj.set_print_string(liblinear_print_string); n_iter=tron_obj.tron(w); delete fun_obj; @@ -2337,7 +2337,7 @@ static int train_one(const problem *prob, const parameter *param, double *w, dou C[i] = param->C; fun_obj=new l2r_l2_svr_fun(prob, C, param->p); - TRON tron_obj(fun_obj, param->eps, max_iter); + TRON tron_obj(fun_obj, param->eps, max_iter, blas_functions); tron_obj.set_print_string(liblinear_print_string); n_iter=tron_obj.tron(w); delete fun_obj; @@ -2361,7 +2361,7 @@ static int train_one(const problem *prob, const parameter *param, double *w, dou // // Interface functions // -model* train(const problem *prob, const parameter *param) +model* train(const problem *prob, const parameter *param, BlasFunctions *blas_functions) { int i,j; int l = prob->l; @@ -2383,7 +2383,7 @@ model* train(const problem *prob, const parameter *param) model_->n_iter = Malloc(int, 1); model_->nr_class = 2; model_->label = NULL; - model_->n_iter[0] =train_one(prob, param, &model_->w[0], 0, 0); + model_->n_iter[0] =train_one(prob, param, &model_->w[0], 0, 0, blas_functions); } else { @@ -2460,7 +2460,7 @@ model* train(const problem *prob, const parameter *param) for(; kn_iter[0]=train_one(&sub_prob, param, &model_->w[0], weighted_C[1], weighted_C[0]); + model_->n_iter[0]=train_one(&sub_prob, param, &model_->w[0], weighted_C[1], weighted_C[0], blas_functions); } else { @@ -2480,7 +2480,7 @@ model* train(const problem *prob, const parameter *param) for(; kn_iter[i]=train_one(&sub_prob, param, w, weighted_C[i], param->C); + model_->n_iter[i]=train_one(&sub_prob, param, w, weighted_C[i], param->C, blas_functions); for(int j=0;jw[j*nr_class+i] = w[j]; diff --git a/sklearn/svm/src/liblinear/linear.h b/sklearn/svm/src/liblinear/linear.h index 2f11ef2d63b10..62d1317140144 100644 --- a/sklearn/svm/src/liblinear/linear.h +++ b/sklearn/svm/src/liblinear/linear.h @@ -5,6 +5,8 @@ extern "C" { #endif +#include "_cython_blas_helpers.h" + struct feature_node { int index; @@ -47,7 +49,7 @@ struct model int *n_iter; /* no. of iterations of each class */ }; -struct model* train(const struct problem *prob, const struct parameter *param); +struct model* train(const struct problem *prob, const struct parameter *param, BlasFunctions *blas_functions); void cross_validation(const struct problem *prob, const struct parameter *param, int nr_fold, double *target); double predict_values(const struct model *model_, const struct feature_node *x, double* dec_values); diff --git a/sklearn/svm/src/liblinear/tron.cpp b/sklearn/svm/src/liblinear/tron.cpp index 1bf3204415468..168a62ca47a2f 100644 --- a/sklearn/svm/src/liblinear/tron.cpp +++ b/sklearn/svm/src/liblinear/tron.cpp @@ -12,10 +12,6 @@ template static inline T min(T x,T y) { return (x static inline T max(T x,T y) { return (x>y)?x:y; } #endif -extern "C" { -#include -} - static void default_print(const char *buf) { fputs(buf,stdout); @@ -32,11 +28,12 @@ void TRON::info(const char *fmt,...) (*tron_print_string)(buf); } -TRON::TRON(const function *fun_obj, double eps, int max_iter) +TRON::TRON(const function *fun_obj, double eps, int max_iter, BlasFunctions *blas) { this->fun_obj=const_cast(fun_obj); this->eps=eps; this->max_iter=max_iter; + this->blas=blas; tron_print_string = default_print; } @@ -67,7 +64,7 @@ int TRON::tron(double *w) f = fun_obj->fun(w); fun_obj->grad(w, g); - delta = cblas_dnrm2(n, g, inc); + delta = blas->nrm2(n, g, inc); double gnorm1 = delta; double gnorm = gnorm1; @@ -81,17 +78,17 @@ int TRON::tron(double *w) cg_iter = trcg(delta, g, s, r); memcpy(w_new, w, sizeof(double)*n); - cblas_daxpy(n, 1.0, s, inc, w_new, inc); + blas->axpy(n, 1.0, s, inc, w_new, inc); - gs = cblas_ddot(n, g, inc, s, inc); - prered = -0.5*(gs - cblas_ddot(n, s, inc, r, inc)); + gs = blas->dot(n, g, inc, s, inc); + prered = -0.5*(gs - blas->dot(n, s, inc, r, inc)); fnew = fun_obj->fun(w_new); // Compute the actual reduction. actred = f - fnew; // On the first iteration, adjust the initial step bound. - snorm = cblas_dnrm2(n, s, inc); + snorm = blas->nrm2(n, s, inc); if (iter == 1) delta = min(delta, snorm); @@ -120,7 +117,7 @@ int TRON::tron(double *w) f = fnew; fun_obj->grad(w, g); - gnorm = cblas_dnrm2(n, g, inc); + gnorm = blas->nrm2(n, g, inc); if (gnorm <= eps*gnorm1) break; } @@ -163,45 +160,45 @@ int TRON::trcg(double delta, double *g, double *s, double *r) r[i] = -g[i]; d[i] = r[i]; } - cgtol = 0.1 * cblas_dnrm2(n, g, inc); + cgtol = 0.1 * blas->nrm2(n, g, inc); int cg_iter = 0; - rTr = cblas_ddot(n, r, inc, r, inc); + rTr = blas->dot(n, r, inc, r, inc); while (1) { - if (cblas_dnrm2(n, r, inc) <= cgtol) + if (blas->nrm2(n, r, inc) <= cgtol) break; cg_iter++; fun_obj->Hv(d, Hd); - alpha = rTr / cblas_ddot(n, d, inc, Hd, inc); - cblas_daxpy(n, alpha, d, inc, s, inc); - if (cblas_dnrm2(n, s, inc) > delta) + alpha = rTr / blas->dot(n, d, inc, Hd, inc); + blas->axpy(n, alpha, d, inc, s, inc); + if (blas->nrm2(n, s, inc) > delta) { info("cg reaches trust region boundary\n"); alpha = -alpha; - cblas_daxpy(n, alpha, d, inc, s, inc); + blas->axpy(n, alpha, d, inc, s, inc); - double std = cblas_ddot(n, s, inc, d, inc); - double sts = cblas_ddot(n, s, inc, s, inc); - double dtd = cblas_ddot(n, d, inc, d, inc); + double std = blas->dot(n, s, inc, d, inc); + double sts = blas->dot(n, s, inc, s, inc); + double dtd = blas->dot(n, d, inc, d, inc); double dsq = delta*delta; double rad = sqrt(std*std + dtd*(dsq-sts)); if (std >= 0) alpha = (dsq - sts)/(std + rad); else alpha = (rad - std)/dtd; - cblas_daxpy(n, alpha, d, inc, s, inc); + blas->axpy(n, alpha, d, inc, s, inc); alpha = -alpha; - cblas_daxpy(n, alpha, Hd, inc, r, inc); + blas->axpy(n, alpha, Hd, inc, r, inc); break; } alpha = -alpha; - cblas_daxpy(n, alpha, Hd, inc, r, inc); - rnewTrnew = cblas_ddot(n, r, inc, r, inc); + blas->axpy(n, alpha, Hd, inc, r, inc); + rnewTrnew = blas->dot(n, r, inc, r, inc); beta = rnewTrnew/rTr; - cblas_dscal(n, beta, d, inc); - cblas_daxpy(n, 1.0, r, inc, d, inc); + blas->scal(n, beta, d, inc); + blas->axpy(n, 1.0, r, inc, d, inc); rTr = rnewTrnew; } diff --git a/sklearn/svm/src/liblinear/tron.h b/sklearn/svm/src/liblinear/tron.h index 3349b83f6418a..735304ed16b6f 100644 --- a/sklearn/svm/src/liblinear/tron.h +++ b/sklearn/svm/src/liblinear/tron.h @@ -1,6 +1,8 @@ #ifndef _TRON_H #define _TRON_H +#include "_cython_blas_helpers.h" + class function { public: @@ -15,7 +17,7 @@ class function class TRON { public: - TRON(const function *fun_obj, double eps = 0.1, int max_iter = 1000); + TRON(const function *fun_obj, double eps = 0.1, int max_iter = 1000, BlasFunctions *blas = 0); ~TRON(); int tron(double *w); @@ -28,6 +30,7 @@ class TRON double eps; int max_iter; function *fun_obj; + BlasFunctions *blas; void info(const char *fmt,...); void (*tron_print_string)(const char *buf); };