mirror of
https://asciireactor.com/otho/psdlag-agn.git
synced 2024-11-24 06:45:06 +00:00
1075 lines
30 KiB
C++
1075 lines
30 KiB
C++
/*************************************************************************
|
|
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
|
|
|