ablas.h | ablas.h | |||
---|---|---|---|---|
/************************************************************************* | /************************************************************************* | |||
Copyright (c) 2009, Sergey Bochkanov (ALGLIB project). | Copyright (c) 2009-2010, Sergey Bochkanov (ALGLIB project). | |||
>>> SOURCE LICENSE >>> | >>> SOURCE LICENSE >>> | |||
This program is free software; you can redistribute it and/or modify | This program is free software; you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation (www.fsf.org); either version 2 of the | the Free Software Foundation (www.fsf.org); either version 2 of the | |||
License, or (at your option) any later version. | License, or (at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
skipping to change at line 140 | skipping to change at line 140 | |||
void rmatrixtranspose(int m, | void rmatrixtranspose(int m, | |||
int n, | int n, | |||
const ap::real_2d_array& a, | const ap::real_2d_array& a, | |||
int ia, | int ia, | |||
int ja, | int ja, | |||
ap::real_2d_array& b, | ap::real_2d_array& b, | |||
int ib, | int ib, | |||
int jb); | int jb); | |||
/************************************************************************* | /************************************************************************* | |||
Copy | ||||
Input parameters: | ||||
M - number of rows | ||||
N - number of columns | ||||
A - source matrix, MxN submatrix is copied and transposed | ||||
IA - submatrix offset (row index) | ||||
JA - submatrix offset (column index) | ||||
B - destination matrix | ||||
IB - submatrix offset (row index) | ||||
JB - submatrix offset (column index) | ||||
*************************************************************************/ | ||||
void cmatrixcopy(int m, | ||||
int n, | ||||
const ap::complex_2d_array& a, | ||||
int ia, | ||||
int ja, | ||||
ap::complex_2d_array& b, | ||||
int ib, | ||||
int jb); | ||||
/************************************************************************* | ||||
Copy | ||||
Input parameters: | ||||
M - number of rows | ||||
N - number of columns | ||||
A - source matrix, MxN submatrix is copied and transposed | ||||
IA - submatrix offset (row index) | ||||
JA - submatrix offset (column index) | ||||
B - destination matrix | ||||
IB - submatrix offset (row index) | ||||
JB - submatrix offset (column index) | ||||
*************************************************************************/ | ||||
void rmatrixcopy(int m, | ||||
int n, | ||||
const ap::real_2d_array& a, | ||||
int ia, | ||||
int ja, | ||||
ap::real_2d_array& b, | ||||
int ib, | ||||
int jb); | ||||
/************************************************************************* | ||||
Rank-1 correction: A := A + u*v' | Rank-1 correction: A := A + u*v' | |||
INPUT PARAMETERS: | INPUT PARAMETERS: | |||
M - number of rows | M - number of rows | |||
N - number of columns | N - number of columns | |||
A - target matrix, MxN submatrix is updated | A - target matrix, MxN submatrix is updated | |||
IA - submatrix offset (row index) | IA - submatrix offset (row index) | |||
JA - submatrix offset (column index) | JA - submatrix offset (column index) | |||
U - vector #1 | U - vector #1 | |||
IU - subvector offset | IU - subvector offset | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 45 lines changed or added | |||
autogk.h | autogk.h | |||
---|---|---|---|---|
skipping to change at line 28 | skipping to change at line 28 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _autogk_h | #ifndef _autogk_h | |||
#define _autogk_h | #define _autogk_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "tsort.h" | #include "tsort.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | ||||
#include "creflections.h" | ||||
#include "sblas.h" | ||||
#include "ablasf.h" | ||||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "tdevd.h" | #include "hsschur.h" | |||
#include "evd.h" | ||||
#include "gammafunc.h" | #include "gammafunc.h" | |||
#include "gq.h" | #include "gq.h" | |||
#include "gkq.h" | #include "gkq.h" | |||
/************************************************************************* | /************************************************************************* | |||
Integration report: | Integration report: | |||
* TerminationType = completetion code: | * TerminationType = completetion code: | |||
* -5 non-convergence of Gauss-Kronrod nodes | * -5 non-convergence of Gauss-Kronrod nodes | |||
calculation subroutine. | calculation subroutine. | |||
* -1 incorrect parameters were specified | * -1 incorrect parameters were specified | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 9 lines changed or added | |||
densesolver.h | densesolver.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _densesolver_h | #ifndef _densesolver_h | |||
#define _densesolver_h | #define _densesolver_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | #include "creflections.h" | |||
#include "qr.h" | #include "sblas.h" | |||
#include "lq.h" | #include "ablasf.h" | |||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "bdsvd.h" | #include "bdsvd.h" | |||
#include "svd.h" | #include "svd.h" | |||
#include "creflections.h" | ||||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "ablasf.h" | ||||
#include "ablas.h" | ||||
#include "trfac.h" | #include "trfac.h" | |||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
struct densesolverreport | struct densesolverreport | |||
{ | { | |||
double r1; | double r1; | |||
double rinf; | double rinf; | |||
}; | }; | |||
struct densesolverlsreport | struct densesolverlsreport | |||
{ | { | |||
End of changes. 5 change blocks. | ||||
7 lines changed or deleted | 6 lines changed or added | |||
gkq.h | gkq.h | |||
---|---|---|---|---|
skipping to change at line 28 | skipping to change at line 28 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _gkq_h | #ifndef _gkq_h | |||
#define _gkq_h | #define _gkq_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "tsort.h" | #include "tsort.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | ||||
#include "creflections.h" | ||||
#include "sblas.h" | ||||
#include "ablasf.h" | ||||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "tdevd.h" | #include "hsschur.h" | |||
#include "evd.h" | ||||
#include "gammafunc.h" | #include "gammafunc.h" | |||
#include "gq.h" | #include "gq.h" | |||
/************************************************************************* | /************************************************************************* | |||
Computation of nodes and weights of a Gauss-Kronrod quadrature formula | Computation of nodes and weights of a Gauss-Kronrod quadrature formula | |||
The algorithm generates the N-point Gauss-Kronrod quadrature formula with | The algorithm generates the N-point Gauss-Kronrod quadrature formula with | |||
weight function given by coefficients alpha and beta of a recurrence | weight function given by coefficients alpha and beta of a recurrence | |||
relation which generates a system of orthogonal polynomials: | relation which generates a system of orthogonal polynomials: | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 9 lines changed or added | |||
gq.h | gq.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _gq_h | #ifndef _gq_h | |||
#define _gq_h | #define _gq_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | ||||
#include "creflections.h" | ||||
#include "sblas.h" | ||||
#include "ablasf.h" | ||||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "tdevd.h" | #include "hsschur.h" | |||
#include "evd.h" | ||||
#include "gammafunc.h" | #include "gammafunc.h" | |||
/************************************************************************* | /************************************************************************* | |||
Computation of nodes and weights for a Gauss quadrature formula | Computation of nodes and weights for a Gauss quadrature formula | |||
The algorithm generates the N-point Gauss quadrature formula with weight | The algorithm generates the N-point Gauss quadrature formula with weight | |||
function given by coefficients alpha and beta of a recurrence relation | function given by coefficients alpha and beta of a recurrence relation | |||
which generates a system of orthogonal polynomials: | which generates a system of orthogonal polynomials: | |||
P-1(x) = 0 | P-1(x) = 0 | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 9 lines changed or added | |||
lda.h | lda.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _lda_h | #ifndef _lda_h | |||
#define _lda_h | #define _lda_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "blas.h" | #include "hblas.h" | |||
#include "rotations.h" | ||||
#include "tdevd.h" | ||||
#include "sblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "tridiagonal.h" | ||||
#include "sevd.h" | ||||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "sblas.h" | |||
#include "matgen.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "ortfac.h" | ||||
#include "blas.h" | ||||
#include "rotations.h" | ||||
#include "hsschur.h" | ||||
#include "evd.h" | ||||
#include "hqrnd.h" | ||||
#include "matgen.h" | ||||
#include "trfac.h" | #include "trfac.h" | |||
#include "spdinverse.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | ||||
#include "rcond.h" | ||||
#include "matinv.h" | ||||
/************************************************************************* | /************************************************************************* | |||
Multiclass Fisher LDA | Multiclass Fisher LDA | |||
Subroutine finds coefficients of linear combination which optimally separat es | Subroutine finds coefficients of linear combination which optimally separat es | |||
training set on classes. | training set on classes. | |||
INPUT PARAMETERS: | INPUT PARAMETERS: | |||
XY - training set, array[0..NPoints-1,0..NVars]. | XY - training set, array[0..NPoints-1,0..NVars]. | |||
First NVars columns store values of independent | First NVars columns store values of independent | |||
End of changes. 5 change blocks. | ||||
9 lines changed or deleted | 13 lines changed or added | |||
linreg.h | linreg.h | |||
---|---|---|---|---|
skipping to change at line 31 | skipping to change at line 31 | |||
#ifndef _linreg_h | #ifndef _linreg_h | |||
#define _linreg_h | #define _linreg_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "descriptivestatistics.h" | #include "descriptivestatistics.h" | |||
#include "gammafunc.h" | #include "gammafunc.h" | |||
#include "normaldistr.h" | #include "normaldistr.h" | |||
#include "igammaf.h" | #include "igammaf.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | #include "creflections.h" | |||
#include "qr.h" | #include "sblas.h" | |||
#include "lq.h" | #include "ablasf.h" | |||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "bdsvd.h" | #include "bdsvd.h" | |||
#include "svd.h" | #include "svd.h" | |||
struct linearmodel | struct linearmodel | |||
{ | { | |||
ap::real_1d_array w; | ap::real_1d_array w; | |||
}; | }; | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
logit.h | logit.h | |||
---|---|---|---|---|
skipping to change at line 29 | skipping to change at line 29 | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _logit_h | #ifndef _logit_h | |||
#define _logit_h | #define _logit_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "descriptivestatistics.h" | #include "descriptivestatistics.h" | |||
#include "mlpbase.h" | #include "mlpbase.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | #include "creflections.h" | |||
#include "qr.h" | #include "sblas.h" | |||
#include "lq.h" | #include "ablasf.h" | |||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "bdsvd.h" | #include "bdsvd.h" | |||
#include "svd.h" | #include "svd.h" | |||
#include "creflections.h" | ||||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "ablasf.h" | ||||
#include "ablas.h" | ||||
#include "trfac.h" | #include "trfac.h" | |||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "tsort.h" | ||||
#include "bdss.h" | #include "bdss.h" | |||
struct logitmodel | struct logitmodel | |||
{ | { | |||
ap::real_1d_array w; | ap::real_1d_array w; | |||
}; | }; | |||
struct logitmcstate | struct logitmcstate | |||
{ | { | |||
bool brackt; | bool brackt; | |||
End of changes. 6 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added | |||
lsfit.h | lsfit.h | |||
---|---|---|---|---|
skipping to change at line 32 | skipping to change at line 32 | |||
#define _lsfit_h | #define _lsfit_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "trinverse.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | #include "matinv.h" | |||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "lbfgs.h" | #include "lbfgs.h" | |||
#include "minlm.h" | #include "minlm.h" | |||
#include "spline3.h" | ||||
#include "leastsquares.h" | ||||
/************************************************************************* | /************************************************************************* | |||
Least squares fitting report: | Least squares fitting report: | |||
TaskRCond reciprocal of task's condition number | TaskRCond reciprocal of task's condition number | |||
RMSError RMS error | RMSError RMS error | |||
AvgError average error | AvgError average error | |||
AvgRelError average relative error (for non-zero Y[I]) | AvgRelError average relative error (for non-zero Y[I]) | |||
MaxError maximum error | MaxError maximum error | |||
*************************************************************************/ | *************************************************************************/ | |||
struct lsfitreport | struct lsfitreport | |||
End of changes. 4 change blocks. | ||||
10 lines changed or deleted | 7 lines changed or added | |||
minlm.h | minlm.h | |||
---|---|---|---|---|
skipping to change at line 32 | skipping to change at line 32 | |||
#define _minlm_h | #define _minlm_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "trinverse.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | #include "matinv.h" | |||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "lbfgs.h" | #include "lbfgs.h" | |||
struct lmstate | struct lmstate | |||
{ | { | |||
bool wrongparams; | bool wrongparams; | |||
int n; | int n; | |||
int m; | int m; | |||
double epsf; | double epsf; | |||
skipping to change at line 90 | skipping to change at line 89 | |||
ap::rcommstate rstate; | ap::rcommstate rstate; | |||
int repiterationscount; | int repiterationscount; | |||
int repterminationtype; | int repterminationtype; | |||
int repnfunc; | int repnfunc; | |||
int repnjac; | int repnjac; | |||
int repngrad; | int repngrad; | |||
int repnhess; | int repnhess; | |||
int repncholesky; | int repncholesky; | |||
int solverinfo; | int solverinfo; | |||
densesolverreport solverrep; | densesolverreport solverrep; | |||
int invinfo; | ||||
matinvreport invrep; | ||||
}; | }; | |||
struct lmreport | struct lmreport | |||
{ | { | |||
int iterationscount; | int iterationscount; | |||
int terminationtype; | int terminationtype; | |||
int nfunc; | int nfunc; | |||
int njac; | int njac; | |||
int ngrad; | int ngrad; | |||
int nhess; | int nhess; | |||
End of changes. 4 change blocks. | ||||
8 lines changed or deleted | 9 lines changed or added | |||
mlpe.h | mlpe.h | |||
---|---|---|---|---|
skipping to change at line 28 | skipping to change at line 28 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _mlpe_h | #ifndef _mlpe_h | |||
#define _mlpe_h | #define _mlpe_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "mlpbase.h" | #include "mlpbase.h" | |||
#include "trinverse.h" | ||||
#include "lbfgs.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "blas.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | #include "matinv.h" | |||
#include "lbfgs.h" | ||||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "mlptrain.h" | #include "mlptrain.h" | |||
#include "tsort.h" | ||||
#include "descriptivestatistics.h" | #include "descriptivestatistics.h" | |||
#include "bdss.h" | #include "bdss.h" | |||
/************************************************************************* | /************************************************************************* | |||
Neural networks ensemble | Neural networks ensemble | |||
*************************************************************************/ | *************************************************************************/ | |||
struct mlpensemble | struct mlpensemble | |||
{ | { | |||
ap::integer_1d_array structinfo; | ap::integer_1d_array structinfo; | |||
int ensemblesize; | int ensemblesize; | |||
End of changes. 4 change blocks. | ||||
10 lines changed or deleted | 10 lines changed or added | |||
mlptrain.h | mlptrain.h | |||
---|---|---|---|---|
skipping to change at line 28 | skipping to change at line 28 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _mlptrain_h | #ifndef _mlptrain_h | |||
#define _mlptrain_h | #define _mlptrain_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "mlpbase.h" | #include "mlpbase.h" | |||
#include "trinverse.h" | ||||
#include "lbfgs.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "blas.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | #include "matinv.h" | |||
#include "lbfgs.h" | ||||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
/************************************************************************* | /************************************************************************* | |||
Training report: | Training report: | |||
* NGrad - number of gradient calculations | * NGrad - number of gradient calculations | |||
* NHess - number of Hessian calculations | * NHess - number of Hessian calculations | |||
* NCholesky - number of Cholesky decompositions | * NCholesky - number of Cholesky decompositions | |||
*************************************************************************/ | *************************************************************************/ | |||
struct mlpreport | struct mlpreport | |||
End of changes. 3 change blocks. | ||||
10 lines changed or deleted | 9 lines changed or added | |||
pca.h | pca.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _pca_h | #ifndef _pca_h | |||
#define _pca_h | #define _pca_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | #include "creflections.h" | |||
#include "qr.h" | #include "sblas.h" | |||
#include "lq.h" | #include "ablasf.h" | |||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "bdsvd.h" | #include "bdsvd.h" | |||
#include "svd.h" | #include "svd.h" | |||
#include "descriptivestatistics.h" | #include "descriptivestatistics.h" | |||
/************************************************************************* | /************************************************************************* | |||
Principal components analysis | Principal components analysis | |||
Subroutine builds orthogonal basis where first axis corresponds to | Subroutine builds orthogonal basis where first axis corresponds to | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
polint.h | polint.h | |||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "tsort.h" | #include "tsort.h" | |||
#include "ratinterpolation.h" | #include "ratinterpolation.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "trinverse.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "matinv.h" | ||||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "lbfgs.h" | #include "lbfgs.h" | |||
#include "minlm.h" | #include "minlm.h" | |||
#include "spline3.h" | ||||
#include "leastsquares.h" | ||||
#include "lsfit.h" | #include "lsfit.h" | |||
#include "ratint.h" | #include "ratint.h" | |||
#include "taskgen.h" | #include "taskgen.h" | |||
/************************************************************************* | /************************************************************************* | |||
Polynomial fitting report: | Polynomial fitting report: | |||
TaskRCond reciprocal of task's condition number | TaskRCond reciprocal of task's condition number | |||
RMSError RMS error | RMSError RMS error | |||
AvgError average error | AvgError average error | |||
AvgRelError average relative error (for non-zero Y[I]) | AvgRelError average relative error (for non-zero Y[I]) | |||
End of changes. 4 change blocks. | ||||
9 lines changed or deleted | 7 lines changed or added | |||
ratint.h | ratint.h | |||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "tsort.h" | #include "tsort.h" | |||
#include "ratinterpolation.h" | #include "ratinterpolation.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "trinverse.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "matinv.h" | ||||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "lbfgs.h" | #include "lbfgs.h" | |||
#include "minlm.h" | #include "minlm.h" | |||
#include "spline3.h" | ||||
#include "leastsquares.h" | ||||
#include "lsfit.h" | #include "lsfit.h" | |||
/************************************************************************* | /************************************************************************* | |||
Barycentric interpolant. | Barycentric interpolant. | |||
*************************************************************************/ | *************************************************************************/ | |||
struct barycentricinterpolant | struct barycentricinterpolant | |||
{ | { | |||
int n; | int n; | |||
double sy; | double sy; | |||
ap::real_1d_array x; | ap::real_1d_array x; | |||
End of changes. 4 change blocks. | ||||
9 lines changed or deleted | 7 lines changed or added | |||
rcond.h | rcond.h | |||
---|---|---|---|---|
skipping to change at line 57 | skipping to change at line 57 | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double rmatrixrcond1(ap::real_2d_array a, int n); | double rmatrixrcond1(ap::real_2d_array a, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of a matrix condition number (infinity-norm). | Estimate of a matrix condition number (infinity-norm). | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double rmatrixrcondinf(ap::real_2d_array a, int n); | double rmatrixrcondinf(ap::real_2d_array a, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Condition number estimate of a symmetric positive definite matrix. | Condition number estimate of a symmetric positive definite matrix. | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
skipping to change at line 105 | skipping to change at line 105 | |||
IsUpper. Array with elements [0..N-1, 0..N-1]. | IsUpper. Array with elements [0..N-1, 0..N-1]. | |||
N - size of matrix A. | N - size of matrix A. | |||
IsUpper - storage format. | IsUpper - storage format. | |||
Result: | Result: | |||
1/LowerBound(cond(A)), if matrix A is positive definite, | 1/LowerBound(cond(A)), if matrix A is positive definite, | |||
-1, if matrix A is not positive definite, and its condition number | -1, if matrix A is not positive definite, and its condition number | |||
could not be found by this algorithm. | could not be found by this algorithm. | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double spdmatrixrcond(ap::real_2d_array a, int n, bool isupper); | double spdmatrixrcond(ap::real_2d_array a, int n, bool isupper); | |||
/************************************************************************* | /************************************************************************* | |||
Triangular matrix: estimate of a condition number (1-norm) | ||||
The algorithm calculates a lower bound of the condition number. In this cas | ||||
e, | ||||
the algorithm does not return a lower bound of the condition number, but an | ||||
inverse number (to avoid an overflow in case of a singular matrix). | ||||
Input parameters: | ||||
A - matrix. Array[0..N-1, 0..N-1]. | ||||
N - size of A. | ||||
IsUpper - True, if the matrix is upper triangular. | ||||
IsUnit - True, if the matrix has a unit diagonal. | ||||
Result: 1/LowerBound(cond(A)) | ||||
NOTE: | ||||
if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | ||||
0.0 is returned in such cases. | ||||
*************************************************************************/ | ||||
double rmatrixtrrcond1(const ap::real_2d_array& a, | ||||
int n, | ||||
bool isupper, | ||||
bool isunit); | ||||
/************************************************************************* | ||||
Triangular matrix: estimate of a matrix condition number (infinity-norm). | ||||
The algorithm calculates a lower bound of the condition number. In this cas | ||||
e, | ||||
the algorithm does not return a lower bound of the condition number, but an | ||||
inverse number (to avoid an overflow in case of a singular matrix). | ||||
Input parameters: | ||||
A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | ||||
N - size of matrix A. | ||||
IsUpper - True, if the matrix is upper triangular. | ||||
IsUnit - True, if the matrix has a unit diagonal. | ||||
Result: 1/LowerBound(cond(A)) | ||||
NOTE: | ||||
if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | ||||
0.0 is returned in such cases. | ||||
*************************************************************************/ | ||||
double rmatrixtrrcondinf(const ap::real_2d_array& a, | ||||
int n, | ||||
bool isupper, | ||||
bool isunit); | ||||
/************************************************************************* | ||||
Condition number estimate of a Hermitian positive definite matrix. | Condition number estimate of a Hermitian positive definite matrix. | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
It should be noted that 1-norm and inf-norm of condition numbers of symmetr ic | It should be noted that 1-norm and inf-norm of condition numbers of symmetr ic | |||
matrices are equal, so the algorithm doesn't take into account the | matrices are equal, so the algorithm doesn't take into account the | |||
differences between these types of norms. | differences between these types of norms. | |||
skipping to change at line 134 | skipping to change at line 182 | |||
IsUpper. Array with elements [0..N-1, 0..N-1]. | IsUpper. Array with elements [0..N-1, 0..N-1]. | |||
N - size of matrix A. | N - size of matrix A. | |||
IsUpper - storage format. | IsUpper - storage format. | |||
Result: | Result: | |||
1/LowerBound(cond(A)), if matrix A is positive definite, | 1/LowerBound(cond(A)), if matrix A is positive definite, | |||
-1, if matrix A is not positive definite, and its condition number | -1, if matrix A is not positive definite, and its condition number | |||
could not be found by this algorithm. | could not be found by this algorithm. | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double hpdmatrixrcond(ap::complex_2d_array a, int n, bool isupper); | double hpdmatrixrcond(ap::complex_2d_array a, int n, bool isupper); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of a matrix condition number (1-norm) | Estimate of a matrix condition number (1-norm) | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double cmatrixrcond1(ap::complex_2d_array a, int n); | double cmatrixrcond1(ap::complex_2d_array a, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of a matrix condition number (infinity-norm). | Estimate of a matrix condition number (infinity-norm). | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double cmatrixrcondinf(ap::complex_2d_array a, int n); | double cmatrixrcondinf(ap::complex_2d_array a, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of the condition number of a matrix given by its LU decomposition (1-norm) | Estimate of the condition number of a matrix given by its LU decomposition (1-norm) | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
LUA - LU decomposition of a matrix in compact form. Output of | LUA - LU decomposition of a matrix in compact form. Output of | |||
the RMatrixLU subroutine. | the RMatrixLU subroutine. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double rmatrixlurcond1(const ap::real_2d_array& lua, int n); | double rmatrixlurcond1(const ap::real_2d_array& lua, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of the condition number of a matrix given by its LU decomposition | Estimate of the condition number of a matrix given by its LU decomposition | |||
(infinity norm). | (infinity norm). | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
LUA - LU decomposition of a matrix in compact form. Output of | LUA - LU decomposition of a matrix in compact form. Output of | |||
the RMatrixLU subroutine. | the RMatrixLU subroutine. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double rmatrixlurcondinf(const ap::real_2d_array& lua, int n); | double rmatrixlurcondinf(const ap::real_2d_array& lua, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Condition number estimate of a symmetric positive definite matrix given by | Condition number estimate of a symmetric positive definite matrix given by | |||
Cholesky decomposition. | Cholesky decomposition. | |||
The algorithm calculates a lower bound of the condition number. In this | The algorithm calculates a lower bound of the condition number. In this | |||
case, the algorithm does not return a lower bound of the condition number, | case, the algorithm does not return a lower bound of the condition number, | |||
but an inverse number (to avoid an overflow in case of a singular matrix). | but an inverse number (to avoid an overflow in case of a singular matrix). | |||
skipping to change at line 238 | skipping to change at line 286 | |||
differences between these types of norms. | differences between these types of norms. | |||
Input parameters: | Input parameters: | |||
CD - Cholesky decomposition of matrix A, | CD - Cholesky decomposition of matrix A, | |||
output of SMatrixCholesky subroutine. | output of SMatrixCholesky subroutine. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double spdmatrixcholeskyrcond(const ap::real_2d_array& a, int n, bool isupp er); | double spdmatrixcholeskyrcond(const ap::real_2d_array& a, int n, bool isupp er); | |||
/************************************************************************* | /************************************************************************* | |||
Condition number estimate of a Hermitian positive definite matrix given by | Condition number estimate of a Hermitian positive definite matrix given by | |||
Cholesky decomposition. | Cholesky decomposition. | |||
The algorithm calculates a lower bound of the condition number. In this | The algorithm calculates a lower bound of the condition number. In this | |||
case, the algorithm does not return a lower bound of the condition number, | case, the algorithm does not return a lower bound of the condition number, | |||
but an inverse number (to avoid an overflow in case of a singular matrix). | but an inverse number (to avoid an overflow in case of a singular matrix). | |||
skipping to change at line 263 | skipping to change at line 311 | |||
differences between these types of norms. | differences between these types of norms. | |||
Input parameters: | Input parameters: | |||
CD - Cholesky decomposition of matrix A, | CD - Cholesky decomposition of matrix A, | |||
output of SMatrixCholesky subroutine. | output of SMatrixCholesky subroutine. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double hpdmatrixcholeskyrcond(const ap::complex_2d_array& a, | double hpdmatrixcholeskyrcond(const ap::complex_2d_array& a, | |||
int n, | int n, | |||
bool isupper); | bool isupper); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of the condition number of a matrix given by its LU decomposition (1-norm) | Estimate of the condition number of a matrix given by its LU decomposition (1-norm) | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
LUA - LU decomposition of a matrix in compact form. Output of | LUA - LU decomposition of a matrix in compact form. Output of | |||
the CMatrixLU subroutine. | the CMatrixLU subroutine. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double cmatrixlurcond1(const ap::complex_2d_array& lua, int n); | double cmatrixlurcond1(const ap::complex_2d_array& lua, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Estimate of the condition number of a matrix given by its LU decomposition | Estimate of the condition number of a matrix given by its LU decomposition | |||
(infinity norm). | (infinity norm). | |||
The algorithm calculates a lower bound of the condition number. In this cas e, | The algorithm calculates a lower bound of the condition number. In this cas e, | |||
the algorithm does not return a lower bound of the condition number, but an | the algorithm does not return a lower bound of the condition number, but an | |||
inverse number (to avoid an overflow in case of a singular matrix). | inverse number (to avoid an overflow in case of a singular matrix). | |||
Input parameters: | Input parameters: | |||
LUA - LU decomposition of a matrix in compact form. Output of | LUA - LU decomposition of a matrix in compact form. Output of | |||
the CMatrixLU subroutine. | the CMatrixLU subroutine. | |||
N - size of matrix A. | N - size of matrix A. | |||
Result: 1/LowerBound(cond(A)) | Result: 1/LowerBound(cond(A)) | |||
NOTE: | NOTE: | |||
if k(A)>1/epsilon, then matrix is assumed degenerate, k(A)=INF, 0.0 is | if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | |||
returned in such cases. | 0.0 is returned in such cases. | |||
*************************************************************************/ | *************************************************************************/ | |||
double cmatrixlurcondinf(const ap::complex_2d_array& lua, int n); | double cmatrixlurcondinf(const ap::complex_2d_array& lua, int n); | |||
/************************************************************************* | /************************************************************************* | |||
Triangular matrix: estimate of a condition number (1-norm) | ||||
The algorithm calculates a lower bound of the condition number. In this cas | ||||
e, | ||||
the algorithm does not return a lower bound of the condition number, but an | ||||
inverse number (to avoid an overflow in case of a singular matrix). | ||||
Input parameters: | ||||
A - matrix. Array[0..N-1, 0..N-1]. | ||||
N - size of A. | ||||
IsUpper - True, if the matrix is upper triangular. | ||||
IsUnit - True, if the matrix has a unit diagonal. | ||||
Result: 1/LowerBound(cond(A)) | ||||
NOTE: | ||||
if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | ||||
0.0 is returned in such cases. | ||||
*************************************************************************/ | ||||
double cmatrixtrrcond1(const ap::complex_2d_array& a, | ||||
int n, | ||||
bool isupper, | ||||
bool isunit); | ||||
/************************************************************************* | ||||
Triangular matrix: estimate of a matrix condition number (infinity-norm). | ||||
The algorithm calculates a lower bound of the condition number. In this cas | ||||
e, | ||||
the algorithm does not return a lower bound of the condition number, but an | ||||
inverse number (to avoid an overflow in case of a singular matrix). | ||||
Input parameters: | ||||
A - matrix. Array whose indexes range within [0..N-1, 0..N-1]. | ||||
N - size of matrix A. | ||||
IsUpper - True, if the matrix is upper triangular. | ||||
IsUnit - True, if the matrix has a unit diagonal. | ||||
Result: 1/LowerBound(cond(A)) | ||||
NOTE: | ||||
if k(A) is very large, then matrix is assumed degenerate, k(A)=INF, | ||||
0.0 is returned in such cases. | ||||
*************************************************************************/ | ||||
double cmatrixtrrcondinf(const ap::complex_2d_array& a, | ||||
int n, | ||||
bool isupper, | ||||
bool isunit); | ||||
/************************************************************************* | ||||
Threshold for rcond: matrices with condition number beyond this threshold | Threshold for rcond: matrices with condition number beyond this threshold | |||
are considered singular. | are considered singular. | |||
Threshold must be far enough from underflow, at least Sqr(Threshold) must | Threshold must be far enough from underflow, at least Sqr(Threshold) must | |||
be greater than underflow. | be greater than underflow. | |||
*************************************************************************/ | *************************************************************************/ | |||
double rcondthreshold(); | double rcondthreshold(); | |||
#endif | #endif | |||
End of changes. 14 change blocks. | ||||
24 lines changed or deleted | 124 lines changed or added | |||
schur.h | schur.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _schur_h | #ifndef _schur_h | |||
#define _schur_h | #define _schur_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "hessenberg.h" | #include "creflections.h" | |||
#include "sblas.h" | ||||
#include "ablasf.h" | ||||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "hsschur.h" | #include "hsschur.h" | |||
/************************************************************************* | /************************************************************************* | |||
Subroutine performing the Schur decomposition of a general matrix by using | Subroutine performing the Schur decomposition of a general matrix by using | |||
the QR algorithm with multiple shifts. | the QR algorithm with multiple shifts. | |||
The source matrix A is represented as S'*A*S = T, where S is an orthogonal | The source matrix A is represented as S'*A*S = T, where S is an orthogonal | |||
matrix (Schur vectors), T - upper quasi-triangular matrix (with blocks of | matrix (Schur vectors), T - upper quasi-triangular matrix (with blocks of | |||
skipping to change at line 80 | skipping to change at line 85 | |||
Result: | Result: | |||
True, | True, | |||
if the algorithm has converged and parameters A and S contain the r esult. | if the algorithm has converged and parameters A and S contain the r esult. | |||
False, | False, | |||
if the algorithm has not converged. | if the algorithm has not converged. | |||
Algorithm implemented on the basis of the DHSEQR subroutine (LAPACK 3.0 lib rary). | Algorithm implemented on the basis of the DHSEQR subroutine (LAPACK 3.0 lib rary). | |||
*************************************************************************/ | *************************************************************************/ | |||
bool rmatrixschur(ap::real_2d_array& a, int n, ap::real_2d_array& s); | bool rmatrixschur(ap::real_2d_array& a, int n, ap::real_2d_array& s); | |||
bool schurdecomposition(ap::real_2d_array& a, int n, ap::real_2d_array& s); | ||||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
spdgevd.h | spdgevd.h | |||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "sblas.h" | #include "sblas.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "trinverse.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | ||||
#include "rcond.h" | ||||
#include "matinv.h" | ||||
#include "hblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | #include "rotations.h" | |||
#include "tdevd.h" | #include "hsschur.h" | |||
#include "tridiagonal.h" | #include "evd.h" | |||
#include "sevd.h" | ||||
/************************************************************************* | /************************************************************************* | |||
Algorithm for solving the following generalized symmetric positive-definite | Algorithm for solving the following generalized symmetric positive-definite | |||
eigenproblem: | eigenproblem: | |||
A*x = lambda*B*x (1) or | A*x = lambda*B*x (1) or | |||
A*B*x = lambda*x (2) or | A*B*x = lambda*x (2) or | |||
B*A*x = lambda*x (3). | B*A*x = lambda*x (3). | |||
where A is a symmetric matrix, B - symmetric positive-definite matrix. | where A is a symmetric matrix, B - symmetric positive-definite matrix. | |||
The problem is solved by reducing it to an ordinary symmetric eigenvalue | The problem is solved by reducing it to an ordinary symmetric eigenvalue | |||
problem. | problem. | |||
End of changes. 2 change blocks. | ||||
4 lines changed or deleted | 8 lines changed or added | |||
spline1d.h | spline1d.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "spline3.h" | #include "spline3.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "trinverse.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | #include "matinv.h" | |||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "lbfgs.h" | #include "lbfgs.h" | |||
#include "minlm.h" | #include "minlm.h" | |||
#include "leastsquares.h" | ||||
#include "lsfit.h" | #include "lsfit.h" | |||
/************************************************************************* | /************************************************************************* | |||
1-dimensional spline inteprolant | 1-dimensional spline inteprolant | |||
*************************************************************************/ | *************************************************************************/ | |||
struct spline1dinterpolant | struct spline1dinterpolant | |||
{ | { | |||
int n; | int n; | |||
int k; | int k; | |||
ap::real_1d_array x; | ap::real_1d_array x; | |||
End of changes. 4 change blocks. | ||||
9 lines changed or deleted | 7 lines changed or added | |||
spline2d.h | spline2d.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "spline3.h" | #include "spline3.h" | |||
#include "blas.h" | #include "blas.h" | |||
#include "reflections.h" | #include "reflections.h" | |||
#include "creflections.h" | #include "creflections.h" | |||
#include "hqrnd.h" | #include "hqrnd.h" | |||
#include "matgen.h" | #include "matgen.h" | |||
#include "trinverse.h" | ||||
#include "ablasf.h" | #include "ablasf.h" | |||
#include "ablas.h" | #include "ablas.h" | |||
#include "trfac.h" | #include "trfac.h" | |||
#include "bidiagonal.h" | ||||
#include "qr.h" | ||||
#include "lq.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "trlinsolve.h" | #include "trlinsolve.h" | |||
#include "safesolve.h" | #include "safesolve.h" | |||
#include "rcond.h" | #include "rcond.h" | |||
#include "tsort.h" | #include "matinv.h" | |||
#include "hblas.h" | ||||
#include "sblas.h" | ||||
#include "ortfac.h" | ||||
#include "rotations.h" | ||||
#include "bdsvd.h" | ||||
#include "svd.h" | ||||
#include "xblas.h" | #include "xblas.h" | |||
#include "densesolver.h" | #include "densesolver.h" | |||
#include "lbfgs.h" | #include "lbfgs.h" | |||
#include "minlm.h" | #include "minlm.h" | |||
#include "leastsquares.h" | ||||
#include "lsfit.h" | #include "lsfit.h" | |||
#include "spline1d.h" | #include "spline1d.h" | |||
/************************************************************************* | /************************************************************************* | |||
2-dimensional spline inteprolant | 2-dimensional spline inteprolant | |||
*************************************************************************/ | *************************************************************************/ | |||
struct spline2dinterpolant | struct spline2dinterpolant | |||
{ | { | |||
int k; | int k; | |||
ap::real_1d_array c; | ap::real_1d_array c; | |||
End of changes. 4 change blocks. | ||||
9 lines changed or deleted | 7 lines changed or added | |||
svd.h | svd.h | |||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
>>> END OF LICENSE >>> | >>> END OF LICENSE >>> | |||
*************************************************************************/ | *************************************************************************/ | |||
#ifndef _svd_h | #ifndef _svd_h | |||
#define _svd_h | #define _svd_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "hblas.h" | ||||
#include "reflections.h" | #include "reflections.h" | |||
#include "bidiagonal.h" | #include "creflections.h" | |||
#include "qr.h" | #include "sblas.h" | |||
#include "lq.h" | #include "ablasf.h" | |||
#include "ablas.h" | ||||
#include "ortfac.h" | ||||
#include "blas.h" | #include "blas.h" | |||
#include "rotations.h" | #include "rotations.h" | |||
#include "bdsvd.h" | #include "bdsvd.h" | |||
/************************************************************************* | /************************************************************************* | |||
Singular value decomposition of a rectangular matrix. | Singular value decomposition of a rectangular matrix. | |||
The algorithm calculates the singular value decomposition of a matrix of | The algorithm calculates the singular value decomposition of a matrix of | |||
size MxN: A = U * S * V^T | size MxN: A = U * S * V^T | |||
skipping to change at line 97 | skipping to change at line 100 | |||
bool rmatrixsvd(ap::real_2d_array a, | bool rmatrixsvd(ap::real_2d_array a, | |||
int m, | int m, | |||
int n, | int n, | |||
int uneeded, | int uneeded, | |||
int vtneeded, | int vtneeded, | |||
int additionalmemory, | int additionalmemory, | |||
ap::real_1d_array& w, | ap::real_1d_array& w, | |||
ap::real_2d_array& u, | ap::real_2d_array& u, | |||
ap::real_2d_array& vt); | ap::real_2d_array& vt); | |||
bool svddecomposition(ap::real_2d_array a, | ||||
int m, | ||||
int n, | ||||
int uneeded, | ||||
int vtneeded, | ||||
int additionalmemory, | ||||
ap::real_1d_array& w, | ||||
ap::real_2d_array& u, | ||||
ap::real_2d_array& vt); | ||||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
13 lines changed or deleted | 6 lines changed or added | |||
tsort.h | tsort.h | |||
---|---|---|---|---|
skipping to change at line 38 | skipping to change at line 38 | |||
int n, | int n, | |||
ap::integer_1d_array& p1, | ap::integer_1d_array& p1, | |||
ap::integer_1d_array& p2); | ap::integer_1d_array& p2); | |||
void tagsortfasti(ap::real_1d_array& a, ap::integer_1d_array& b, int n); | void tagsortfasti(ap::real_1d_array& a, ap::integer_1d_array& b, int n); | |||
void tagsortfastr(ap::real_1d_array& a, ap::real_1d_array& b, int n); | void tagsortfastr(ap::real_1d_array& a, ap::real_1d_array& b, int n); | |||
void tagsortfast(ap::real_1d_array& a, int n); | void tagsortfast(ap::real_1d_array& a, int n); | |||
/************************************************************************* | ||||
Heap operations: adds element to the heap | ||||
PARAMETERS: | ||||
A - heap itself, must be at least array[0..N] | ||||
B - array of integer tags, which are updated according to | ||||
permutations in the heap | ||||
N - size of the heap (without new element). | ||||
updated on output | ||||
VA - value of the element being added | ||||
VB - value of the tag | ||||
-- ALGLIB -- | ||||
Copyright 28.02.2010 by Bochkanov Sergey | ||||
*************************************************************************/ | ||||
void tagheappushi(ap::real_1d_array& a, | ||||
ap::integer_1d_array& b, | ||||
int& n, | ||||
double va, | ||||
int vb); | ||||
/************************************************************************* | ||||
Heap operations: replaces top element with new element | ||||
(which is moved down) | ||||
PARAMETERS: | ||||
A - heap itself, must be at least array[0..N-1] | ||||
B - array of integer tags, which are updated according to | ||||
permutations in the heap | ||||
N - size of the heap | ||||
VA - value of the element which replaces top element | ||||
VB - value of the tag | ||||
-- ALGLIB -- | ||||
Copyright 28.02.2010 by Bochkanov Sergey | ||||
*************************************************************************/ | ||||
void tagheapreplacetopi(ap::real_1d_array& a, | ||||
ap::integer_1d_array& b, | ||||
int n, | ||||
double va, | ||||
int vb); | ||||
/************************************************************************* | ||||
Heap operations: pops top element from the heap | ||||
PARAMETERS: | ||||
A - heap itself, must be at least array[0..N-1] | ||||
B - array of integer tags, which are updated according to | ||||
permutations in the heap | ||||
N - size of the heap, N>=1 | ||||
On output top element is moved to A[N-1], B[N-1], heap is reordered, N is | ||||
decreased by 1. | ||||
-- ALGLIB -- | ||||
Copyright 28.02.2010 by Bochkanov Sergey | ||||
*************************************************************************/ | ||||
void tagheappopi(ap::real_1d_array& a, ap::integer_1d_array& b, int& n); | ||||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 59 lines changed or added | |||
xblas.h | xblas.h | |||
---|---|---|---|---|
#ifndef _xblas_h | #ifndef _xblas_h | |||
#define _xblas_h | #define _xblas_h | |||
#include "ap.h" | #include "ap.h" | |||
#include "ialglib.h" | #include "ialglib.h" | |||
#include "tsort.h" | ||||
/************************************************************************* | /************************************************************************* | |||
More precise dot-product. Absolute error of subroutine result is about | More precise dot-product. Absolute error of subroutine result is about | |||
1 ulp of max(MX,V), where: | 1 ulp of max(MX,V), where: | |||
MX = max( |a[i]*b[i]| ) | MX = max( |a[i]*b[i]| ) | |||
V = |(a,b)| | V = |(a,b)| | |||
INPUT PARAMETERS | INPUT PARAMETERS | |||
A - array[0..N-1], vector 1 | A - array[0..N-1], vector 1 | |||
B - array[0..N-1], vector 2 | B - array[0..N-1], vector 2 | |||
N - vectors length, N<2^29. | N - vectors length, N<2^29. | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 0 lines changed or added | |||