//private ArrayList GetUtilityValuesForDwelling(string key, // SpatialZone curZ) //{ // string[] curKeys = key.Split(Constants.CONDITIONAL_DELIMITER[0]); // ArrayList currValues = new ArrayList(4); // currValues.Add(1.00); // double childParam = 0.00; // if (Int16.Parse(curKeys[2]) != 0) // { // childParam = 0.484; // } // currValues.Add(Math.Exp(1.52 - 0.000549 * curZ.GetAverageIncome() // / Constants.BFRANC_TO_EURO // - 0.572 * Int16.Parse(curKeys[5]) // + childParam)); // double incParam=0.00; // if (Int16.Parse(curKeys[3]) > 2 ) // { // incParam = 0.664; // } // if (Int16.Parse(curKeys[2]) != 0) // { // childParam = 0.430; // } // currValues.Add(Math.Exp(5.95 - 0.00208 * curZ.GetAverageIncome() // / Constants.BFRANC_TO_EURO // + 0.266 * Int16.Parse(curKeys[4]) // - 1.16 * Int16.Parse(curKeys[5]) // + incParam + childParam)); // if (Int16.Parse(curKeys[3]) == 2) // { // incParam = -0.681; // } // if (Int16.Parse(curKeys[2]) != 0) // { // childParam = -0.642; // } // currValues.Add(Math.Exp(4.52 - 0.00233 * curZ.GetAverageIncome() // / Constants.BFRANC_TO_EURO // + 0.811 * Int16.Parse(curKeys[4]) // - 1.89 * Int16.Parse(curKeys[5]) // + 5.77 * curZ.GetApartmentPercent() // + incParam + childParam)); // return currValues; //} private List<double> GetUtilityValuesForDwelling(string key, SpatialZone curZ) { string[] curKeys = key.Split(Constants.CONDITIONAL_DELIMITER[0]); var currValues = new List<double>(4); int hhldSz = int.Parse(curKeys[0]); double b_surf = 0.00; if (hhldSz == 2) { b_surf = 0.0146; } else if( hhldSz == 3) { b_surf = 0.0194; } else if (hhldSz > 3) { b_surf = 0.0249; } double currWtDwell = curZ.GetDwellingMarginalsByCount().GetValue("0"); if (currWtDwell == 0) { currWtDwell = 0.0000001; } else { currWtDwell = Math.Log(currWtDwell); } currValues.Add(Math.Exp(currWtDwell + b_surf * curZ.GetSurfaceOne())); currWtDwell = curZ.GetDwellingMarginalsByCount().GetValue("1"); if (currWtDwell == 0) { currWtDwell = 0.0000001; } else { currWtDwell = Math.Log(currWtDwell); } int numCars = int.Parse(curKeys[5]); int incLvl = int.Parse(curKeys[3]); currValues.Add(Math.Exp(0.423 + currWtDwell - 0.279 * numCars + b_surf * curZ.GetSurfaceTwo())); currWtDwell = curZ.GetDwellingMarginalsByCount().GetValue("2"); if (currWtDwell == 0) { currWtDwell = 0.0000001; } else { currWtDwell = Math.Log(currWtDwell); } currValues.Add(Math.Exp(0.870 + currWtDwell - 0.593 * numCars + b_surf * curZ.GetSurfaceThree())); currWtDwell = curZ.GetDwellingMarginalsByCount().GetValue("3"); if (currWtDwell == 0) { currWtDwell = 0.0000001; } else { currWtDwell = Math.Log(currWtDwell); } currValues.Add(Math.Exp(1.20 + currWtDwell - 0.9482 * numCars + b_surf * curZ.GetSurfaceFour())); return currValues; }