/************************************************************************* Copyright (c) Sergey Bochkanov (ALGLIB project). >>> SOURCE LICENSE >>> 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 the Free Software Foundation (www.fsf.org); either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy of the GNU General Public License is available at http://www.fsf.org/licensing/licenses >>> END OF LICENSE >>> *************************************************************************/ #ifndef _alglibinternal_pkg_h #define _alglibinternal_pkg_h #include "ap.h" ///////////////////////////////////////////////////////////////////////// // // THIS SECTION CONTAINS COMPUTATIONAL CORE DECLARATIONS (DATATYPES) // ///////////////////////////////////////////////////////////////////////// namespace alglib_impl { typedef struct { ae_vector ia0; ae_vector ia1; ae_vector ia2; ae_vector ia3; ae_vector ra0; ae_vector ra1; ae_vector ra2; ae_vector ra3; } apbuffers; typedef struct { ae_bool val; } sboolean; typedef struct { ae_vector val; } sbooleanarray; typedef struct { ae_int_t val; } sinteger; typedef struct { ae_vector val; } sintegerarray; typedef struct { double val; } sreal; typedef struct { ae_vector val; } srealarray; typedef struct { ae_complex val; } scomplex; typedef struct { ae_vector val; } scomplexarray; typedef struct { ae_int_t chunksize; ae_int_t ntotal; ae_int_t nin; ae_int_t nout; ae_int_t wcount; ae_vector batch4buf; ae_vector hpcbuf; ae_matrix xy; ae_matrix xy2; ae_vector xyrow; ae_vector x; ae_vector y; ae_vector desiredy; double e; ae_vector g; ae_vector tmp0; } mlpbuffers; typedef struct { ae_bool brackt; ae_bool stage1; ae_int_t infoc; double dg; double dgm; double dginit; double dgtest; double dgx; double dgxm; double dgy; double dgym; double finit; double ftest1; double fm; double fx; double fxm; double fy; double fym; double stx; double sty; double stmin; double stmax; double width; double width1; double xtrapf; } linminstate; typedef struct { ae_bool needf; ae_vector x; double f; ae_int_t n; ae_vector xbase; ae_vector s; double stplen; double fcur; double stpmax; ae_int_t fmax; ae_int_t nfev; ae_int_t info; rcommstate rstate; } armijostate; typedef struct { ae_matrix entries; ae_vector buffer; ae_vector precr; ae_vector preci; ae_shared_pool bluesteinpool; } fasttransformplan; } ///////////////////////////////////////////////////////////////////////// // // THIS SECTION CONTAINS C++ INTERFACE // ///////////////////////////////////////////////////////////////////////// namespace alglib { } ///////////////////////////////////////////////////////////////////////// // // THIS SECTION CONTAINS COMPUTATIONAL CORE DECLARATIONS (FUNCTIONS) // ///////////////////////////////////////////////////////////////////////// namespace alglib_impl { ae_bool seterrorflag(ae_bool* flag, ae_bool cond, ae_state *_state); ae_bool seterrorflagdiff(ae_bool* flag, double val, double refval, double tol, double s, ae_state *_state); void touchint(ae_int_t* a, ae_state *_state); void touchreal(double* a, ae_state *_state); double inttoreal(ae_int_t a, ae_state *_state); double log2(double x, ae_state *_state); ae_bool approxequalrel(double a, double b, double tol, ae_state *_state); void taskgenint1d(double a, double b, ae_int_t n, /* Real */ ae_vector* x, /* Real */ ae_vector* y, ae_state *_state); void taskgenint1dequidist(double a, double b, ae_int_t n, /* Real */ ae_vector* x, /* Real */ ae_vector* y, ae_state *_state); void taskgenint1dcheb1(double a, double b, ae_int_t n, /* Real */ ae_vector* x, /* Real */ ae_vector* y, ae_state *_state); void taskgenint1dcheb2(double a, double b, ae_int_t n, /* Real */ ae_vector* x, /* Real */ ae_vector* y, ae_state *_state); ae_bool aredistinct(/* Real */ ae_vector* x, ae_int_t n, ae_state *_state); ae_bool aresameboolean(ae_bool v1, ae_bool v2, ae_state *_state); void bvectorsetlengthatleast(/* Boolean */ ae_vector* x, ae_int_t n, ae_state *_state); void ivectorsetlengthatleast(/* Integer */ ae_vector* x, ae_int_t n, ae_state *_state); void rvectorsetlengthatleast(/* Real */ ae_vector* x, ae_int_t n, ae_state *_state); void rmatrixsetlengthatleast(/* Real */ ae_matrix* x, ae_int_t m, ae_int_t n, ae_state *_state); void rmatrixresize(/* Real */ ae_matrix* x, ae_int_t m, ae_int_t n, ae_state *_state); void imatrixresize(/* Integer */ ae_matrix* x, ae_int_t m, ae_int_t n, ae_state *_state); ae_bool isfinitevector(/* Real */ ae_vector* x, ae_int_t n, ae_state *_state); ae_bool isfinitecvector(/* Complex */ ae_vector* z, ae_int_t n, ae_state *_state); ae_bool apservisfinitematrix(/* Real */ ae_matrix* x, ae_int_t m, ae_int_t n, ae_state *_state); ae_bool apservisfinitecmatrix(/* Complex */ ae_matrix* x, ae_int_t m, ae_int_t n, ae_state *_state); ae_bool isfinitertrmatrix(/* Real */ ae_matrix* x, ae_int_t n, ae_bool isupper, ae_state *_state); ae_bool apservisfinitectrmatrix(/* Complex */ ae_matrix* x, ae_int_t n, ae_bool isupper, ae_state *_state); ae_bool apservisfiniteornanmatrix(/* Real */ ae_matrix* x, ae_int_t m, ae_int_t n, ae_state *_state); double safepythag2(double x, double y, ae_state *_state); double safepythag3(double x, double y, double z, ae_state *_state); ae_int_t saferdiv(double x, double y, double* r, ae_state *_state); double safeminposrv(double x, double y, double v, ae_state *_state); void apperiodicmap(double* x, double a, double b, double* k, ae_state *_state); double randomnormal(ae_state *_state); void randomunit(ae_int_t n, /* Real */ ae_vector* x, ae_state *_state); void inc(ae_int_t* v, ae_state *_state); void dec(ae_int_t* v, ae_state *_state); void countdown(ae_int_t* v, ae_state *_state); double boundval(double x, double b1, double b2, ae_state *_state); void alloccomplex(ae_serializer* s, ae_complex v, ae_state *_state); void serializecomplex(ae_serializer* s, ae_complex v, ae_state *_state); ae_complex unserializecomplex(ae_serializer* s, ae_state *_state); void allocrealarray(ae_serializer* s, /* Real */ ae_vector* v, ae_int_t n, ae_state *_state); void serializerealarray(ae_serializer* s, /* Real */ ae_vector* v, ae_int_t n, ae_state *_state); void unserializerealarray(ae_serializer* s, /* Real */ ae_vector* v, ae_state *_state); void allocintegerarray(ae_serializer* s, /* Integer */ ae_vector* v, ae_int_t n, ae_state *_state); void serializeintegerarray(ae_serializer* s, /* Integer */ ae_vector* v, ae_int_t n, ae_state *_state); void unserializeintegerarray(ae_serializer* s, /* Integer */ ae_vector* v, ae_state *_state); void allocrealmatrix(ae_serializer* s, /* Real */ ae_matrix* v, ae_int_t n0, ae_int_t n1, ae_state *_state); void serializerealmatrix(ae_serializer* s, /* Real */ ae_matrix* v, ae_int_t n0, ae_int_t n1, ae_state *_state); void unserializerealmatrix(ae_serializer* s, /* Real */ ae_matrix* v, ae_state *_state); void copyintegerarray(/* Integer */ ae_vector* src, /* Integer */ ae_vector* dst, ae_state *_state); void copyrealarray(/* Real */ ae_vector* src, /* Real */ ae_vector* dst, ae_state *_state); void copyrealmatrix(/* Real */ ae_matrix* src, /* Real */ ae_matrix* dst, ae_state *_state); ae_int_t recsearch(/* Integer */ ae_vector* a, ae_int_t nrec, ae_int_t nheader, ae_int_t i0, ae_int_t i1, /* Integer */ ae_vector* b, ae_state *_state); void splitlengtheven(ae_int_t tasksize, ae_int_t* task0, ae_int_t* task1, ae_state *_state); void splitlength(ae_int_t tasksize, ae_int_t chunksize, ae_int_t* task0, ae_int_t* task1, ae_state *_state); ae_bool _apbuffers_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _apbuffers_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _apbuffers_clear(void* _p); void _apbuffers_destroy(void* _p); ae_bool _sboolean_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _sboolean_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _sboolean_clear(void* _p); void _sboolean_destroy(void* _p); ae_bool _sbooleanarray_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _sbooleanarray_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _sbooleanarray_clear(void* _p); void _sbooleanarray_destroy(void* _p); ae_bool _sinteger_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _sinteger_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _sinteger_clear(void* _p); void _sinteger_destroy(void* _p); ae_bool _sintegerarray_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _sintegerarray_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _sintegerarray_clear(void* _p); void _sintegerarray_destroy(void* _p); ae_bool _sreal_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _sreal_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _sreal_clear(void* _p); void _sreal_destroy(void* _p); ae_bool _srealarray_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _srealarray_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _srealarray_clear(void* _p); void _srealarray_destroy(void* _p); ae_bool _scomplex_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _scomplex_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _scomplex_clear(void* _p); void _scomplex_destroy(void* _p); ae_bool _scomplexarray_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _scomplexarray_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _scomplexarray_clear(void* _p); void _scomplexarray_destroy(void* _p); ae_int_t getrdfserializationcode(ae_state *_state); ae_int_t getkdtreeserializationcode(ae_state *_state); ae_int_t getmlpserializationcode(ae_state *_state); ae_int_t getmlpeserializationcode(ae_state *_state); ae_int_t getrbfserializationcode(ae_state *_state); void tagsort(/* Real */ ae_vector* a, ae_int_t n, /* Integer */ ae_vector* p1, /* Integer */ ae_vector* p2, ae_state *_state); void tagsortbuf(/* Real */ ae_vector* a, ae_int_t n, /* Integer */ ae_vector* p1, /* Integer */ ae_vector* p2, apbuffers* buf, ae_state *_state); void tagsortfasti(/* Real */ ae_vector* a, /* Integer */ ae_vector* b, /* Real */ ae_vector* bufa, /* Integer */ ae_vector* bufb, ae_int_t n, ae_state *_state); void tagsortfastr(/* Real */ ae_vector* a, /* Real */ ae_vector* b, /* Real */ ae_vector* bufa, /* Real */ ae_vector* bufb, ae_int_t n, ae_state *_state); void tagsortfast(/* Real */ ae_vector* a, /* Real */ ae_vector* bufa, ae_int_t n, ae_state *_state); void tagsortmiddleir(/* Integer */ ae_vector* a, /* Real */ ae_vector* b, ae_int_t offset, ae_int_t n, ae_state *_state); void tagheappushi(/* Real */ ae_vector* a, /* Integer */ ae_vector* b, ae_int_t* n, double va, ae_int_t vb, ae_state *_state); void tagheapreplacetopi(/* Real */ ae_vector* a, /* Integer */ ae_vector* b, ae_int_t n, double va, ae_int_t vb, ae_state *_state); void tagheappopi(/* Real */ ae_vector* a, /* Integer */ ae_vector* b, ae_int_t* n, ae_state *_state); ae_int_t lowerbound(/* Real */ ae_vector* a, ae_int_t n, double t, ae_state *_state); ae_int_t upperbound(/* Real */ ae_vector* a, ae_int_t n, double t, ae_state *_state); void rankx(/* Real */ ae_vector* x, ae_int_t n, ae_bool iscentered, apbuffers* buf, ae_state *_state); ae_bool cmatrixrank1f(ae_int_t m, ae_int_t n, /* Complex */ ae_matrix* a, ae_int_t ia, ae_int_t ja, /* Complex */ ae_vector* u, ae_int_t iu, /* Complex */ ae_vector* v, ae_int_t iv, ae_state *_state); ae_bool rmatrixrank1f(ae_int_t m, ae_int_t n, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, /* Real */ ae_vector* u, ae_int_t iu, /* Real */ ae_vector* v, ae_int_t iv, ae_state *_state); ae_bool cmatrixmvf(ae_int_t m, ae_int_t n, /* Complex */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t opa, /* Complex */ ae_vector* x, ae_int_t ix, /* Complex */ ae_vector* y, ae_int_t iy, ae_state *_state); ae_bool rmatrixmvf(ae_int_t m, ae_int_t n, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t opa, /* Real */ ae_vector* x, ae_int_t ix, /* Real */ ae_vector* y, ae_int_t iy, ae_state *_state); ae_bool cmatrixrighttrsmf(ae_int_t m, ae_int_t n, /* Complex */ ae_matrix* a, ae_int_t i1, ae_int_t j1, ae_bool isupper, ae_bool isunit, ae_int_t optype, /* Complex */ ae_matrix* x, ae_int_t i2, ae_int_t j2, ae_state *_state); ae_bool cmatrixlefttrsmf(ae_int_t m, ae_int_t n, /* Complex */ ae_matrix* a, ae_int_t i1, ae_int_t j1, ae_bool isupper, ae_bool isunit, ae_int_t optype, /* Complex */ ae_matrix* x, ae_int_t i2, ae_int_t j2, ae_state *_state); ae_bool rmatrixrighttrsmf(ae_int_t m, ae_int_t n, /* Real */ ae_matrix* a, ae_int_t i1, ae_int_t j1, ae_bool isupper, ae_bool isunit, ae_int_t optype, /* Real */ ae_matrix* x, ae_int_t i2, ae_int_t j2, ae_state *_state); ae_bool rmatrixlefttrsmf(ae_int_t m, ae_int_t n, /* Real */ ae_matrix* a, ae_int_t i1, ae_int_t j1, ae_bool isupper, ae_bool isunit, ae_int_t optype, /* Real */ ae_matrix* x, ae_int_t i2, ae_int_t j2, ae_state *_state); ae_bool cmatrixsyrkf(ae_int_t n, ae_int_t k, double alpha, /* Complex */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, double beta, /* Complex */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_bool isupper, ae_state *_state); ae_bool rmatrixsyrkf(ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_bool isupper, ae_state *_state); ae_bool rmatrixgemmf(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, ae_int_t optypeb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); ae_bool cmatrixgemmf(ae_int_t m, ae_int_t n, ae_int_t k, ae_complex alpha, /* Complex */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, /* Complex */ ae_matrix* b, ae_int_t ib, ae_int_t jb, ae_int_t optypeb, ae_complex beta, /* Complex */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); void cmatrixgemmk(ae_int_t m, ae_int_t n, ae_int_t k, ae_complex alpha, /* Complex */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, /* Complex */ ae_matrix* b, ae_int_t ib, ae_int_t jb, ae_int_t optypeb, ae_complex beta, /* Complex */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); void rmatrixgemmk(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, ae_int_t optypeb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); void rmatrixgemmk44v00(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); void rmatrixgemmk44v01(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); void rmatrixgemmk44v10(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); void rmatrixgemmk44v11(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); ae_bool rmatrixsyrkmkl(ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_bool isupper, ae_state *_state); ae_bool rmatrixgemmmkl(ae_int_t m, ae_int_t n, ae_int_t k, double alpha, /* Real */ ae_matrix* a, ae_int_t ia, ae_int_t ja, ae_int_t optypea, /* Real */ ae_matrix* b, ae_int_t ib, ae_int_t jb, ae_int_t optypeb, double beta, /* Real */ ae_matrix* c, ae_int_t ic, ae_int_t jc, ae_state *_state); double vectornorm2(/* Real */ ae_vector* x, ae_int_t i1, ae_int_t i2, ae_state *_state); ae_int_t vectoridxabsmax(/* Real */ ae_vector* x, ae_int_t i1, ae_int_t i2, ae_state *_state); ae_int_t columnidxabsmax(/* Real */ ae_matrix* x, ae_int_t i1, ae_int_t i2, ae_int_t j, ae_state *_state); ae_int_t rowidxabsmax(/* Real */ ae_matrix* x, ae_int_t j1, ae_int_t j2, ae_int_t i, ae_state *_state); double upperhessenberg1norm(/* Real */ ae_matrix* a, ae_int_t i1, ae_int_t i2, ae_int_t j1, ae_int_t j2, /* Real */ ae_vector* work, ae_state *_state); void copymatrix(/* Real */ ae_matrix* a, ae_int_t is1, ae_int_t is2, ae_int_t js1, ae_int_t js2, /* Real */ ae_matrix* b, ae_int_t id1, ae_int_t id2, ae_int_t jd1, ae_int_t jd2, ae_state *_state); void inplacetranspose(/* Real */ ae_matrix* a, ae_int_t i1, ae_int_t i2, ae_int_t j1, ae_int_t j2, /* Real */ ae_vector* work, ae_state *_state); void copyandtranspose(/* Real */ ae_matrix* a, ae_int_t is1, ae_int_t is2, ae_int_t js1, ae_int_t js2, /* Real */ ae_matrix* b, ae_int_t id1, ae_int_t id2, ae_int_t jd1, ae_int_t jd2, ae_state *_state); void matrixvectormultiply(/* Real */ ae_matrix* a, ae_int_t i1, ae_int_t i2, ae_int_t j1, ae_int_t j2, ae_bool trans, /* Real */ ae_vector* x, ae_int_t ix1, ae_int_t ix2, double alpha, /* Real */ ae_vector* y, ae_int_t iy1, ae_int_t iy2, double beta, ae_state *_state); double pythag2(double x, double y, ae_state *_state); void matrixmatrixmultiply(/* Real */ ae_matrix* a, ae_int_t ai1, ae_int_t ai2, ae_int_t aj1, ae_int_t aj2, ae_bool transa, /* Real */ ae_matrix* b, ae_int_t bi1, ae_int_t bi2, ae_int_t bj1, ae_int_t bj2, ae_bool transb, double alpha, /* Real */ ae_matrix* c, ae_int_t ci1, ae_int_t ci2, ae_int_t cj1, ae_int_t cj2, double beta, /* Real */ ae_vector* work, ae_state *_state); void hermitianmatrixvectormultiply(/* Complex */ ae_matrix* a, ae_bool isupper, ae_int_t i1, ae_int_t i2, /* Complex */ ae_vector* x, ae_complex alpha, /* Complex */ ae_vector* y, ae_state *_state); void hermitianrank2update(/* Complex */ ae_matrix* a, ae_bool isupper, ae_int_t i1, ae_int_t i2, /* Complex */ ae_vector* x, /* Complex */ ae_vector* y, /* Complex */ ae_vector* t, ae_complex alpha, ae_state *_state); void generatereflection(/* Real */ ae_vector* x, ae_int_t n, double* tau, ae_state *_state); void applyreflectionfromtheleft(/* Real */ ae_matrix* c, double tau, /* Real */ ae_vector* v, ae_int_t m1, ae_int_t m2, ae_int_t n1, ae_int_t n2, /* Real */ ae_vector* work, ae_state *_state); void applyreflectionfromtheright(/* Real */ ae_matrix* c, double tau, /* Real */ ae_vector* v, ae_int_t m1, ae_int_t m2, ae_int_t n1, ae_int_t n2, /* Real */ ae_vector* work, ae_state *_state); void complexgeneratereflection(/* Complex */ ae_vector* x, ae_int_t n, ae_complex* tau, ae_state *_state); void complexapplyreflectionfromtheleft(/* Complex */ ae_matrix* c, ae_complex tau, /* Complex */ ae_vector* v, ae_int_t m1, ae_int_t m2, ae_int_t n1, ae_int_t n2, /* Complex */ ae_vector* work, ae_state *_state); void complexapplyreflectionfromtheright(/* Complex */ ae_matrix* c, ae_complex tau, /* Complex */ ae_vector* v, ae_int_t m1, ae_int_t m2, ae_int_t n1, ae_int_t n2, /* Complex */ ae_vector* work, ae_state *_state); void symmetricmatrixvectormultiply(/* Real */ ae_matrix* a, ae_bool isupper, ae_int_t i1, ae_int_t i2, /* Real */ ae_vector* x, double alpha, /* Real */ ae_vector* y, ae_state *_state); void symmetricrank2update(/* Real */ ae_matrix* a, ae_bool isupper, ae_int_t i1, ae_int_t i2, /* Real */ ae_vector* x, /* Real */ ae_vector* y, /* Real */ ae_vector* t, double alpha, ae_state *_state); void applyrotationsfromtheleft(ae_bool isforward, ae_int_t m1, ae_int_t m2, ae_int_t n1, ae_int_t n2, /* Real */ ae_vector* c, /* Real */ ae_vector* s, /* Real */ ae_matrix* a, /* Real */ ae_vector* work, ae_state *_state); void applyrotationsfromtheright(ae_bool isforward, ae_int_t m1, ae_int_t m2, ae_int_t n1, ae_int_t n2, /* Real */ ae_vector* c, /* Real */ ae_vector* s, /* Real */ ae_matrix* a, /* Real */ ae_vector* work, ae_state *_state); void generaterotation(double f, double g, double* cs, double* sn, double* r, ae_state *_state); ae_bool upperhessenbergschurdecomposition(/* Real */ ae_matrix* h, ae_int_t n, /* Real */ ae_matrix* s, ae_state *_state); void internalschurdecomposition(/* Real */ ae_matrix* h, ae_int_t n, ae_int_t tneeded, ae_int_t zneeded, /* Real */ ae_vector* wr, /* Real */ ae_vector* wi, /* Real */ ae_matrix* z, ae_int_t* info, ae_state *_state); void rmatrixtrsafesolve(/* Real */ ae_matrix* a, ae_int_t n, /* Real */ ae_vector* x, double* s, ae_bool isupper, ae_bool istrans, ae_bool isunit, ae_state *_state); void safesolvetriangular(/* Real */ ae_matrix* a, ae_int_t n, /* Real */ ae_vector* x, double* s, ae_bool isupper, ae_bool istrans, ae_bool isunit, ae_bool normin, /* Real */ ae_vector* cnorm, ae_state *_state); ae_bool rmatrixscaledtrsafesolve(/* Real */ ae_matrix* a, double sa, ae_int_t n, /* Real */ ae_vector* x, ae_bool isupper, ae_int_t trans, ae_bool isunit, double maxgrowth, ae_state *_state); ae_bool cmatrixscaledtrsafesolve(/* Complex */ ae_matrix* a, double sa, ae_int_t n, /* Complex */ ae_vector* x, ae_bool isupper, ae_int_t trans, ae_bool isunit, double maxgrowth, ae_state *_state); void hpcpreparechunkedgradient(/* Real */ ae_vector* weights, ae_int_t wcount, ae_int_t ntotal, ae_int_t nin, ae_int_t nout, mlpbuffers* buf, ae_state *_state); void hpcfinalizechunkedgradient(mlpbuffers* buf, /* Real */ ae_vector* grad, ae_state *_state); ae_bool hpcchunkedgradient(/* Real */ ae_vector* weights, /* Integer */ ae_vector* structinfo, /* Real */ ae_vector* columnmeans, /* Real */ ae_vector* columnsigmas, /* Real */ ae_matrix* xy, ae_int_t cstart, ae_int_t csize, /* Real */ ae_vector* batch4buf, /* Real */ ae_vector* hpcbuf, double* e, ae_bool naturalerrorfunc, ae_state *_state); ae_bool hpcchunkedprocess(/* Real */ ae_vector* weights, /* Integer */ ae_vector* structinfo, /* Real */ ae_vector* columnmeans, /* Real */ ae_vector* columnsigmas, /* Real */ ae_matrix* xy, ae_int_t cstart, ae_int_t csize, /* Real */ ae_vector* batch4buf, /* Real */ ae_vector* hpcbuf, ae_state *_state); ae_bool _mlpbuffers_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _mlpbuffers_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _mlpbuffers_clear(void* _p); void _mlpbuffers_destroy(void* _p); void xdot(/* Real */ ae_vector* a, /* Real */ ae_vector* b, ae_int_t n, /* Real */ ae_vector* temp, double* r, double* rerr, ae_state *_state); void xcdot(/* Complex */ ae_vector* a, /* Complex */ ae_vector* b, ae_int_t n, /* Real */ ae_vector* temp, ae_complex* r, double* rerr, ae_state *_state); void linminnormalized(/* Real */ ae_vector* d, double* stp, ae_int_t n, ae_state *_state); void mcsrch(ae_int_t n, /* Real */ ae_vector* x, double* f, /* Real */ ae_vector* g, /* Real */ ae_vector* s, double* stp, double stpmax, double gtol, ae_int_t* info, ae_int_t* nfev, /* Real */ ae_vector* wa, linminstate* state, ae_int_t* stage, ae_state *_state); void armijocreate(ae_int_t n, /* Real */ ae_vector* x, double f, /* Real */ ae_vector* s, double stp, double stpmax, ae_int_t fmax, armijostate* state, ae_state *_state); ae_bool armijoiteration(armijostate* state, ae_state *_state); void armijoresults(armijostate* state, ae_int_t* info, double* stp, double* f, ae_state *_state); ae_bool _linminstate_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _linminstate_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _linminstate_clear(void* _p); void _linminstate_destroy(void* _p); ae_bool _armijostate_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _armijostate_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _armijostate_clear(void* _p); void _armijostate_destroy(void* _p); void findprimitiverootandinverse(ae_int_t n, ae_int_t* proot, ae_int_t* invproot, ae_state *_state); void ftcomplexfftplan(ae_int_t n, ae_int_t k, fasttransformplan* plan, ae_state *_state); void ftapplyplan(fasttransformplan* plan, /* Real */ ae_vector* a, ae_int_t offsa, ae_int_t repcnt, ae_state *_state); void ftbasefactorize(ae_int_t n, ae_int_t tasktype, ae_int_t* n1, ae_int_t* n2, ae_state *_state); ae_bool ftbaseissmooth(ae_int_t n, ae_state *_state); ae_int_t ftbasefindsmooth(ae_int_t n, ae_state *_state); ae_int_t ftbasefindsmootheven(ae_int_t n, ae_state *_state); double ftbasegetflopestimate(ae_int_t n, ae_state *_state); ae_bool _fasttransformplan_init(void* _p, ae_state *_state, ae_bool make_automatic); ae_bool _fasttransformplan_init_copy(void* _dst, void* _src, ae_state *_state, ae_bool make_automatic); void _fasttransformplan_clear(void* _p); void _fasttransformplan_destroy(void* _p); double nulog1p(double x, ae_state *_state); double nuexpm1(double x, ae_state *_state); double nucosm1(double x, ae_state *_state); } #endif