alglib4 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +47 -0
- data/ext/alglib/alglib.cpp +537 -0
- data/ext/alglib/alglib_array_converters.cpp +86 -0
- data/ext/alglib/alglib_array_converters.h +15 -0
- data/ext/alglib/alglib_utils.cpp +10 -0
- data/ext/alglib/alglib_utils.h +6 -0
- data/ext/alglib/alglibinternal.cpp +21749 -0
- data/ext/alglib/alglibinternal.h +2168 -0
- data/ext/alglib/alglibmisc.cpp +9106 -0
- data/ext/alglib/alglibmisc.h +2114 -0
- data/ext/alglib/ap.cpp +20094 -0
- data/ext/alglib/ap.h +7244 -0
- data/ext/alglib/dataanalysis.cpp +52588 -0
- data/ext/alglib/dataanalysis.h +10601 -0
- data/ext/alglib/diffequations.cpp +1342 -0
- data/ext/alglib/diffequations.h +282 -0
- data/ext/alglib/extconf.rb +5 -0
- data/ext/alglib/fasttransforms.cpp +4696 -0
- data/ext/alglib/fasttransforms.h +1018 -0
- data/ext/alglib/integration.cpp +4249 -0
- data/ext/alglib/integration.h +869 -0
- data/ext/alglib/interpolation.cpp +74502 -0
- data/ext/alglib/interpolation.h +12264 -0
- data/ext/alglib/kernels_avx2.cpp +2171 -0
- data/ext/alglib/kernels_avx2.h +201 -0
- data/ext/alglib/kernels_fma.cpp +1065 -0
- data/ext/alglib/kernels_fma.h +137 -0
- data/ext/alglib/kernels_sse2.cpp +735 -0
- data/ext/alglib/kernels_sse2.h +100 -0
- data/ext/alglib/linalg.cpp +65182 -0
- data/ext/alglib/linalg.h +9927 -0
- data/ext/alglib/optimization.cpp +135331 -0
- data/ext/alglib/optimization.h +19235 -0
- data/ext/alglib/solvers.cpp +20488 -0
- data/ext/alglib/solvers.h +4781 -0
- data/ext/alglib/specialfunctions.cpp +10672 -0
- data/ext/alglib/specialfunctions.h +2305 -0
- data/ext/alglib/statistics.cpp +19791 -0
- data/ext/alglib/statistics.h +1359 -0
- data/ext/alglib/stdafx.h +2 -0
- data/gpl2.txt +339 -0
- data/gpl3.txt +674 -0
- data/lib/alglib/version.rb +3 -0
- data/lib/alglib.rb +4 -0
- metadata +101 -0
@@ -0,0 +1,201 @@
|
|
1
|
+
/*************************************************************************
|
2
|
+
ALGLIB 4.04.0 (source code generated 2024-12-21)
|
3
|
+
Copyright (c) Sergey Bochkanov (ALGLIB project).
|
4
|
+
|
5
|
+
>>> SOURCE LICENSE >>>
|
6
|
+
This program is free software; you can redistribute it and/or modify
|
7
|
+
it under the terms of the GNU General Public License as published by
|
8
|
+
the Free Software Foundation (www.fsf.org); either version 2 of the
|
9
|
+
License, or (at your option) any later version.
|
10
|
+
|
11
|
+
This program is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
GNU General Public License for more details.
|
15
|
+
|
16
|
+
A copy of the GNU General Public License is available at
|
17
|
+
http://www.fsf.org/licensing/licenses
|
18
|
+
>>> END OF LICENSE >>>
|
19
|
+
*************************************************************************/
|
20
|
+
#ifndef _kernels_avx2_h
|
21
|
+
#define _kernels_avx2_h
|
22
|
+
|
23
|
+
#include "ap.h"
|
24
|
+
|
25
|
+
#define AE_USE_CPP
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
namespace alglib_impl
|
30
|
+
{
|
31
|
+
#if !defined(ALGLIB_NO_FAST_KERNELS) && defined(_ALGLIB_HAS_AVX2_INTRINSICS)
|
32
|
+
|
33
|
+
double rdotv_avx2(const ae_int_t n,
|
34
|
+
/* Real */ const double* __restrict x,
|
35
|
+
/* Real */ const double* __restrict y,
|
36
|
+
const ae_state* __restrict _state);
|
37
|
+
double rdotv2_avx2(const ae_int_t n,
|
38
|
+
/* Real */ const double* __restrict x,
|
39
|
+
const ae_state* __restrict _state);
|
40
|
+
void rcopyv_avx2(ae_int_t n,
|
41
|
+
/* Real */ const double* __restrict x,
|
42
|
+
/* Real */ double* __restrict y,
|
43
|
+
ae_state* __restrict _state);
|
44
|
+
void rcopymulv_avx2(const ae_int_t n,
|
45
|
+
const double v,
|
46
|
+
/* Real */ const double* __restrict x,
|
47
|
+
/* Real */ double* __restrict y,
|
48
|
+
const ae_state* __restrict _state);
|
49
|
+
void icopyv_avx2(const ae_int_t n, const ae_int_t* __restrict x,
|
50
|
+
ae_int_t* __restrict y, ae_state* __restrict _state);
|
51
|
+
void bcopyv_avx2(const ae_int_t n, const ae_bool* __restrict x,
|
52
|
+
ae_bool* __restrict y, ae_state* __restrict _state);
|
53
|
+
void rsetv_avx2(const ae_int_t n,
|
54
|
+
const double v,
|
55
|
+
/* Real */ double* __restrict x,
|
56
|
+
const ae_state* __restrict _state);
|
57
|
+
void rsetvx_avx2(const ae_int_t n, const double v, double* __restrict x,
|
58
|
+
const ae_state* __restrict _state);
|
59
|
+
void isetv_avx2(const ae_int_t n, const ae_int_t v,
|
60
|
+
ae_int_t* __restrict x, ae_state* __restrict _state);
|
61
|
+
void bsetv_avx2(const ae_int_t n, const ae_bool v, ae_bool* __restrict x,
|
62
|
+
ae_state* __restrict _state);
|
63
|
+
void rmulv_avx2(const ae_int_t n, const double v, double* __restrict x,
|
64
|
+
const ae_state* __restrict _state);
|
65
|
+
void rsqrtv_avx2(const ae_int_t n, double* __restrict x, const ae_state* __restrict _state);
|
66
|
+
void rmulvx_avx2(const ae_int_t n, const double v, double* __restrict x,
|
67
|
+
const ae_state* __restrict _state);
|
68
|
+
void raddv_avx2(const ae_int_t n,
|
69
|
+
const double alpha,
|
70
|
+
/* Real */ const double* __restrict y,
|
71
|
+
/* Real */ double* __restrict x,
|
72
|
+
const ae_state* __restrict _state);
|
73
|
+
void raddvx_avx2(const ae_int_t n, const double alpha, const double* __restrict y,
|
74
|
+
double* __restrict x, ae_state *_state);
|
75
|
+
void rmergemulv_avx2(ae_int_t n,
|
76
|
+
/* Real */ const double* __restrict y,
|
77
|
+
/* Real */ double* __restrict x,
|
78
|
+
const ae_state* __restrict _state);
|
79
|
+
void rmergedivv_avx2(ae_int_t n,
|
80
|
+
/* Real */ const double* __restrict y,
|
81
|
+
/* Real */ double* __restrict x,
|
82
|
+
const ae_state* __restrict _state);
|
83
|
+
void rmergemaxv_avx2(ae_int_t n,
|
84
|
+
/* Real */ const double* __restrict y,
|
85
|
+
/* Real */ double* __restrict x,
|
86
|
+
ae_state* __restrict _state);
|
87
|
+
void rmergeminv_avx2(ae_int_t n,
|
88
|
+
/* Real */ const double* __restrict y,
|
89
|
+
/* Real */ double* __restrict x,
|
90
|
+
ae_state* __restrict _state);
|
91
|
+
double rmaxv_avx2(ae_int_t n, /* Real */ const double* __restrict x, ae_state* __restrict _state);
|
92
|
+
double rmaxabsv_avx2(ae_int_t n, /* Real */ const double* __restrict x, ae_state* __restrict _state);
|
93
|
+
void rcopyvx_avx2(const ae_int_t n, const double* __restrict x,
|
94
|
+
double* __restrict y, ae_state *_state);
|
95
|
+
void icopyvx_avx2(const ae_int_t n, const ae_int_t* __restrict x,
|
96
|
+
ae_int_t* __restrict y, ae_state* __restrict _state);
|
97
|
+
|
98
|
+
void rgemv_straight_avx2(const ae_int_t m, const ae_int_t n,
|
99
|
+
const double alpha, const ae_matrix* __restrict a,
|
100
|
+
const double* __restrict x, double* __restrict y, ae_state* _state);
|
101
|
+
void rgemv_transposed_avx2(const ae_int_t m, const ae_int_t n,
|
102
|
+
const double alpha, const ae_matrix* __restrict a,
|
103
|
+
const double* __restrict x, double* __restrict y, ae_state* _state);
|
104
|
+
void rgemvx_straight_avx2(const ae_int_t m, const ae_int_t n,
|
105
|
+
const double alpha, const ae_matrix* __restrict a, const ae_int_t ia,
|
106
|
+
const ae_int_t ja, const double* __restrict x,
|
107
|
+
double* __restrict y, ae_state* _state);
|
108
|
+
void rgemvx_transposed_avx2(const ae_int_t m, const ae_int_t n,
|
109
|
+
const double alpha, const ae_matrix* __restrict a, const ae_int_t ia,
|
110
|
+
const ae_int_t ja, const double* __restrict x, double* __restrict y,
|
111
|
+
ae_state* _state);
|
112
|
+
|
113
|
+
ae_int_t ablasf_packblkh_avx2(
|
114
|
+
const double *src,
|
115
|
+
ae_int_t src_stride,
|
116
|
+
ae_int_t op,
|
117
|
+
ae_int_t opsrc_length,
|
118
|
+
ae_int_t opsrc_width,
|
119
|
+
double *dst,
|
120
|
+
ae_int_t block_size,
|
121
|
+
ae_int_t micro_size);
|
122
|
+
ae_int_t ablasf_packblkh32_avx2(
|
123
|
+
const double *src,
|
124
|
+
ae_int_t src_stride,
|
125
|
+
ae_int_t op,
|
126
|
+
ae_int_t ignore_opsrc_length,
|
127
|
+
ae_int_t opsrc_width,
|
128
|
+
double *dst,
|
129
|
+
ae_int_t ignore_block_size,
|
130
|
+
ae_int_t micro_size);
|
131
|
+
void ablasf_dotblkh_avx2(
|
132
|
+
const double *src_a,
|
133
|
+
const double *src_b,
|
134
|
+
ae_int_t round_length,
|
135
|
+
ae_int_t block_size,
|
136
|
+
ae_int_t micro_size,
|
137
|
+
double *dst,
|
138
|
+
ae_int_t dst_stride);
|
139
|
+
void ablasf_daxpby_avx2(
|
140
|
+
ae_int_t n,
|
141
|
+
double alpha,
|
142
|
+
const double *src,
|
143
|
+
double beta,
|
144
|
+
double *dst);
|
145
|
+
ae_bool spchol_updatekernelabc4_avx2(double* rowstorage,
|
146
|
+
ae_int_t offss,
|
147
|
+
ae_int_t twidth,
|
148
|
+
ae_int_t offsu,
|
149
|
+
ae_int_t uheight,
|
150
|
+
ae_int_t urank,
|
151
|
+
ae_int_t urowstride,
|
152
|
+
ae_int_t uwidth,
|
153
|
+
const double* diagd,
|
154
|
+
ae_int_t offsd,
|
155
|
+
const ae_int_t* raw2smap,
|
156
|
+
const ae_int_t* superrowidx,
|
157
|
+
ae_int_t urbase,
|
158
|
+
ae_state *_state);
|
159
|
+
ae_bool spchol_updatekernel4444_avx2(
|
160
|
+
double* rowstorage,
|
161
|
+
ae_int_t offss,
|
162
|
+
ae_int_t sheight,
|
163
|
+
ae_int_t offsu,
|
164
|
+
ae_int_t uheight,
|
165
|
+
const double* diagd,
|
166
|
+
ae_int_t offsd,
|
167
|
+
const ae_int_t* raw2smap,
|
168
|
+
const ae_int_t* superrowidx,
|
169
|
+
ae_int_t urbase,
|
170
|
+
ae_state *_state);
|
171
|
+
ae_bool rbfv3farfields_bhpaneleval1fastkernel16_avx2(double d0,
|
172
|
+
double d1,
|
173
|
+
double d2,
|
174
|
+
const double* pnma,
|
175
|
+
const double* pnmb,
|
176
|
+
const double* pmmcdiag,
|
177
|
+
const double* ynma,
|
178
|
+
const double* tblrmodmn,
|
179
|
+
double* f,
|
180
|
+
double* invpowrpplus1,
|
181
|
+
ae_state *_state);
|
182
|
+
ae_bool rbfv3farfields_bhpanelevalfastkernel16_avx2(double d0,
|
183
|
+
double d1,
|
184
|
+
double d2,
|
185
|
+
ae_int_t ny,
|
186
|
+
const double* pnma,
|
187
|
+
const double* pnmb,
|
188
|
+
const double* pmmcdiag,
|
189
|
+
const double* ynma,
|
190
|
+
const double* tblrmodmn,
|
191
|
+
double* f,
|
192
|
+
double* invpowrpplus1,
|
193
|
+
ae_state *_state);
|
194
|
+
|
195
|
+
/* ALGLIB_NO_FAST_KERNELS, _ALGLIB_HAS_AVX2_INTRINSICS */
|
196
|
+
#endif
|
197
|
+
|
198
|
+
}
|
199
|
+
|
200
|
+
#endif
|
201
|
+
|