23 #if (AE_COMPILER==AE_MSVC) 24 #pragma warning(disable:4100) 25 #pragma warning(disable:4127) 26 #pragma warning(disable:4702) 27 #pragma warning(disable:4996) 43 _densesolverreport_owner::_densesolverreport_owner()
47 throw ap_error(
"ALGLIB: malloc error");
49 throw ap_error(
"ALGLIB: malloc error");
56 throw ap_error(
"ALGLIB: malloc error");
58 throw ap_error(
"ALGLIB: malloc error");
67 throw ap_error(
"ALGLIB: malloc error");
71 _densesolverreport_owner::~_densesolverreport_owner()
114 throw ap_error(
"ALGLIB: malloc error");
116 throw ap_error(
"ALGLIB: malloc error");
123 throw ap_error(
"ALGLIB: malloc error");
125 throw ap_error(
"ALGLIB: malloc error");
134 throw ap_error(
"ALGLIB: malloc error");
219 alglib_impl::rmatrixsolve(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
266 alglib_impl::rmatrixsolvem(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, rfs, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
311 alglib_impl::rmatrixlusolve(const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
357 alglib_impl::rmatrixlusolvem(const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
401 alglib_impl::rmatrixmixedsolve(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
445 alglib_impl::rmatrixmixedsolvem(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
489 alglib_impl::cmatrixsolvem(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, rfs, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
527 alglib_impl::cmatrixsolve(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
570 alglib_impl::cmatrixlusolvem(const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
612 alglib_impl::cmatrixlusolve(const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
653 alglib_impl::cmatrixmixedsolvem(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
693 alglib_impl::cmatrixmixedsolve(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(lua.
c_ptr()), const_cast<alglib_impl::ae_vector*>(p.
c_ptr()), n, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
740 alglib_impl::spdmatrixsolvem(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
785 alglib_impl::spdmatrixsolve(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
832 alglib_impl::spdmatrixcholeskysolvem(const_cast<alglib_impl::ae_matrix*>(cha.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
878 alglib_impl::spdmatrixcholeskysolve(const_cast<alglib_impl::ae_matrix*>(cha.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
925 alglib_impl::hpdmatrixsolvem(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
971 alglib_impl::hpdmatrixsolve(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
1018 alglib_impl::hpdmatrixcholeskysolvem(const_cast<alglib_impl::ae_matrix*>(cha.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_matrix*>(b.
c_ptr()), m, &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_matrix*>(x.
c_ptr()), &_alglib_env_state);
1064 alglib_impl::hpdmatrixcholeskysolve(const_cast<alglib_impl::ae_matrix*>(cha.
c_ptr()), n, isupper, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), &info, const_cast<alglib_impl::densesolverreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
1125 alglib_impl::rmatrixsolvels(const_cast<alglib_impl::ae_matrix*>(a.
c_ptr()), nrows, ncols, const_cast<alglib_impl::ae_vector*>(b.
c_ptr()), threshold, &info, const_cast<alglib_impl::densesolverlsreport*>(rep.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), &_alglib_env_state);
1144 throw ap_error(
"ALGLIB: malloc error");
1146 throw ap_error(
"ALGLIB: malloc error");
1153 throw ap_error(
"ALGLIB: malloc error");
1155 throw ap_error(
"ALGLIB: malloc error");
1164 throw ap_error(
"ALGLIB: malloc error");
1211 throw ap_error(
"ALGLIB: malloc error");
1213 throw ap_error(
"ALGLIB: malloc error");
1220 throw ap_error(
"ALGLIB: malloc error");
1222 throw ap_error(
"ALGLIB: malloc error");
1231 throw ap_error(
"ALGLIB: malloc error");
1498 alglib_impl::linlsqrresults(const_cast<alglib_impl::linlsqrstate*>(state.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), const_cast<alglib_impl::linlsqrreport*>(rep.
c_ptr()), &_alglib_env_state);
1547 throw ap_error(
"ALGLIB: malloc error");
1549 throw ap_error(
"ALGLIB: malloc error");
1556 throw ap_error(
"ALGLIB: malloc error");
1558 throw ap_error(
"ALGLIB: malloc error");
1567 throw ap_error(
"ALGLIB: malloc error");
1614 throw ap_error(
"ALGLIB: malloc error");
1616 throw ap_error(
"ALGLIB: malloc error");
1623 throw ap_error(
"ALGLIB: malloc error");
1625 throw ap_error(
"ALGLIB: malloc error");
1634 throw ap_error(
"ALGLIB: malloc error");
1909 alglib_impl::lincgresults(const_cast<alglib_impl::lincgstate*>(state.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), const_cast<alglib_impl::lincgreport*>(rep.
c_ptr()), &_alglib_env_state);
2012 throw ap_error(
"ALGLIB: malloc error");
2014 throw ap_error(
"ALGLIB: malloc error");
2021 throw ap_error(
"ALGLIB: malloc error");
2023 throw ap_error(
"ALGLIB: malloc error");
2032 throw ap_error(
"ALGLIB: malloc error");
2079 throw ap_error(
"ALGLIB: malloc error");
2081 throw ap_error(
"ALGLIB: malloc error");
2088 throw ap_error(
"ALGLIB: malloc error");
2090 throw ap_error(
"ALGLIB: malloc error");
2099 throw ap_error(
"ALGLIB: malloc error");
2424 return *(
reinterpret_cast<bool*
>(&result));
2436 void (*rep)(
const real_1d_array &x,
double func,
void *ptr),
2441 throw ap_error(
"ALGLIB: error in 'nleqsolve()' (func is NULL)");
2443 throw ap_error(
"ALGLIB: error in 'nleqsolve()' (jac is NULL)");
2451 func(state.
x, state.
f, ptr);
2456 jac(state.
x, state.
fi, state.
j, ptr);
2462 rep(state.
x, state.
f, ptr);
2465 throw ap_error(
"ALGLIB: error in 'nleqsolve' (some derivatives were not provided?)");
2508 alglib_impl::nleqresults(const_cast<alglib_impl::nleqstate*>(state.
c_ptr()), const_cast<alglib_impl::ae_vector*>(x.
c_ptr()), const_cast<alglib_impl::nleqreport*>(rep.
c_ptr()), &_alglib_env_state);
2586 static void densesolver_rmatrixlusolveinternal(
ae_matrix* lua,
2598 static void densesolver_spdmatrixcholeskysolveinternal(
ae_matrix* cha,
2610 static void densesolver_cmatrixlusolveinternal(
ae_matrix* lua,
2622 static void densesolver_hpdmatrixcholeskysolveinternal(
ae_matrix* cha,
2641 static void densesolver_rbasiclusolve(
ae_matrix* lua,
2648 static void densesolver_spdbasiccholeskysolve(
ae_matrix* cha,
2655 static void densesolver_cbasiclusolve(
ae_matrix* lua,
2662 static void densesolver_hpdbasiccholeskysolve(
ae_matrix* cha,
2671 static double linlsqr_atol = 1.0E-6;
2672 static double linlsqr_btol = 1.0E-6;
2676 static double lincg_defaultprecision = 1.0E-6;
2682 static ae_bool nleq_increaselambda(
double* lambdav,
2686 static void nleq_decreaselambda(
double* lambdav,
2844 for(i=0; i<=n-1; i++)
2846 for(j=0; j<=n-1; j++)
2856 for(i=0; i<=n-1; i++)
2863 densesolver_rmatrixlusolveinternal(&da, &p, scalea, n, a,
ae_true, b, m, info, rep, x, _state);
2867 densesolver_rmatrixlusolveinternal(&da, &p, scalea, n, &emptya,
ae_false, b, m, info, rep, x, _state);
3006 for(i=0; i<=n-1; i++)
3008 for(j=i; j<=n-1; j++)
3018 densesolver_rmatrixlusolveinternal(lua, p, scalea, n, &emptya,
ae_false, b, m, info, rep, x, _state);
3150 for(i=0; i<=n-1; i++)
3152 for(j=0; j<=n-1; j++)
3162 densesolver_rmatrixlusolveinternal(lua, p, scalea, n, a,
ae_true, b, m, info, rep, x, _state);
3238 for(i=0; i<=n-1; i++)
3240 for(j=0; j<=n-1; j++)
3250 for(i=0; i<=n-1; i++)
3257 densesolver_cmatrixlusolveinternal(&da, &p, scalea, n, a,
ae_true, b, m, info, rep, x, _state);
3261 densesolver_cmatrixlusolveinternal(&da, &p, scalea, n, &emptya,
ae_false, b, m, info, rep, x, _state);
3389 for(i=0; i<=n-1; i++)
3391 for(j=i; j<=n-1; j++)
3401 densesolver_cmatrixlusolveinternal(lua, p, scalea, n, &emptya,
ae_false, b, m, info, rep, x, _state);
3527 for(i=0; i<=n-1; i++)
3529 for(j=0; j<=n-1; j++)
3539 densesolver_cmatrixlusolveinternal(lua, p, scalea, n, a,
ae_true, b, m, info, rep, x, _state);
3676 for(i=0; i<=n-1; i++)
3688 for(j=j1; j<=j2; j++)
3697 sqrtscalea = 1/sqrtscalea;
3698 sqrtscalea =
ae_sqrt(sqrtscalea, _state);
3699 for(i=0; i<=n-1; i++)
3716 for(i=0; i<=n-1; i++)
3718 for(j=0; j<=m-1; j++)
3730 densesolver_spdmatrixcholeskysolveinternal(&da, sqrtscalea, n, isupper, a,
ae_true, b, m, info, rep, x, _state);
3871 for(i=0; i<=n-1; i++)
3883 for(j=j1; j<=j2; j++)
3892 sqrtscalea = 1/sqrtscalea;
3893 densesolver_spdmatrixcholeskysolveinternal(cha, sqrtscalea, n, isupper, &emptya,
ae_false, b, m, info, rep, x, _state);
4036 for(i=0; i<=n-1; i++)
4048 for(j=j1; j<=j2; j++)
4057 sqrtscalea = 1/sqrtscalea;
4058 sqrtscalea =
ae_sqrt(sqrtscalea, _state);
4059 for(i=0; i<=n-1; i++)
4076 for(i=0; i<=n-1; i++)
4078 for(j=0; j<=m-1; j++)
4090 densesolver_hpdmatrixcholeskysolveinternal(&da, sqrtscalea, n, isupper, a,
ae_true, b, m, info, rep, x, _state);
4232 for(i=0; i<=n-1; i++)
4244 for(j=j1; j<=j2; j++)
4253 sqrtscalea = 1/sqrtscalea;
4254 densesolver_hpdmatrixcholeskysolveinternal(cha, sqrtscalea, n, isupper, &emptya,
ae_false, b, m, info, rep, x, _state);
4420 if( (nrows<=0||ncols<=0)||
ae_fp_less(threshold,0) )
4434 svdfailed = !
rmatrixsvd(a, nrows, ncols, 1, 2, 2, &sv, &u, &vt, _state);
4436 if( svdfailed||zeroa )
4447 for(i=0; i<=ncols-1; i++)
4454 for(i=0; i<=ncols-1; i++)
4456 for(j=0; j<=ncols-1; j++)
4503 for(i=0; i<=ncols-1; i++)
4508 for(i=0; i<=nsv-1; i++)
4516 rep->
k = ncols-kernelidx;
4517 nrfs = densesolver_densesolverrfsmaxv2(ncols, rep->
r2, _state);
4520 for(rfs=0; rfs<=nrfs; rfs++)
4522 if( terminatenexttime )
4537 for(i=0; i<=nrows-1; i++)
4543 xdot(&ta, &tx, ncols+1, &buf, &v, &verr, _state);
4556 for(i=0; i<=ncols-1; i++)
4560 for(i=0; i<=nsv-1; i++)
4564 for(i=0; i<=nrows-1; i++)
4569 for(i=0; i<=nsv-1; i++)
4580 for(i=0; i<=nsv-1; i++)
4598 for(i=0; i<=rep->
k-1; i++)
4613 static void densesolver_rmatrixlusolveinternal(
ae_matrix* lua,
4667 for(i=0; i<=n-1; i++)
4691 for(i=0; i<=n-1; i++)
4693 for(j=0; j<=m-1; j++)
4709 for(k=0; k<=m-1; k++)
4724 for(i=0; i<=n-1; i++)
4740 densesolver_rbasiclusolve(lua, p, scalea, n, &xc, &tx, _state);
4754 nrfs = densesolver_densesolverrfsmax(n, rep->
r1, rep->
rinf, _state);
4756 for(rfs=0; rfs<=nrfs-1; rfs++)
4758 if( terminatenexttime )
4768 for(i=0; i<=n-1; i++)
4773 xdot(&xa, &xb, n+1, &tx, &v, &verr, _state);
4785 densesolver_rbasiclusolve(lua, p, scalea, n, &y, &tx, _state);
4807 static void densesolver_spdmatrixcholeskysolveinternal(
ae_matrix* cha,
4871 for(i=0; i<=n-1; i++)
4873 for(j=0; j<=m-1; j++)
4889 for(k=0; k<=m-1; k++)
4904 for(i=0; i<=n-1; i++)
4920 densesolver_spdbasiccholeskysolve(cha, sqrtscalea, n, isupper, &xc, &tx, _state);
4926 v =
ae_sqr(sqrtscalea, _state)*mxb;
4939 static void densesolver_cmatrixlusolveinternal(
ae_matrix* lua,
4995 for(i=0; i<=n-1; i++)
5020 for(i=0; i<=n-1; i++)
5022 for(j=0; j<=m-1; j++)
5038 for(k=0; k<=m-1; k++)
5053 for(i=0; i<=n-1; i++)
5069 densesolver_cbasiclusolve(lua, p, scalea, n, &xc, &tx, _state);
5083 nrfs = densesolver_densesolverrfsmax(n, rep->
r1, rep->
rinf, _state);
5085 for(rfs=0; rfs<=nrfs-1; rfs++)
5087 if( terminatenexttime )
5097 for(i=0; i<=n-1; i++)
5102 xcdot(&xa, &xb, n+1, &tmpbuf, &v, &verr, _state);
5114 densesolver_cbasiclusolve(lua, p, scalea, n, &y, &tx, _state);
5136 static void densesolver_hpdmatrixcholeskysolveinternal(
ae_matrix* cha,
5200 for(i=0; i<=n-1; i++)
5202 for(j=0; j<=m-1; j++)
5218 for(k=0; k<=m-1; k++)
5233 for(i=0; i<=n-1; i++)
5249 densesolver_hpdbasiccholeskysolve(cha, sqrtscalea, n, isupper, &xc, &tx, _state);
5255 v =
ae_sqr(sqrtscalea, _state)*mxb;
5302 result = densesolver_densesolverrfsmax(n, 0, 0, _state);
5317 static void densesolver_rbasiclusolve(
ae_matrix* lua,
5329 for(i=0; i<=n-1; i++)
5338 for(i=1; i<=n-1; i++)
5344 for(i=n-2; i>=0; i--)
5363 static void densesolver_spdbasiccholeskysolve(
ae_matrix* cha,
5385 for(i=0; i<=n-1; i++)
5399 for(i=n-1; i>=0; i--)
5416 for(i=0; i<=n-1; i++)
5430 for(i=n-1; i>=0; i--)
5454 static void densesolver_cbasiclusolve(
ae_matrix* lua,
5466 for(i=0; i<=n-1; i++)
5475 for(i=1; i<=n-1; i++)
5481 for(i=n-2; i>=0; i--)
5500 static void densesolver_hpdbasiccholeskysolve(
ae_matrix* cha,
5522 for(i=0; i<=n-1; i++)
5536 for(i=n-1; i>=0; i--)
5553 for(i=0; i<=n-1; i++)
5567 for(i=n-1; i>=0; i--)
5688 ae_assert(m>0,
"LinLSQRCreate: M<=0", _state);
5689 ae_assert(n>0,
"LinLSQRCreate: N<=0", _state);
5693 state->
epsa = linlsqr_atol;
5694 state->
epsb = linlsqr_btol;
5720 for(i=0; i<=n-1; i++)
5724 for(i=0; i<=m-1; i++)
5753 ae_assert(!state->
running,
"LinLSQRSetB: you can not change B when LinLSQRIteration is running", _state);
5754 ae_assert(state->
m<=b->
cnt,
"LinLSQRSetB: Length(B)<M", _state);
5757 for(i=0; i<=state->
m-1; i++)
5781 ae_assert(!state->
running,
"LinLSQRSetPrecUnit: you can not change preconditioner, because function LinLSQRIteration is running!", _state);
5801 ae_assert(!state->
running,
"LinLSQRSetPrecDiag: you can not change preconditioner, because function LinCGIteration is running!", _state);
5825 ae_assert(!state->
running,
"LinLSQRSetLambdaI: you can not set LambdaI, because function LinLSQRIteration is running", _state);
5899 ae_assert(state->
b.
cnt>0,
"LinLSQRIteration: using non-allocated array B", _state);
5903 linlsqr_clearrfields(state, _state);
5905 summn = state->
m+state->
n;
5923 linlsqr_clearrfields(state, _state);
5942 linlsqr_clearrfields(state, _state);
5958 for(i=0; i<=state->
n-1; i++)
5971 linlsqr_clearrfields(state, _state);
6008 state->
betai = bnorm;
6020 for(i=0; i<=summn-1; i++)
6033 linlsqr_clearrfields(state, _state);
6039 for(i=0; i<=state->
n-1; i++)
6044 for(i=0; i<=state->
n-1; i++)
6060 for(i=0; i<=state->
n-1; i++)
6067 for(i=0; i<=state->
n-1; i++)
6102 linlsqr_clearrfields(state, _state);
6108 for(i=0; i<=state->
n-1; i++)
6113 for(i=0; i<=summn-1; i++)
6121 for(i=0; i<=summn-1; i++)
6128 linlsqr_clearrfields(state, _state);
6134 for(i=0; i<=state->
n-1; i++)
6139 for(i=0; i<=state->
n-1; i++)
6147 for(i=0; i<=state->
n-1; i++)
6179 for(i=0; i<=state->
n-1; i++)
6195 for(i=0; i<=state->
n-1; i++)
6204 linlsqr_clearrfields(state, _state);
6255 for(i=0; i<=state->
n-1; i++)
6328 ae_assert(!state->
running,
"LinLSQRSolveSparse: you can not call this function when LinLSQRIteration is running", _state);
6329 ae_assert(b->
cnt>=state->
m,
"LinLSQRSolveSparse: Length(B)<M", _state);
6347 for(i=0; i<=n-1; i++)
6357 for(i=0; i<=n-1; i++)
6375 for(i=0; i<=n-1; i++)
6395 for(i=0; i<=n-1; i++)
6404 for(i=0; i<=n-1; i++)
6410 for(i=0; i<=n-1; i++)
6443 ae_assert(!state->
running,
"LinLSQRSetCond: you can not call this function when LinLSQRIteration is running", _state);
6446 ae_assert(maxits>=0,
"LinLSQRSetCond: MaxIts is negative", _state);
6449 state->
epsa = linlsqr_atol;
6450 state->
epsb = linlsqr_btol;
6495 ae_assert(!state->
running,
"LinLSQRResult: you can not call this function when LinLSQRIteration is running", _state);
6496 if( x->
cnt<state->
n )
6526 state->
xrep = needxrep;
6543 linlsqr_clearrfields(state, _state);
6792 ae_assert(n>0,
"LinCGCreate: N<=0", _state);
6797 state->
epsf = lincg_defaultprecision;
6814 for(i=0; i<=state->
n-1; i++)
6829 lincg_updateitersdata(state, _state);
6855 ae_assert(!state->
running,
"LinCGSetStartingPoint: you can not change starting point because LinCGIteration() function is running", _state);
6856 ae_assert(state->
n<=x->
cnt,
"LinCGSetStartingPoint: Length(X)<N", _state);
6857 ae_assert(
isfinitevector(x, state->
n, _state),
"LinCGSetStartingPoint: X contains infinite or NaN values!", _state);
6880 ae_assert(!state->
running,
"LinCGSetB: you can not set B, because function LinCGIteration is running!", _state);
6881 ae_assert(b->
cnt>=state->
n,
"LinCGSetB: Length(B)<N", _state);
6903 ae_assert(!state->
running,
"LinCGSetPrecUnit: you can not change preconditioner, because function LinCGIteration is running!", _state);
6923 ae_assert(!state->
running,
"LinCGSetPrecDiag: you can not change preconditioner, because function LinCGIteration is running!", _state);
6954 ae_assert(!state->
running,
"LinCGSetCond: you can not change stopping criteria when LinCGIteration() is running", _state);
6956 ae_assert(maxits>=0,
"LinCGSetCond: MaxIts is negative", _state);
6959 state->
epsf = lincg_defaultprecision;
7046 ae_assert(state->
b.
cnt>0,
"LinCGIteration: B is not initialized (you must initialize B by LinCGSetB() call", _state);
7049 lincg_clearrfields(state, _state);
7050 lincg_updateitersdata(state, _state);
7058 lincg_clearrfields(state, _state);
7067 for(i=0; i<=state->
n-1; i++)
7074 bnorm =
ae_sqrt(bnorm, _state);
7084 lincg_clearrfields(state, _state);
7115 lincg_clearrfields(state, _state);
7121 for(i=0; i<=state->
n-1; i++)
7143 lincg_clearrfields(state, _state);
7169 for(i=0; i<=state->
n-1; i++)
7189 for(i=0; i<=state->
n-1; i++)
7208 for(i=0; i<=state->
n-1; i++)
7221 lincg_clearrfields(state, _state);
7227 for(i=0; i<=state->
n-1; i++)
7238 for(i=0; i<=state->
n-1; i++)
7246 for(i=0; i<=state->
n-1; i++)
7265 lincg_clearrfields(state, _state);
7287 for(i=0; i<=state->
n-1; i++)
7300 lincg_clearrfields(state, _state);
7328 for(i=0; i<=state->
n-1; i++)
7353 lincg_clearrfields(state, _state);
7364 for(i=0; i<=state->
n-1; i++)
7396 for(i=0; i<=state->
n-1; i++)
7409 for(i=0; i<=state->
n-1; i++)
7476 ae_assert(b->
cnt>=state->
n,
"LinCGSetB: Length(B)<N", _state);
7493 for(i=0; i<=n-1; i++)
7512 for(i=0; i<=n-1; i++)
7541 for(i=0; i<=n-1; i++)
7585 ae_assert(!state->
running,
"LinCGResult: you can not get result, because function LinCGIteration has been launched!", _state);
7586 if( x->
cnt<state->
n )
7594 rep->
r2 = state->
r2;
7611 ae_assert(!state->
running,
"LinCGSetRestartFreq: you can not change restart frequency when LinCGIteration() is running", _state);
7612 ae_assert(srf>0,
"LinCGSetRestartFreq: non-positive SRF", _state);
7641 ae_assert(!state->
running,
"LinCGSetRUpdateFreq: you can not change update frequency when LinCGIteration() is running", _state);
7642 ae_assert(freq>=0,
"LinCGSetRUpdateFreq: non-positive Freq", _state);
7664 state->
xrep = needxrep;
7681 lincg_clearrfields(state, _state);
7965 ae_assert(n>=1,
"NLEQCreateLM: N<1!", _state);
7966 ae_assert(m>=1,
"NLEQCreateLM: M<1!", _state);
7967 ae_assert(x->
cnt>=n,
"NLEQCreateLM: Length(X)<N!", _state);
8016 ae_assert(maxits>=0,
"NLEQSetCond: negative MaxIts!", _state);
8043 state->
xrep = needxrep;
8169 nleq_clearrequestfields(state, _state);
8187 nleq_clearrequestfields(state, _state);
8220 nleq_clearrequestfields(state, _state);
8229 rmatrixmv(n, m, &state->
j, 0, 0, 1, &state->
fi, 0, &state->
rightpart, 0, _state);
8248 for(i=0; i<=n-1; i++)
8258 for(i=0; i<=n-1; i++)
8284 for(i=0; i<=n-1; i++)
8303 nleq_clearrequestfields(state, _state);
8316 nleq_decreaselambda(&lambdav, &rho, lambdadown, _state);
8319 if( !nleq_increaselambda(&lambdav, &rho, lambdaup, _state) )
8349 nleq_clearrequestfields(state, _state);
8463 if( x->
cnt<state->
n )
8498 ae_assert(x->
cnt>=state->
n,
"NLEQRestartFrom: Length(X)<N!", _state);
8505 nleq_clearrequestfields(state, _state);
8525 static ae_bool nleq_increaselambda(
double* lambdav,
8538 lnlambda =
ae_log(*lambdav, _state);
8539 lnlambdaup =
ae_log(lambdaup, _state);
8540 lnnu =
ae_log(*nu, _state);
8550 *lambdav = *lambdav*lambdaup*(*nu);
8560 static void nleq_decreaselambda(
double* lambdav,
8574 *lambdav = *lambdav*lambdadown;
void ae_v_cmove(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n)
struct alglib_impl::ae_state ae_state
void cmatrixsolvem(const complex_2d_array &a, const ae_int_t n, const complex_2d_array &b, const ae_int_t m, const bool rfs, ae_int_t &info, densesolverreport &rep, complex_2d_array &x)
alglib_impl::lincgstate * c_ptr()
void rmatrixsolvem(const real_2d_array &a, const ae_int_t n, const real_2d_array &b, const ae_int_t m, const bool rfs, ae_int_t &info, densesolverreport &rep, real_2d_array &x)
void rmatrixsolvem(ae_matrix *a, ae_int_t n, ae_matrix *b, ae_int_t m, ae_bool rfs, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
void lincgsetb(lincgstate *state, ae_vector *b, ae_state *_state)
ae_bool ae_fp_greater_eq(double v1, double v2)
alglib_impl::lincgreport * c_ptr()
alglib_impl::nleqstate * c_ptr()
void nleqrestartfrom(const nleqstate &state, const real_1d_array &x)
void spdmatrixsolvem(ae_matrix *a, ae_int_t n, ae_bool isupper, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
void rmatrixlu(real_2d_array &a, const ae_int_t m, const ae_int_t n, integer_1d_array &pivots)
void _lincgreport_clear(void *_p)
void rmatrixmv(const ae_int_t m, const ae_int_t n, const real_2d_array &a, const ae_int_t ia, const ae_int_t ja, const ae_int_t opa, const real_1d_array &x, const ae_int_t ix, real_1d_array &y, const ae_int_t iy)
virtual ~_lincgreport_owner()
double ae_c_abs(ae_complex z, ae_state *state)
void ae_v_moved(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha)
ae_bool normestimatoriteration(normestimatorstate *state, ae_state *_state)
densesolverreport & operator=(const densesolverreport &rhs)
void nleqsetstpmax(nleqstate *state, double stpmax, ae_state *_state)
void cmatrixlusolvem(ae_matrix *lua, ae_vector *p, ae_int_t n, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
void _linlsqrreport_destroy(void *_p)
void lincgsetprecunit(lincgstate *state, ae_state *_state)
double hpdmatrixcholeskyrcond(const complex_2d_array &a, const ae_int_t n, const bool isupper)
bool spdmatrixcholesky(real_2d_array &a, const ae_int_t n, const bool isupper)
ae_int_t repterminationtype
void cmatrixmixedsolvem(ae_matrix *a, ae_matrix *lua, ae_vector *p, ae_int_t n, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
ae_int_t repiterationscount
void nleqsetcond(const nleqstate &state, const double epsf, const ae_int_t maxits)
double sparsegetdiagonal(const sparsematrix &s, const ae_int_t i)
bool nleqiteration(const nleqstate &state)
void ae_v_muld(double *vdst, ae_int_t stride_dst, ae_int_t n, double alpha)
void nleqresults(nleqstate *state, ae_vector *x, nleqreport *rep, ae_state *_state)
void rmatrixmixedsolvem(ae_matrix *a, ae_matrix *lua, ae_vector *p, ae_int_t n, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
alglib_impl::nleqreport * p_struct
double ae_fabs(double x, ae_state *state)
_densesolverlsreport_owner()
alglib_impl::densesolverreport * p_struct
void _nleqreport_destroy(void *_p)
void _densesolverreport_clear(void *_p)
void _nleqstate_clear(void *_p)
void nleqresultsbuf(const nleqstate &state, real_1d_array &x, nleqreport &rep)
void _lincgreport_destroy(void *_p)
void cmatrixmixedsolvem(const complex_2d_array &a, const complex_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const complex_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, complex_2d_array &x)
void * ae_malloc(size_t size, ae_state *state)
void _normestimatorstate_clear(void *_p)
alglib_impl::nleqreport * c_ptr()
void nleqcreatelm(ae_int_t n, ae_int_t m, ae_vector *x, nleqstate *state, ae_state *_state)
void xdot(ae_vector *a, ae_vector *b, ae_int_t n, ae_vector *temp, double *r, double *rerr, ae_state *_state)
void lincgsolvesparse(lincgstate *state, sparsematrix *a, ae_bool isupper, ae_vector *b, ae_state *_state)
void hpdmatrixcholeskysolve(const complex_2d_array &cha, const ae_int_t n, const bool isupper, const complex_1d_array &b, ae_int_t &info, densesolverreport &rep, complex_1d_array &x)
union alglib_impl::ae_matrix::@12 ptr
void lincgsetstartingpoint(lincgstate *state, ae_vector *x, ae_state *_state)
void linlsqrresults(const linlsqrstate &state, real_1d_array &x, linlsqrreport &rep)
void rmatrixsolve(ae_matrix *a, ae_int_t n, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void lincgsetxrep(const lincgstate &state, const bool needxrep)
ae_int_t repterminationtype
void ae_frame_make(ae_state *state, ae_frame *tmp)
void rmatrixsolvels(ae_matrix *a, ae_int_t nrows, ae_int_t ncols, ae_vector *b, double threshold, ae_int_t *info, densesolverlsreport *rep, ae_vector *x, ae_state *_state)
void rmatrixmixedsolve(ae_matrix *a, ae_matrix *lua, ae_vector *p, ae_int_t n, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void rmatrixmixedsolvem(const real_2d_array &a, const real_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const real_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, real_2d_array &x)
virtual ~_nleqstate_owner()
ae_complex ae_c_conj(ae_complex lhs, ae_state *state)
ae_int_t repiterationscount
void lincgsetstartingpoint(const lincgstate &state, const real_1d_array &x)
void linlsqrsetlambdai(linlsqrstate *state, double lambdai, ae_state *_state)
ae_bool _nleqreport_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
ae_complex ae_complex_from_d(double v)
void cmatrixsolvem(ae_matrix *a, ae_int_t n, ae_matrix *b, ae_int_t m, ae_bool rfs, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
void _densesolverlsreport_destroy(void *_p)
void hpdmatrixcholeskysolvem(ae_matrix *cha, ae_int_t n, ae_bool isupper, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
ae_bool _nleqstate_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
void nleqsetxrep(nleqstate *state, ae_bool needxrep, ae_state *_state)
void ae_state_clear(ae_state *state)
const alglib_impl::ae_matrix * c_ptr() const
void spdmatrixsolvem(const real_2d_array &a, const ae_int_t n, const bool isupper, const real_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, real_2d_array &x)
ae_bool ae_fp_eq(double v1, double v2)
_linlsqrreport_owner & operator=(const _linlsqrreport_owner &rhs)
ae_bool nleqiteration(nleqstate *state, ae_state *_state)
void hpdmatrixcholeskysolve(ae_matrix *cha, ae_int_t n, ae_bool isupper, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void linlsqrsetb(linlsqrstate *state, ae_vector *b, ae_state *_state)
void nleqrestartfrom(nleqstate *state, ae_vector *x, ae_state *_state)
void sparsemtv(const sparsematrix &s, const real_1d_array &x, real_1d_array &y)
ae_bool ae_matrix_init_copy(ae_matrix *dst, ae_matrix *src, ae_state *state, ae_bool make_automatic)
ae_bool ae_matrix_init(ae_matrix *dst, ae_int_t rows, ae_int_t cols, ae_datatype datatype, ae_state *state, ae_bool make_automatic)
virtual ~_linlsqrstate_owner()
void ae_matrix_destroy(ae_matrix *dst)
ae_bool _linlsqrstate_init(void *_p, ae_state *_state, ae_bool make_automatic)
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
void ae_v_add(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n)
alglib_impl::densesolverlsreport * p_struct
void nleqresults(const nleqstate &state, real_1d_array &x, nleqreport &rep)
ae_bool _lincgstate_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
void cmatrixlusolvem(const complex_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const complex_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, complex_2d_array &x)
void _lincgstate_destroy(void *_p)
ae_bool _densesolverreport_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
void hpdmatrixsolve(ae_matrix *a, ae_int_t n, ae_bool isupper, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void linlsqrsetprecdiag(const linlsqrstate &state)
void normestimatorrestart(normestimatorstate *state, ae_state *_state)
void threshold(double *phi, unsigned long nvox, double limit)
alglib_impl::densesolverlsreport * c_ptr()
double safepythag2(double x, double y, ae_state *_state)
void hpdmatrixsolvem(ae_matrix *a, ae_int_t n, ae_bool isupper, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
void normestimatorcreate(const ae_int_t m, const ae_int_t n, const ae_int_t nstart, const ae_int_t nits, normestimatorstate &state)
void linminnormalized(ae_vector *d, double *stp, ae_int_t n, ae_state *_state)
void _rcommstate_destroy(rcommstate *p)
void spdmatrixcholeskysolvem(ae_matrix *cha, ae_int_t n, ae_bool isupper, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
ae_int_t ae_v_len(ae_int_t a, ae_int_t b)
void linlsqrsolvesparse(const linlsqrstate &state, const sparsematrix &a, const real_1d_array &b)
void ae_vector_destroy(ae_vector *dst)
alglib_impl::nleqstate * p_struct
void nleqresultsbuf(nleqstate *state, ae_vector *x, nleqreport *rep, ae_state *_state)
ae_bool _rcommstate_init(rcommstate *p, ae_state *_state, ae_bool make_automatic)
void rmatrixsolve(const real_2d_array &a, const ae_int_t n, const real_1d_array &b, ae_int_t &info, densesolverreport &rep, real_1d_array &x)
void lincgresults(const lincgstate &state, real_1d_array &x, lincgreport &rep)
void rmatrixlusolvem(ae_matrix *lua, ae_vector *p, ae_int_t n, ae_matrix *b, ae_int_t m, ae_int_t *info, densesolverreport *rep, ae_matrix *x, ae_state *_state)
ae_bool _linlsqrstate_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
void linlsqrsetxrep(const linlsqrstate &state, const bool needxrep)
void sparsemv(const sparsematrix &s, const real_1d_array &x, real_1d_array &y)
ae_bool _normestimatorstate_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
void sparsesmv(const sparsematrix &s, const bool isupper, const real_1d_array &x, real_1d_array &y)
void linlsqrsetxrep(linlsqrstate *state, ae_bool needxrep, ae_state *_state)
ae_bool _rcommstate_init_copy(rcommstate *dst, rcommstate *src, ae_state *_state, ae_bool make_automatic)
void ae_v_move(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n)
ae_bool _nleqreport_init(void *_p, ae_state *_state, ae_bool make_automatic)
void linlsqrsolvesparse(linlsqrstate *state, sparsematrix *a, ae_vector *b, ae_state *_state)
void nleqsetxrep(const nleqstate &state, const bool needxrep)
void cmatrixsolve(const complex_2d_array &a, const ae_int_t n, const complex_1d_array &b, ae_int_t &info, densesolverreport &rep, complex_1d_array &x)
ae_complex ae_c_div(ae_complex lhs, ae_complex rhs)
ae_bool _densesolverlsreport_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
ae_int_t itsbeforerupdate
void linlsqrsetlambdai(const linlsqrstate &state, const double lambdai)
void ae_vector_clear(ae_vector *dst)
ae_bool _lincgreport_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
linlsqrreport & operator=(const linlsqrreport &rhs)
void ae_v_csubc(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha)
void lincgsetrupdatefreq(const lincgstate &state, const ae_int_t freq)
void lincgsetprecdiag(const lincgstate &state)
void spdmatrixcholeskysolvem(const real_2d_array &cha, const ae_int_t n, const bool isupper, const real_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, real_2d_array &x)
alglib_impl::densesolverreport * c_ptr()
ae_bool ae_fp_less(double v1, double v2)
_lincgstate_owner & operator=(const _lincgstate_owner &rhs)
void hpdmatrixsolvem(const complex_2d_array &a, const ae_int_t n, const bool isupper, const complex_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, complex_2d_array &x)
void rmatrixlusolvem(const real_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const real_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, real_2d_array &x)
ae_bool _lincgreport_init(void *_p, ae_state *_state, ae_bool make_automatic)
ae_bool lincgiteration(lincgstate *state, ae_state *_state)
ae_bool _densesolverlsreport_init(void *_p, ae_state *_state, ae_bool make_automatic)
double spdmatrixcholeskyrcond(const real_2d_array &a, const ae_int_t n, const bool isupper)
void spdmatrixcholeskysolve(const real_2d_array &cha, const ae_int_t n, const bool isupper, const real_1d_array &b, ae_int_t &info, densesolverreport &rep, real_1d_array &x)
double rmatrixlurcondinf(const real_2d_array &lua, const ae_int_t n)
void lincgsolvesparse(const lincgstate &state, const sparsematrix &a, const bool isupper, const real_1d_array &b)
ae_complex ae_c_sub(ae_complex lhs, ae_complex rhs)
ae_bool ae_fp_neq(double v1, double v2)
ae_bool isfinitevector(ae_vector *x, ae_int_t n, ae_state *_state)
void lincgsetprecunit(const lincgstate &state)
void ae_v_cmoved(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, double alpha)
void rvectorsetlengthatleast(ae_vector *x, ae_int_t n, ae_state *_state)
ae_int_t & iterationscount
double rmatrixlurcond1(const real_2d_array &lua, const ae_int_t n)
void ae_v_cadd(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n)
void linlsqrcreate(const ae_int_t m, const ae_int_t n, linlsqrstate &state)
void cmatrixlusolve(const complex_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const complex_1d_array &b, ae_int_t &info, densesolverreport &rep, complex_1d_array &x)
void ae_touch_ptr(void *p)
alglib_impl::lincgstate * p_struct
double ae_maxreal(double m1, double m2, ae_state *state)
ae_complex ae_v_cdotproduct(const ae_complex *v0, ae_int_t stride0, const char *conj0, const ae_complex *v1, ae_int_t stride1, const char *conj1, ae_int_t n)
double rcondthreshold(ae_state *_state)
ae_bool ae_vector_set_length(ae_vector *dst, ae_int_t newsize, ae_state *state)
_densesolverreport_owner & operator=(const _densesolverreport_owner &rhs)
ae_int_t & terminationtype
bool rmatrixsvd(const real_2d_array &a, const ae_int_t m, const ae_int_t n, const ae_int_t uneeded, const ae_int_t vtneeded, const ae_int_t additionalmemory, real_1d_array &w, real_2d_array &u, real_2d_array &vt)
void nleqsetcond(nleqstate *state, double epsf, ae_int_t maxits, ae_state *_state)
void lincgsetrestartfreq(const lincgstate &state, const ae_int_t srf)
void normestimatorresults(const normestimatorstate &state, double &nrm)
double ae_log(double x, ae_state *state)
void linlsqrsetprecdiag(linlsqrstate *state, ae_state *_state)
struct alglib_impl::ae_vector ae_vector
const alglib_impl::ae_vector * c_ptr() const
void _densesolverlsreport_clear(void *_p)
ae_int_t & terminationtype
double ae_minreal(double m1, double m2, ae_state *state)
void cmatrixmixedsolve(ae_matrix *a, ae_matrix *lua, ae_vector *p, ae_int_t n, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
ae_bool linlsqriteration(linlsqrstate *state, ae_state *_state)
alglib_impl::linlsqrreport * p_struct
bool hpdmatrixcholesky(complex_2d_array &a, const ae_int_t n, const bool isupper)
ae_bool _nleqstate_init(void *_p, ae_state *_state, ae_bool make_automatic)
struct alglib_impl::ae_matrix ae_matrix
ae_bool _lincgstate_init(void *_p, ae_state *_state, ae_bool make_automatic)
void nleqsolve(nleqstate &state, void(*func)(const real_1d_array &x, double &func, void *ptr), void(*jac)(const real_1d_array &x, real_1d_array &fi, real_2d_array &jac, void *ptr), void(*rep)(const real_1d_array &x, double func, void *ptr), void *ptr)
void _linlsqrstate_clear(void *_p)
void lincgsetprecdiag(lincgstate *state, ae_state *_state)
linlsqrstate & operator=(const linlsqrstate &rhs)
void _lincgstate_clear(void *_p)
void _linlsqrstate_destroy(void *_p)
void ae_state_init(ae_state *state)
ae_int_t & terminationtype
alglib_impl::linlsqrstate * c_ptr()
void spdmatrixsolve(ae_matrix *a, ae_int_t n, ae_bool isupper, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
double ae_sqrt(double x, ae_state *state)
void ae_assert(ae_bool cond, const char *msg, ae_state *state)
union alglib_impl::ae_vector::@11 ptr
bool sparseenumerate(const sparsematrix &s, ae_int_t &t0, ae_int_t &t1, ae_int_t &i, ae_int_t &j, double &v)
void lincgsetcond(lincgstate *state, double epsf, ae_int_t maxits, ae_state *_state)
ae_int_t & iterationscount
void rmatrixsolvels(const real_2d_array &a, const ae_int_t nrows, const ae_int_t ncols, const real_1d_array &b, const double threshold, ae_int_t &info, densesolverlsreport &rep, real_1d_array &x)
ae_int_t repiterationscount
const char *volatile error_msg
virtual ~densesolverreport()
ae_int_t repterminationtype
void xcdot(ae_vector *a, ae_vector *b, ae_int_t n, ae_vector *temp, ae_complex *r, double *rerr, ae_state *_state)
void rmatrixlusolve(ae_matrix *lua, ae_vector *p, ae_int_t n, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void _linlsqrreport_clear(void *_p)
#define ae_machineepsilon
void cmatrixmixedsolve(const complex_2d_array &a, const complex_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const complex_1d_array &b, ae_int_t &info, densesolverreport &rep, complex_1d_array &x)
_densesolverlsreport_owner & operator=(const _densesolverlsreport_owner &rhs)
void linlsqrrestart(linlsqrstate *state, ae_state *_state)
_nleqstate_owner & operator=(const _nleqstate_owner &rhs)
void hpdmatrixcholeskysolvem(const complex_2d_array &cha, const ae_int_t n, const bool isupper, const complex_2d_array &b, const ae_int_t m, ae_int_t &info, densesolverreport &rep, complex_2d_array &x)
densesolverlsreport & operator=(const densesolverlsreport &rhs)
void linlsqrcreate(ae_int_t m, ae_int_t n, linlsqrstate *state, ae_state *_state)
void rmatrixmixedsolve(const real_2d_array &a, const real_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const real_1d_array &b, ae_int_t &info, densesolverreport &rep, real_1d_array &x)
void _rcommstate_clear(rcommstate *p)
void lincgcreate(const ae_int_t n, lincgstate &state)
ae_int_t & iterationscount
alglib_impl::linlsqrstate * p_struct
void ae_v_subd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha)
ae_bool ae_vector_init(ae_vector *dst, ae_int_t size, ae_datatype datatype, ae_state *state, ae_bool make_automatic)
virtual ~_densesolverlsreport_owner()
void hpdmatrixsolve(const complex_2d_array &a, const ae_int_t n, const bool isupper, const complex_1d_array &b, ae_int_t &info, densesolverreport &rep, complex_1d_array &x)
ae_complex ae_c_mul_d(ae_complex lhs, double rhs)
void _normestimatorstate_destroy(void *_p)
void _nleqstate_destroy(void *_p)
ae_bool ae_isfinite(double x, ae_state *state)
double ae_sqr(double x, ae_state *state)
virtual ~_nleqreport_owner()
void rmatrixlusolve(const real_2d_array &lua, const integer_1d_array &p, const ae_int_t n, const real_1d_array &b, ae_int_t &info, densesolverreport &rep, real_1d_array &x)
void linlsqrsetcond(linlsqrstate *state, double epsa, double epsb, ae_int_t maxits, ae_state *_state)
void lincgcreate(ae_int_t n, lincgstate *state, ae_state *_state)
_lincgreport_owner & operator=(const _lincgreport_owner &rhs)
void _densesolverreport_destroy(void *_p)
_linlsqrstate_owner & operator=(const _linlsqrstate_owner &rhs)
lincgreport & operator=(const lincgreport &rhs)
void lincgsetcond(const lincgstate &state, const double epsf, const ae_int_t maxits)
void linlsqrresults(linlsqrstate *state, ae_vector *x, linlsqrreport *rep, ae_state *_state)
void nleqcreatelm(const ae_int_t n, const ae_int_t m, const real_1d_array &x, nleqstate &state)
nleqstate & operator=(const nleqstate &rhs)
ae_int_t itsbeforerestart
ae_complex ae_c_neg(ae_complex lhs)
void linlsqrsetprecunit(linlsqrstate *state, ae_state *_state)
ae_bool _normestimatorstate_init(void *_p, ae_state *_state, ae_bool make_automatic)
void lincgsetrupdatefreq(lincgstate *state, ae_int_t freq, ae_state *_state)
void nleqsetstpmax(const nleqstate &state, const double stpmax)
ae_bool _linlsqrreport_init_copy(void *_dst, void *_src, ae_state *_state, ae_bool make_automatic)
void cmatrixlu(complex_2d_array &a, const ae_int_t m, const ae_int_t n, integer_1d_array &pivots)
void linlsqrsetcond(const linlsqrstate &state, const double epsa, const double epsb, const ae_int_t maxits)
void ae_v_addd(double *vdst, ae_int_t stride_dst, const double *vsrc, ae_int_t stride_src, ae_int_t n, double alpha)
ae_bool ae_vector_init_copy(ae_vector *dst, ae_vector *src, ae_state *state, ae_bool make_automatic)
ae_bool ae_fp_less_eq(double v1, double v2)
void spdmatrixcholeskysolve(ae_matrix *cha, ae_int_t n, ae_bool isupper, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void cmatrixlusolve(ae_matrix *lua, ae_vector *p, ae_int_t n, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
alglib_impl::ae_int_t ae_int_t
void ae_frame_leave(ae_state *state)
alglib_impl::sparsematrix * c_ptr()
void ae_matrix_clear(ae_matrix *dst)
void spdmatrixsolve(const real_2d_array &a, const ae_int_t n, const bool isupper, const real_1d_array &b, ae_int_t &info, densesolverreport &rep, real_1d_array &x)
void linlsqrsetprecunit(const linlsqrstate &state)
void lincgsetxrep(lincgstate *state, ae_bool needxrep, ae_state *_state)
nleqreport & operator=(const nleqreport &rhs)
alglib_impl::lincgreport * p_struct
ae_bool ae_fp_greater(double v1, double v2)
double cmatrixlurcond1(const complex_2d_array &lua, const ae_int_t n)
ae_bool ae_matrix_set_length(ae_matrix *dst, ae_int_t rows, ae_int_t cols, ae_state *state)
void lincgsetrestartfreq(lincgstate *state, ae_int_t srf, ae_state *_state)
virtual ~densesolverlsreport()
virtual ~_lincgstate_owner()
alglib_impl::linlsqrreport * c_ptr()
ae_bool _linlsqrreport_init(void *_p, ae_state *_state, ae_bool make_automatic)
void _nleqreport_clear(void *_p)
void lincgresults(lincgstate *state, ae_vector *x, lincgreport *rep, ae_state *_state)
ae_int_t ae_minint(ae_int_t m1, ae_int_t m2, ae_state *state)
_nleqreport_owner & operator=(const _nleqreport_owner &rhs)
void fblssolvecgx(ae_matrix *a, ae_int_t m, ae_int_t n, double alpha, ae_vector *b, ae_vector *x, ae_vector *buf, ae_state *_state)
double ae_v_dotproduct(const double *v0, ae_int_t stride0, const double *v1, ae_int_t stride1, ae_int_t n)
lincgstate & operator=(const lincgstate &rhs)
virtual ~_linlsqrreport_owner()
void cmatrixsolve(ae_matrix *a, ae_int_t n, ae_vector *b, ae_int_t *info, densesolverreport *rep, ae_vector *x, ae_state *_state)
void lincgrestart(lincgstate *state, ae_state *_state)
void ae_v_cmovec(ae_complex *vdst, ae_int_t stride_dst, const ae_complex *vsrc, ae_int_t stride_src, const char *conj_src, ae_int_t n, ae_complex alpha)
double cmatrixlurcondinf(const complex_2d_array &lua, const ae_int_t n)
ae_bool _densesolverreport_init(void *_p, ae_state *_state, ae_bool make_automatic)