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,137 @@
|
|
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_fma_h
|
21
|
+
#define _kernels_fma_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_fma(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_fma(const ae_int_t n,
|
38
|
+
/* Real */ const double* __restrict x,
|
39
|
+
const ae_state* __restrict _state);
|
40
|
+
void raddv_fma(const ae_int_t n,
|
41
|
+
const double alpha,
|
42
|
+
/* Real */ const double* __restrict y,
|
43
|
+
/* Real */ double* __restrict x,
|
44
|
+
const ae_state* __restrict _state);
|
45
|
+
void raddvx_fma(const ae_int_t n, const double alpha, const double* __restrict y, double* __restrict x, ae_state *_state);
|
46
|
+
void rmuladdv_fma(const ae_int_t n,
|
47
|
+
const double* __restrict y,
|
48
|
+
const double* __restrict z,
|
49
|
+
double* __restrict x,
|
50
|
+
const ae_state* _state);
|
51
|
+
void rnegmuladdv_fma(const ae_int_t n,
|
52
|
+
const double* __restrict y,
|
53
|
+
const double* __restrict z,
|
54
|
+
double* __restrict x,
|
55
|
+
const ae_state* _state);
|
56
|
+
void rcopymuladdv_fma(const ae_int_t n,
|
57
|
+
const double* __restrict y,
|
58
|
+
const double* __restrict z,
|
59
|
+
const double* __restrict x,
|
60
|
+
double* __restrict r,
|
61
|
+
const ae_state* _state);
|
62
|
+
void rcopynegmuladdv_fma(const ae_int_t n,
|
63
|
+
const double* __restrict y,
|
64
|
+
const double* __restrict z,
|
65
|
+
const double* __restrict x,
|
66
|
+
double* __restrict r,
|
67
|
+
const ae_state* _state);
|
68
|
+
void rgemv_straight_fma(const ae_int_t m, const ae_int_t n,
|
69
|
+
const double alpha, const ae_matrix* __restrict a,
|
70
|
+
const double* __restrict x, double* __restrict y, ae_state* _state);
|
71
|
+
void rgemv_transposed_fma(const ae_int_t m, const ae_int_t n,
|
72
|
+
const double alpha, const ae_matrix* __restrict a,
|
73
|
+
const double* __restrict x, double* __restrict y, ae_state* _state);
|
74
|
+
void rgemvx_straight_fma(const ae_int_t m, const ae_int_t n,
|
75
|
+
const double alpha, const ae_matrix* __restrict a, const ae_int_t ia,
|
76
|
+
const ae_int_t ja, const double* __restrict x,
|
77
|
+
double* __restrict y, ae_state* _state);
|
78
|
+
void rgemvx_transposed_fma(const ae_int_t m, const ae_int_t n,
|
79
|
+
const double alpha, const ae_matrix* __restrict a, const ae_int_t ia,
|
80
|
+
const ae_int_t ja, const double* __restrict x, double* __restrict y,
|
81
|
+
ae_state* _state);
|
82
|
+
|
83
|
+
void ablasf_dotblkh_fma(
|
84
|
+
const double *src_a,
|
85
|
+
const double *src_b,
|
86
|
+
ae_int_t round_length,
|
87
|
+
ae_int_t block_size,
|
88
|
+
ae_int_t micro_size,
|
89
|
+
double *dst,
|
90
|
+
ae_int_t dst_stride);
|
91
|
+
void spchol_propagatefwd_fma(/* Real */ const ae_vector* x,
|
92
|
+
ae_int_t cols0,
|
93
|
+
ae_int_t blocksize,
|
94
|
+
/* Integer */ const ae_vector* superrowidx,
|
95
|
+
ae_int_t rbase,
|
96
|
+
ae_int_t offdiagsize,
|
97
|
+
/* Real */ const ae_vector* rowstorage,
|
98
|
+
ae_int_t offss,
|
99
|
+
ae_int_t sstride,
|
100
|
+
/* Real */ ae_vector* simdbuf,
|
101
|
+
ae_int_t simdwidth,
|
102
|
+
ae_state *_state);
|
103
|
+
ae_bool spchol_updatekernelabc4_fma(double* rowstorage,
|
104
|
+
ae_int_t offss,
|
105
|
+
ae_int_t twidth,
|
106
|
+
ae_int_t offsu,
|
107
|
+
ae_int_t uheight,
|
108
|
+
ae_int_t urank,
|
109
|
+
ae_int_t urowstride,
|
110
|
+
ae_int_t uwidth,
|
111
|
+
const double* diagd,
|
112
|
+
ae_int_t offsd,
|
113
|
+
const ae_int_t* raw2smap,
|
114
|
+
const ae_int_t* superrowidx,
|
115
|
+
ae_int_t urbase,
|
116
|
+
ae_state *_state);
|
117
|
+
ae_bool spchol_updatekernel4444_fma(
|
118
|
+
double* rowstorage,
|
119
|
+
ae_int_t offss,
|
120
|
+
ae_int_t sheight,
|
121
|
+
ae_int_t offsu,
|
122
|
+
ae_int_t uheight,
|
123
|
+
const double* diagd,
|
124
|
+
ae_int_t offsd,
|
125
|
+
const ae_int_t* raw2smap,
|
126
|
+
const ae_int_t* superrowidx,
|
127
|
+
ae_int_t urbase,
|
128
|
+
ae_state *_state);
|
129
|
+
|
130
|
+
|
131
|
+
/* ALGLIB_NO_FAST_KERNELS, _ALGLIB_HAS_AVX2_INTRINSICS */
|
132
|
+
#endif
|
133
|
+
|
134
|
+
}
|
135
|
+
|
136
|
+
#endif
|
137
|
+
|