TDouble2Vec1Vec stripExtraStatistics()

in lib/model/ModelTypes.cc [105:174]


TDouble2Vec1Vec stripExtraStatistics(EFeature feature, const TDouble2Vec1Vec& values) {
    switch (feature) {
    CASE_INDIVIDUAL_COUNT:
        return values;

    case E_IndividualMeanByPerson:
    case E_IndividualLowMeanByPerson:
    case E_IndividualHighMeanByPerson:
    case E_IndividualMedianByPerson:
    case E_IndividualLowMedianByPerson:
    case E_IndividualHighMedianByPerson:
    case E_IndividualMinByPerson:
    case E_IndividualMaxByPerson:
    case E_IndividualSumByBucketAndPerson:
    case E_IndividualLowSumByBucketAndPerson:
    case E_IndividualHighSumByBucketAndPerson:
    case E_IndividualNonNullSumByBucketAndPerson:
    case E_IndividualLowNonNullSumByBucketAndPerson:
    case E_IndividualHighNonNullSumByBucketAndPerson:
    case E_IndividualMaxVelocityByPerson:
    case E_IndividualMinVelocityByPerson:
    case E_IndividualMeanVelocityByPerson:
    case E_IndividualSumVelocityByPerson:
    case E_IndividualMeanLatLongByPerson:
        return values;
    case E_IndividualVarianceByPerson:
    case E_IndividualLowVarianceByPerson:
    case E_IndividualHighVarianceByPerson: {
        TDouble2Vec1Vec result;
        result.reserve(values.size());
        for (const auto& value : values) {
            result.push_back(TDouble2Vec(value.begin(), value.begin() + value.size() / 2));
        }
        return result;
    }

    CASE_POPULATION_COUNT:
        return values;

    case E_PopulationMeanByPersonAndAttribute:
    case E_PopulationLowMeanByPersonAndAttribute:
    case E_PopulationHighMeanByPersonAndAttribute:
    case E_PopulationMedianByPersonAndAttribute:
    case E_PopulationLowMedianByPersonAndAttribute:
    case E_PopulationHighMedianByPersonAndAttribute:
    case E_PopulationMinByPersonAndAttribute:
    case E_PopulationMaxByPersonAndAttribute:
    case E_PopulationSumByBucketPersonAndAttribute:
    case E_PopulationLowSumByBucketPersonAndAttribute:
    case E_PopulationHighSumByBucketPersonAndAttribute:
    case E_PopulationMaxVelocityByPersonAndAttribute:
    case E_PopulationMinVelocityByPersonAndAttribute:
    case E_PopulationMeanVelocityByPersonAndAttribute:
    case E_PopulationSumVelocityByPersonAndAttribute:
    case E_PopulationMeanLatLongByPersonAndAttribute:
        return values;
    case E_PopulationVarianceByPersonAndAttribute:
    case E_PopulationLowVarianceByPersonAndAttribute:
    case E_PopulationHighVarianceByPersonAndAttribute: {
        TDouble2Vec1Vec result;
        result.reserve(values.size());
        for (const auto& value : values) {
            result.push_back(TDouble2Vec(value.begin(), value.begin() + value.size() / 2));
        }
        return result;
    }
    }

    return values;
}