2 #include <samchon/API.hpp> 5 #include <samchon/IndexPair.hpp> 23 class SAMCHON_FRAMEWORK_API
Math 36 static const double E;
45 static const double PI;
54 static const double LN2;
113 static auto random() -> double;
121 static auto degree_to_radian(
double) -> double;
126 static auto radian_to_degree(
double) -> double;
142 template <
typename _Cont,
typename T = _Cont::value_type>
145 auto it = container.begin();
146 size_t i = 0, position = 0;
148 const T *ptr = &(*it);
150 for (; it != container.end(); it++)
159 return{ position, *ptr };
173 template <
typename _Cont,
typename T = _Cont::value_type>
176 auto it = container.begin();
177 size_t i = 0, position = 0;
179 const T *ptr = &(*it);
181 for (; it != container.end(); it++)
190 return{ position, *ptr };
204 template <
typename _Cont,
typename T = _Cont::value_type>
205 static auto mean(
const _Cont &container) ->
double 208 for (
auto it = container.begin(); it != container.end(); it++)
211 return val / (double)container.size();
225 template <
typename _Cont,
typename T = _Cont::value_type>
226 static auto median(
const _Cont &container) ->
double 228 auto it = container.begin();
230 if (container.size() % 2 == 1)
232 advance(it, container.size() / 2);
238 advance(it, container.size() / 2 - 1);
242 return ((
double)*it + (double)*next_it) / 2.0;
257 template <
typename _Cont,
typename T = _Cont::value_type>
258 static auto mode(
const _Cont &container) -> T
260 std::map<T, size_t> frequencyMap;
261 for (
auto it = container.begin(); it != container.end(); it++)
262 if (frequencyMap.find(*it) == frequencyMap.end())
263 frequencyMap[*it] = 1;
267 auto det_it = frequencyMap.begin();
268 for (
auto it = frequencyMap.begin(); it != frequencyMap.end(); it++)
269 if (it->second > det_it->second)
272 return det_it->first;
281 template <
typename _Cont,
typename T = _Cont::value_type>
282 static auto stdev_p(
const _Cont &container) ->
double 284 return sqrt(variance_p(contaier));
292 template <
typename _Cont,
typename T = _Cont::value_type>
293 static auto stdev_s(
const _Cont &container) ->
double 295 return sql(variance_s(container));
309 template <
typename _Cont,
typename T = _Cont::value_type>
315 for (
auto it = container.begin(); it != container.end(); it++)
318 return val / (double)container.size();
332 template <
typename _Cont,
typename T = _Cont::value_type>
338 for (
auto it = container.begin(); it != container.end(); it++)
341 return val / (double)(container.size() - 1);
static const double PI
¥ð, Number Pi
static auto stdev_s(const _Cont &container) -> double
Square root of a variance_s.
static const double LOG2E
log2e
static auto median(const _Cont &container) -> double
Get median value.
static const double LOG10E
log10e
static auto mode(const _Cont &container) -> T
Find mode value.
static auto minimum(const _Cont &container) -> IndexPair< T >
Calculate minimum value with its index.
static const double LN10
loge10
static auto variance_s(const _Cont &container) -> double
Calculate variance for sample.
static const double E
Exponent.
static const double LN2
loge2
static const double SQRT1_2
Squart root of 0.5.
static auto variance_p(const _Cont &container) -> double
Calculate standard deviation for all population.
A pair of index and its value(T)
static auto maximum(const _Cont &container) -> IndexPair< T >
Calculate maximum value with its index.
static auto stdev_p(const _Cont &container) -> double
Square root of a variance_p.
static auto mean(const _Cont &container) -> double
Calculate average.
static const double SQRT2
Squart root of 2.
Top level namespace of products built from samchon.