public static async Task <NodeArray> UpdateFred(this NodeArray nodeArray, double cpl, double noise, Random randy) { NodeArray result = nodeArray; await Task.Run(() => { result = NodeArray.UpdateStar(nodeArray, cpl, noise, randy); }); return(result); }
public static IEnumerable <P2V <int, float> > DataToP2Vs(this NodeArray nodeArray, Sz2 <int> bounds) { var index = 0; for (var x = 0; x < bounds.X; x++) { for (var y = 0; y < bounds.X; y++) { yield return(new P2V <int, float>(x, y, (float)nodeArray.Current[index++])); } } }
public static NodeArray UpdateStar(NodeArray nodeArray, double cpl, double noise, Random randy) { var input = nodeArray.InputArray; var output = nodeArray.OutputArray; nodeArray._generation++; var chunkCount = 8; Parallel.For((long)0, chunkCount, i => nodeArray.ProcStretch2d( curChunk: (int)i, chunkCount: chunkCount, input: input, output: output, cpl: cpl, noiseLevel: noise, randy: randy)); nodeArray.InputArray = output; return(nodeArray); }