21template<
typename Output_ =
double>
60template<
typename Output_ =
double,
typename Input_>
71 for (std::size_t i = 0; i < num_total; ++i) {
72 ptr[i] = (
median == ptr[i] ? 0 : inf_if_available_else_max<Input_>());
76 for (std::size_t i = 0; i < num_total; ++i) {
77 ptr[i] = std::abs(ptr[i] -
median);
83 return ::quickstats::median<Output_>(num_total, ptr, medopt);
113template<
typename Output_ =
double,
typename Input_>
114Output_
mad(
const std::size_t num_total,
const std::size_t num_non_zero, Input_*
const values,
const Input_
median,
const MadOptions<Output_>& options) {
124 for (std::size_t i = 0; i < num_non_zero; ++i) {
125 values[i] = (
median == values[i] ? 0 : inf_if_available_else_max<Input_>());
129 for (std::size_t i = 0; i < num_non_zero; ++i) {
130 values[i] = std::abs(values[i] -
median);
141 return median_internal<Output_>(num_total, num_non_zero, values, std::abs(
median), medopt);
153template<
typename Float_>
162template<
typename Output_ =
double,
typename Input_>
163Output_
mad(
const std::size_t num_total, Input_*
const ptr,
const Input_
median) {
164 return mad(num_total, ptr,
median, MadOptions<Output_>());
167template<
typename Output_ =
double,
typename Input_>
168Output_
mad(
const std::size_t num_total,
const std::size_t num_non_zero, Input_*
const values,
const Input_
median) {
169 return mad(num_total, num_non_zero, values,
median, MadOptions<Output_>());
172template<
typename Output_ =
double,
typename Input_>
173Output_ mad_with_infinities(
const std::size_t num_total, Input_*
const ptr,
const Input_
median) {
174 MadOptions<Output_> opt;
175 opt.difference_between_infinities_is_zero =
true;
179template<
typename Output_ =
double,
typename Input_>
180Output_ mad_with_infinities(
const std::size_t num_total,
const std::size_t num_non_zero, Input_*
const values,
const Input_
median) {
181 MadOptions<Output_> opt;
182 opt.difference_between_infinities_is_zero =
true;
183 return mad(num_total, num_non_zero, values,
median, opt);
Output_ mad(const std::size_t num_total, Input_ *const ptr, const Input_ median, const MadOptions< Output_ > &options)
Definition mad.hpp:61