16#ifndef TRUSTArray_tools_TPP_included
17#define TRUSTArray_tools_TPP_included
24template <
typename _TYPE_,
typename _SIZE_>
30 if (n != na)
return false;
34 const _TYPE_ * vv = v.
addr();
35 const _TYPE_ * av = a.
addr();
36 for (_SIZE_ i = 0; i < n; i++)
47 _SIZE_ indice_min = -1;
52 _TYPE_ valeur_min = dx[0];
53 for (_SIZE_ i = 1; i < size; i++)
55 const _TYPE_ val = dx[i];
71 _SIZE_ indice_max = -1;
76 _TYPE_ valeur_max = dx[0];
77 for (_SIZE_ i = 1; i < size; i++)
79 const _TYPE_ val = dx[i];
93template <
typename _TYPE_,
typename _SIZE_>
98 _TYPE_ valeur_min = dx[0];
99 for (_SIZE_ i = 1; i < size; i++)
101 const _TYPE_ val = dx[i];
102 if (val < valeur_min) valeur_min = val;
110template <
typename _TYPE_,
typename _SIZE_>
115 _TYPE_ valeur_max = dx[0];
116 for (_SIZE_ i = 1; i < size; i++)
118 const _TYPE_ val = dx[i];
119 if (val > valeur_max) valeur_max = val;
127template <
typename _TYPE_>
128inline _TYPE_ scalar_abs(_TYPE_ x)
130 constexpr bool IS_INT = std::is_integral<_TYPE_>::value;
131 return IS_INT ? std::abs(x) : std::fabs(x);
137template <
typename _TYPE_,
typename _SIZE_>
142 _TYPE_ valeur_max = ::scalar_abs(dx[0]);
143 for(_SIZE_ i = 1; i < size; i++)
145 const _TYPE_ val = ::scalar_abs(dx[i]);
146 if (val > valeur_max) valeur_max = val;
154template <
typename _TYPE_,
typename _SIZE_>
159 _TYPE_ v = ::scalar_abs(dx[0]);
160 for(_SIZE_ i = 1; i < size; i++)
162 const _TYPE_ val = ::scalar_abs(dx[i]);
163 if (val < v) v = val;
171template <
typename _TYPE_,
typename _SIZE_>
176 _TYPE_ resultat = 0.;
183 resultat = F77NAME(DDOT)(&n, dx.
addr(), &incx, dy.
addr(), &incx);
192template <
typename _TYPE_,
typename _SIZE_>
196 _TYPE_ resultat = 0.;
201 resultat = F77NAME(DNRM2)(&n, &dx[0], &incx);
Represents a an array of int/int64/double/... values.
_SIZE_ size_array() const