|
template<typename Value_ , typename Index_ , typename Group_ , typename Output_ > |
void | direct (const Value_ *ptr, Index_ num, const Group_ *group, size_t num_groups, const Index_ *group_size, Output_ *output_means, Output_ *output_variances, bool skip_nan, Index_ *valid_group_size) |
|
template<typename Value_ , typename Index_ , typename Group_ , typename Output_ > |
void | direct (const Value_ *value, const Index_ *index, Index_ num_nonzero, const Group_ *group, size_t num_groups, const Index_ *group_size, Output_ *output_means, Output_ *output_variances, Index_ *output_nonzero, bool skip_nan, Index_ *valid_group_size) |
|
template<typename Value_ , typename Index_ , typename Group_ , typename Output_ > |
void | apply (bool row, const tatami::Matrix< Value_, Index_ > *p, const Group_ *group, size_t num_groups, const Index_ *group_size, Output_ **output, const Options &sopt) |
|
template<typename Output_ = double, typename Value_ , typename Index_ , typename Group_ > |
std::vector< std::vector< Output_ > > | by_row (const tatami::Matrix< Value_, Index_ > *p, const Group_ *group, const Options &sopt) |
|
template<typename Output_ = double, typename Value_ , typename Index_ , typename Group_ > |
std::vector< std::vector< Output_ > > | by_row (const tatami::Matrix< Value_, Index_ > *p, const Group_ *group) |
|
template<typename Output_ = double, typename Value_ , typename Index_ , typename Group_ > |
std::vector< std::vector< Output_ > > | by_column (const tatami::Matrix< Value_, Index_ > *p, const Group_ *group, const Options &sopt) |
|
template<typename Output_ = double, typename Value_ , typename Index_ , typename Group_ > |
std::vector< std::vector< Output_ > > | by_column (const tatami::Matrix< Value_, Index_ > *p, const Group_ *group) |
|
Functions for computing dimension-wise grouped variances.
template<typename Value_ , typename Index_ , typename Group_ , typename Output_ >
void tatami_stats::grouped_variances::direct |
( |
const Value_ * |
ptr, |
|
|
Index_ |
num, |
|
|
const Group_ * |
group, |
|
|
size_t |
num_groups, |
|
|
const Index_ * |
group_size, |
|
|
Output_ * |
output_means, |
|
|
Output_ * |
output_variances, |
|
|
bool |
skip_nan, |
|
|
Index_ * |
valid_group_size |
|
) |
| |
Compute the mean and variance from a dense objective vector. This uses the standard two-pass algorithm with naive accumulation of the sum of squared differences; thus, it is best used with a sufficiently high-precision Output_
like double
.
- Template Parameters
-
Value_ | Type of the input data. |
Index_ | Integer type of the matrix indices. |
Group_ | Integer type of the group assignments. |
Output_ | Type of the output data. |
- Parameters
-
[in] | ptr | Pointer to an array of values of length num . |
| num | Length of the objective vector, i.e., length of the array at ptr . |
[in] | group | Pointer to an array of length num , containing the group assignment for each entry of ptr . Entries of group should lie in \([0, N)\) where \(N\) is the number of unique groups. |
| num_groups | Number of groups, i.e., \(N\). |
[in] | group_size | Pointer to an array of length num_groups , containing the size of each group. This can be obtained by calling tabulate_groups() on group . |
[out] | output_means | Pointer to an array of length num_groups . This is filled with the per-group mean on output. Values may be NaN if there are not enough (non-NaN) values in a group. |
[out] | output_variances | Pointer to an array of length num_groups . This is filled with the per-group variances on output. Values may be NaN if there are not enough (non-NaN) values in a group. |
| skip_nan | See Options::skip_nan . |
[out] | valid_group_size | Pointer to an array of length num_groups . This is used to store the number of non-NaN entries. Only used if skip_nan = true . |
template<typename Value_ , typename Index_ , typename Group_ , typename Output_ >
void tatami_stats::grouped_variances::direct |
( |
const Value_ * |
value, |
|
|
const Index_ * |
index, |
|
|
Index_ |
num_nonzero, |
|
|
const Group_ * |
group, |
|
|
size_t |
num_groups, |
|
|
const Index_ * |
group_size, |
|
|
Output_ * |
output_means, |
|
|
Output_ * |
output_variances, |
|
|
Index_ * |
output_nonzero, |
|
|
bool |
skip_nan, |
|
|
Index_ * |
valid_group_size |
|
) |
| |
Compute the mean and variance from a sparse objective vector. This uses the standard two-pass algorithm with naive accumulation of the sum of squared differences; thus, it is best used with a sufficiently high-precision Output_
like double
.
- Template Parameters
-
Value_ | Type of the input data. |
Index_ | Integer type of the matrix indices. |
Group_ | Integer type of the group assignments. |
Output_ | Type of the output data. |
- Parameters
-
[in] | value | Pointer to an array of length num_nonzero , containing the values of the structural non-zeros. |
[in] | index | Pointer to an array of length num_nonzero , containing the indices of the structural non-zeros. All indices should be non-negative and less than the length of the objective vector. |
| num_nonzero | Number of structural non-zeros. |
[in] | group | Pointer to an array of length equal to the length of the objective vector, containing the group assignment for each vector element. Entries of group should lie in \([0, N)\) where \(N\) is the number of unique groups. |
| num_groups | Number of groups, i.e., \(N\). |
[in] | group_size | Pointer to an array of length num_groups , containing the size of each group. This can be obtained by calling tabulate_groups() on group . |
[out] | output_means | Pointer to an array of length num_groups . This is filled with the per-group mean on output. Values may be NaN if there are not enough (non-NaN) values in a group. |
[out] | output_variances | Pointer to an array of length num_groups . This is filled with the per-group variances on output. Values may be NaN if there are not enough (non-NaN) values in a group. |
[out] | output_nonzero | Pointer to an array of length num_groups . On output, this is filled with the number of structural non-zeros in each group. |
| skip_nan | See Options::skip_nan . |
[out] | valid_group_size | Pointer to an array of length num_groups . This is used to store the number of non-NaN entries. Only used if skip_nan = true . |