You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
3.4 KiB
C
143 lines
3.4 KiB
C
|
3 weeks ago
|
/*************************************************************************
|
||
|
|
Copyright (c) 2005-2007, Sergey Bochkanov (ALGLIB project).
|
||
|
|
|
||
|
|
Redistribution and use in source and binary forms, with or without
|
||
|
|
modification, are permitted provided that the following conditions are
|
||
|
|
met:
|
||
|
|
|
||
|
|
- Redistributions of source code must retain the above copyright
|
||
|
|
notice, this list of conditions and the following disclaimer.
|
||
|
|
|
||
|
|
- Redistributions in binary form must reproduce the above copyright
|
||
|
|
notice, this list of conditions and the following disclaimer listed
|
||
|
|
in this license in the documentation and/or other materials
|
||
|
|
provided with the distribution.
|
||
|
|
|
||
|
|
- Neither the name of the copyright holders nor the names of its
|
||
|
|
contributors may be used to endorse or promote products derived from
|
||
|
|
this software without specific prior written permission.
|
||
|
|
|
||
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
*************************************************************************/
|
||
|
|
|
||
|
|
#ifndef _blas_h
|
||
|
|
#define _blas_h
|
||
|
|
|
||
|
|
#include "alglib/ap.h"
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
double vectornorm2(const ap::real_1d_array& x, int i1, int i2);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
int vectoridxabsmax(const ap::real_1d_array& x, int i1, int i2);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
int columnidxabsmax(const ap::real_2d_array& x, int i1, int i2, int j);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
int rowidxabsmax(const ap::real_2d_array& x, int j1, int j2, int i);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
double upperhessenberg1norm(const ap::real_2d_array& a,
|
||
|
|
int i1,
|
||
|
|
int i2,
|
||
|
|
int j1,
|
||
|
|
int j2,
|
||
|
|
ap::real_1d_array& work);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
void copymatrix(const ap::real_2d_array& a,
|
||
|
|
int is1,
|
||
|
|
int is2,
|
||
|
|
int js1,
|
||
|
|
int js2,
|
||
|
|
ap::real_2d_array& b,
|
||
|
|
int id1,
|
||
|
|
int id2,
|
||
|
|
int jd1,
|
||
|
|
int jd2);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
void inplacetranspose(ap::real_2d_array& a,
|
||
|
|
int i1,
|
||
|
|
int i2,
|
||
|
|
int j1,
|
||
|
|
int j2,
|
||
|
|
ap::real_1d_array& work);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
void copyandtranspose(const ap::real_2d_array& a,
|
||
|
|
int is1,
|
||
|
|
int is2,
|
||
|
|
int js1,
|
||
|
|
int js2,
|
||
|
|
ap::real_2d_array& b,
|
||
|
|
int id1,
|
||
|
|
int id2,
|
||
|
|
int jd1,
|
||
|
|
int jd2);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
void matrixvectormultiply(const ap::real_2d_array& a,
|
||
|
|
int i1,
|
||
|
|
int i2,
|
||
|
|
int j1,
|
||
|
|
int j2,
|
||
|
|
bool trans,
|
||
|
|
const ap::real_1d_array& x,
|
||
|
|
int ix1,
|
||
|
|
int ix2,
|
||
|
|
double alpha,
|
||
|
|
ap::real_1d_array& y,
|
||
|
|
int iy1,
|
||
|
|
int iy2,
|
||
|
|
double beta);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
double pythag2(double x, double y);
|
||
|
|
|
||
|
|
|
||
|
|
ALGLIB_EXPORT
|
||
|
|
void matrixmatrixmultiply(const ap::real_2d_array& a,
|
||
|
|
int ai1,
|
||
|
|
int ai2,
|
||
|
|
int aj1,
|
||
|
|
int aj2,
|
||
|
|
bool transa,
|
||
|
|
const ap::real_2d_array& b,
|
||
|
|
int bi1,
|
||
|
|
int bi2,
|
||
|
|
int bj1,
|
||
|
|
int bj2,
|
||
|
|
bool transb,
|
||
|
|
double alpha,
|
||
|
|
ap::real_2d_array& c,
|
||
|
|
int ci1,
|
||
|
|
int ci2,
|
||
|
|
int cj1,
|
||
|
|
int cj2,
|
||
|
|
double beta,
|
||
|
|
ap::real_1d_array& work);
|
||
|
|
|
||
|
|
|
||
|
|
#endif
|