I know that c# has parallel for like this .
I know that D has parallel foreach like this.
I want to do the following :
Given 4 sets , A = {a_1, a_2, ... }; B = {b_1, b_2, ... } ; C = {c_1 , ... } ; D = {d_1, ... } - I need to make all Cartesian products, such as {a_1, b_1, c_1, d_1 }; {a_1, b_1, c_1, d_2}; ... {a_n, b_n, c_n, d_n} ; then run an operation on the elements .
Then, I need to extract the maximum and minimum values of the results - either by storing them in an array, or by some other suitable means.
My attempt to solve can be seen in this minimal example :
import std.stdio;
import std.math;
import std.stdio;
import std.conv;
import std.format;
import std.math;
import std.algorithm;
import std.net.curl;
import std.json;
//import dlib.image;
import std.path;
import std.array;
import std.net.curl;
import core.stdc.stdlib;
import std.datetime;
import std.file;
import opmix.dup;
import std.parallelism;
void main() {
int[] a = [1,2,3,4,5,6,7,8,9];
int[] b = [11,12,13,14,15,16,17,18];
int[] c ;
foreach(aa; parallel (a)) {
foreach (bb; parallel(b)) {
c ~= aa+bb;
}
}
writeln(c);
}
I expect the output : [ 12, 13, 14 ....27 ]
( not necessarily in this order - but that is okey).
I am getting the output : [12, 13, 14, 15, 16, 17, 18, 19, 14, 15, 16, 17, 18, 19, 20, 21, 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, 22, 23, 24, 19, 20, 21, 22, 18, 0, 0, 0, 16, 21, 18, 22, 23, 24, 25, 20, 21, 22, 19]
.
In the next run : [12, 13, 14, 15, 16, 17, 18, 19, 14, 15, 16, 17, 18, 19, 20, 21, 15, 16, 17, 18, 19, 20, 21, 22, 16, 17, 18, 19, 20, 21, 22, 23, 18, 19, 20, 21, 22, 23, 24, 25, 17, 18, 19, 19, 21, 20, 23, 23, 24, 24, 20, 21, 22, 23, 24, 25, 26, 27]
In the next run : [12, 13, 14, 15, 16, 17, 18, 19, 14, 15, 16, 17, 0, 0, 16, 18, 19, 20, 21, 17, 18, 19, 20, 15, 16, 17, 18, 19, 20, 21, 22, 18, 19, 20, 21, 22, 23, 24, 25, 19, 20, 21, 22, 16, 17, 20, 21, 22, 23, 24, 21, 22, 27, 23]
In the 4th run : [12, 13, 14, 15, 16, 17, 18, 19, 15, 16, 17, 18, 19, 20, 21, 22, 14, 13, 14, 15, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 25, 26, 27, 18, 20, 22, 23, 24, 25, 20, 21, 22, 23, 24]
What am I doing wrong?
Thank you .