TDouble1VecDouble1VecPr support()

in lib/model/ModelTypes.cc [849:952]


TDouble1VecDouble1VecPr support(EFeature feature) {
    static const double MIN_DOUBLE = -std::numeric_limits<double>::max();
    static const double MAX_DOUBLE = std::numeric_limits<double>::max();

    std::size_t d = dimension(feature);

    switch (feature) {
    case E_IndividualCountByBucketAndPerson:
    case E_IndividualNonZeroCountByBucketAndPerson:
    case E_IndividualTotalBucketCountByPerson:
    case E_IndividualIndicatorOfBucketPerson:
    case E_IndividualLowCountsByBucketAndPerson:
    case E_IndividualHighCountsByBucketAndPerson:
    case E_IndividualArrivalTimesByPerson:
    case E_IndividualLongArrivalTimesByPerson:
    case E_IndividualShortArrivalTimesByPerson:
    case E_IndividualLowNonZeroCountByBucketAndPerson:
    case E_IndividualHighNonZeroCountByBucketAndPerson:
    case E_IndividualUniqueCountByBucketAndPerson:
    case E_IndividualLowUniqueCountByBucketAndPerson:
    case E_IndividualHighUniqueCountByBucketAndPerson:
    case E_IndividualInfoContentByBucketAndPerson:
    case E_IndividualHighInfoContentByBucketAndPerson:
    case E_IndividualLowInfoContentByBucketAndPerson:
        return {TDouble1Vec(d, 0.0), TDouble1Vec(d, MAX_DOUBLE)};
    case E_IndividualTimeOfDayByBucketAndPerson:
        return {TDouble1Vec(d, 0.0),
                TDouble1Vec(d, static_cast<double>(core::constants::DAY))};
    case E_IndividualTimeOfWeekByBucketAndPerson:
        return {TDouble1Vec(d, 0.0),
                TDouble1Vec(d, static_cast<double>(core::constants::WEEK))};

    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:
        return {TDouble1Vec(d, MIN_DOUBLE), TDouble1Vec(d, MAX_DOUBLE)};
    case E_IndividualVarianceByPerson:
    case E_IndividualLowVarianceByPerson:
    case E_IndividualHighVarianceByPerson:
        return {TDouble1Vec(d, 0.0), TDouble1Vec(d, MAX_DOUBLE)};
    case E_IndividualMeanLatLongByPerson:
        return {TDouble1Vec{-90, -180.0}, TDouble1Vec{90, 180.0}};

    case E_PopulationAttributeTotalCountByPerson:
    case E_PopulationCountByBucketPersonAndAttribute:
    case E_PopulationIndicatorOfBucketPersonAndAttribute:
    case E_PopulationUniqueCountByBucketPersonAndAttribute:
    case E_PopulationLowUniqueCountByBucketPersonAndAttribute:
    case E_PopulationHighUniqueCountByBucketPersonAndAttribute:
    case E_PopulationUniquePersonCountByAttribute:
    case E_PopulationLowCountsByBucketPersonAndAttribute:
    case E_PopulationHighCountsByBucketPersonAndAttribute:
    case E_PopulationInfoContentByBucketPersonAndAttribute:
    case E_PopulationLowInfoContentByBucketPersonAndAttribute:
    case E_PopulationHighInfoContentByBucketPersonAndAttribute:
        return {TDouble1Vec(d, 0.0), TDouble1Vec(d, MAX_DOUBLE)};
    case E_PopulationTimeOfDayByBucketPersonAndAttribute:
        return {TDouble1Vec(d, 0.0),
                TDouble1Vec(d, static_cast<double>(core::constants::DAY))};
    case E_PopulationTimeOfWeekByBucketPersonAndAttribute:
        return {TDouble1Vec(d, 0.0),
                TDouble1Vec(d, static_cast<double>(core::constants::WEEK))};

    case E_PopulationMeanByPersonAndAttribute:
    case E_PopulationMedianByPersonAndAttribute:
    case E_PopulationLowMedianByPersonAndAttribute:
    case E_PopulationHighMedianByPersonAndAttribute:
    case E_PopulationMinByPersonAndAttribute:
    case E_PopulationMaxByPersonAndAttribute:
    case E_PopulationSumByBucketPersonAndAttribute:
    case E_PopulationLowMeanByPersonAndAttribute:
    case E_PopulationHighMeanByPersonAndAttribute:
    case E_PopulationLowSumByBucketPersonAndAttribute:
    case E_PopulationHighSumByBucketPersonAndAttribute:
    case E_PopulationMaxVelocityByPersonAndAttribute:
    case E_PopulationMinVelocityByPersonAndAttribute:
    case E_PopulationMeanVelocityByPersonAndAttribute:
    case E_PopulationSumVelocityByPersonAndAttribute:
        return {TDouble1Vec(d, MIN_DOUBLE), TDouble1Vec(d, MAX_DOUBLE)};
    case E_PopulationVarianceByPersonAndAttribute:
    case E_PopulationLowVarianceByPersonAndAttribute:
    case E_PopulationHighVarianceByPersonAndAttribute:
        return {TDouble1Vec(d, 0.0), TDouble1Vec(d, MAX_DOUBLE)};
    case E_PopulationMeanLatLongByPersonAndAttribute:
        return {TDouble1Vec{-90, -180.0}, TDouble1Vec{90, 180.0}};
    }

    return {TDouble1Vec(d, MIN_DOUBLE), TDouble1Vec(d, MAX_DOUBLE)};
}