in lib/model/ModelTypes.cc [1093:1196]
TInfluenceCalculatorCPtr influenceCalculator(EFeature feature) {
switch (feature) {
case E_IndividualCountByBucketAndPerson:
case E_IndividualNonZeroCountByBucketAndPerson:
case E_IndividualHighCountsByBucketAndPerson:
case E_IndividualHighNonZeroCountByBucketAndPerson:
return std::make_shared<model::CLogProbabilityComplementInfluenceCalculator>();
case E_IndividualTotalBucketCountByPerson:
case E_IndividualIndicatorOfBucketPerson:
case E_IndividualTimeOfDayByBucketAndPerson:
case E_IndividualTimeOfWeekByBucketAndPerson:
return std::make_shared<model::CIndicatorInfluenceCalculator>();
case E_IndividualArrivalTimesByPerson:
case E_IndividualLongArrivalTimesByPerson:
case E_IndividualShortArrivalTimesByPerson:
return std::make_shared<model::CMeanInfluenceCalculator>();
case E_IndividualUniqueCountByBucketAndPerson:
case E_IndividualHighUniqueCountByBucketAndPerson:
case E_IndividualInfoContentByBucketAndPerson:
case E_IndividualHighInfoContentByBucketAndPerson:
return std::make_shared<model::CLogProbabilityInfluenceCalculator>();
case E_IndividualLowCountsByBucketAndPerson:
case E_IndividualLowNonZeroCountByBucketAndPerson:
case E_IndividualLowUniqueCountByBucketAndPerson:
case E_IndividualLowInfoContentByBucketAndPerson:
return std::make_shared<model::CInfluenceUnavailableCalculator>();
case E_IndividualMeanByPerson:
case E_IndividualMedianByPerson:
case E_IndividualLowMedianByPerson:
case E_IndividualHighMedianByPerson:
case E_IndividualLowMeanByPerson:
case E_IndividualHighMeanByPerson:
return std::make_shared<model::CMeanInfluenceCalculator>();
case E_IndividualVarianceByPerson:
case E_IndividualLowVarianceByPerson:
case E_IndividualHighVarianceByPerson:
return std::make_shared<model::CVarianceInfluenceCalculator>();
case E_IndividualMinByPerson:
case E_IndividualMaxByPerson:
case E_IndividualMaxVelocityByPerson:
case E_IndividualMinVelocityByPerson:
return std::make_shared<model::CLogProbabilityInfluenceCalculator>();
case E_IndividualSumByBucketAndPerson:
case E_IndividualHighSumByBucketAndPerson:
case E_IndividualNonNullSumByBucketAndPerson:
case E_IndividualHighNonNullSumByBucketAndPerson:
case E_IndividualSumVelocityByPerson:
return std::make_shared<model::CLogProbabilityComplementInfluenceCalculator>();
case E_IndividualLowSumByBucketAndPerson:
case E_IndividualLowNonNullSumByBucketAndPerson:
return std::make_shared<model::CInfluenceUnavailableCalculator>();
case E_IndividualMeanLatLongByPerson:
case E_IndividualMeanVelocityByPerson:
return std::make_shared<model::CIndicatorInfluenceCalculator>();
case E_PopulationCountByBucketPersonAndAttribute:
case E_PopulationHighCountsByBucketPersonAndAttribute:
return std::make_shared<model::CLogProbabilityComplementInfluenceCalculator>();
case E_PopulationAttributeTotalCountByPerson:
case E_PopulationIndicatorOfBucketPersonAndAttribute:
case E_PopulationUniquePersonCountByAttribute:
case E_PopulationTimeOfDayByBucketPersonAndAttribute:
case E_PopulationTimeOfWeekByBucketPersonAndAttribute:
return std::make_shared<model::CIndicatorInfluenceCalculator>();
case E_PopulationUniqueCountByBucketPersonAndAttribute:
case E_PopulationInfoContentByBucketPersonAndAttribute:
case E_PopulationHighInfoContentByBucketPersonAndAttribute:
case E_PopulationHighUniqueCountByBucketPersonAndAttribute:
return std::make_shared<model::CLogProbabilityInfluenceCalculator>();
case E_PopulationLowCountsByBucketPersonAndAttribute:
case E_PopulationLowInfoContentByBucketPersonAndAttribute:
case E_PopulationLowUniqueCountByBucketPersonAndAttribute:
return std::make_shared<model::CInfluenceUnavailableCalculator>();
case E_PopulationMeanByPersonAndAttribute:
case E_PopulationMedianByPersonAndAttribute:
case E_PopulationLowMedianByPersonAndAttribute:
case E_PopulationHighMedianByPersonAndAttribute:
case E_PopulationLowMeanByPersonAndAttribute:
case E_PopulationHighMeanByPersonAndAttribute:
return std::make_shared<model::CMeanInfluenceCalculator>();
case E_PopulationVarianceByPersonAndAttribute:
case E_PopulationLowVarianceByPersonAndAttribute:
case E_PopulationHighVarianceByPersonAndAttribute:
return std::make_shared<model::CVarianceInfluenceCalculator>();
case E_PopulationMinByPersonAndAttribute:
case E_PopulationMaxByPersonAndAttribute:
case E_PopulationMaxVelocityByPersonAndAttribute:
case E_PopulationMinVelocityByPersonAndAttribute:
return std::make_shared<model::CLogProbabilityInfluenceCalculator>();
case E_PopulationSumByBucketPersonAndAttribute:
case E_PopulationHighSumByBucketPersonAndAttribute:
case E_PopulationSumVelocityByPersonAndAttribute:
return std::make_shared<model::CLogProbabilityComplementInfluenceCalculator>();
case E_PopulationLowSumByBucketPersonAndAttribute:
return std::make_shared<model::CInfluenceUnavailableCalculator>();
case E_PopulationMeanLatLongByPersonAndAttribute:
case E_PopulationMeanVelocityByPersonAndAttribute:
return std::make_shared<model::CIndicatorInfluenceCalculator>();
}
return TInfluenceCalculatorCPtr();
}