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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/