public override void Generate(Datastructure.SparseArray<float> production, Datastructure.SparseArray<float> attractions) { var flatProduction = production.GetFlatData(); var flatAttraction = attractions.GetFlatData(); var numberOfIndexes = flatAttraction.Length; // Compute the Production and Attractions float totalProduction = 0; float totalAttraction = 0; totalProduction = ComputeProduction( flatProduction, numberOfIndexes ); totalAttraction = ComputeAttraction( flatAttraction, this.Root.ZoneSystem.ZoneArray.GetFlatData(), numberOfIndexes ); // Normalize the attractions float productionAttractionRatio; if ( totalAttraction != 0 ) { productionAttractionRatio = totalProduction / totalAttraction; // inverse totalAttraction to save on divisions } else { productionAttractionRatio = totalProduction / numberOfIndexes; } for ( int i = 0; i < numberOfIndexes; i++ ) { flatAttraction[i] = flatAttraction[i] * productionAttractionRatio; } }
public async Task <IActionResult> Edit(int id, [Bind("ID,Title,Description,Solution")] Datastructure datastructure) { if (id != datastructure.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(datastructure); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DatastructureExists(datastructure.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(datastructure)); }
public async Task <IActionResult> Create([Bind("ID,Title,Description,Solution")] Datastructure datastructure) { if (ModelState.IsValid) { _context.Add(datastructure); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(datastructure)); }
/// <summary> /// Create the production and attractions for this demographic /// </summary> /// <param name="production">The production</param> /// <param name="attractions">The attraction</param> public abstract void Generate(Datastructure.SparseArray<float> production, Datastructure.SparseArray<float> attractions);
public List<TreeData<float[][]>> ModeSplit(Datastructure.SparseTwinIndex<float> flowMatrix) { return this.ModeSplit( SingleEnumerator( flowMatrix ), 1 ); }