private List<double> GetUtilityValuesForCar(HouseholdPersonComposite composite, SpatialZone curZ) { Household hhld = composite.getHousehold().CreateNewCopy(); String key = hhld.GetNewJointKey(GetDimensionName()); string[] curKeys = key.Split(Constants.CONDITIONAL_DELIMITER[0]); var currValues = new List<double>(4); currValues.Add(1.00); double dwellNotApartment = 0.00; if (Int16.Parse(curKeys[5]) != 3) { dwellNotApartment = 0.841; } double incParam = 0.00; if (Int16.Parse(curKeys[3]) == 2) { incParam = 0.858; } else if (Int16.Parse(curKeys[3]) > 2) { incParam = 0.978; } double childParam = 0.00; if (Int16.Parse(curKeys[2]) != 0) { childParam = 0.457; } currValues.Add(Math.Exp(-2.75 + 0.504 * Int16.Parse(curKeys[4]) + 0.00105 * curZ.GetAverageIncome() / Constants.BFRANC_TO_EURO + 0.437 * Int16.Parse(curKeys[1]) + 0.498 * curZ.GetPercentHhldWOneCar() + dwellNotApartment + incParam + childParam)); incParam = 0.00; if (Int16.Parse(curKeys[3]) == 2) { incParam = 1.87; } else if (Int16.Parse(curKeys[3]) > 2) { incParam = 2.43; } childParam = 0.00; if (Int16.Parse(curKeys[2]) != 0) { childParam = 0.800; } dwellNotApartment = 0.00; if (Int16.Parse(curKeys[5]) != 3) { dwellNotApartment = 1.86; } currValues.Add(Math.Exp(-7.02 + 0.933 * Int16.Parse(curKeys[4]) + 0.00126 * curZ.GetAverageIncome() / Constants.BFRANC_TO_EURO + 1.24 * Int16.Parse(curKeys[1]) + 2.13 * curZ.GetPercentHhldWTwoCar() + dwellNotApartment + incParam + childParam)); incParam = 0.00; if (Int16.Parse(curKeys[3]) == 2) { incParam = 1.42; } else if (Int16.Parse(curKeys[3]) > 2) { incParam = 3.24; } dwellNotApartment = 0.00; if (Int16.Parse(curKeys[5]) != 3) { dwellNotApartment = 2.66; } currValues.Add(Math.Exp(-10.1 + 1.07 * Int16.Parse(curKeys[4]) + 0.00126 * curZ.GetAverageIncome() / Constants.BFRANC_TO_EURO + 1.60 * Int16.Parse(curKeys[1]) + 14.1 * curZ.GetPercentHhldWThreeCar() + dwellNotApartment + incParam)); return currValues; }