]> git.somenet.org - pub/jan/parprog.git/blob - openmp/merge/generate_random.sh
update generate_random
[pub/jan/parprog.git] / openmp / merge / generate_random.sh
1 #!/bin/bash
2
3 function pwait() {
4         while [ $(jobs -r | wc -l) -gt 0 ];
5         do
6                 sleep 1
7         done
8 }
9
10 # 10 ^ x values
11 X=9
12 NULLEN=""
13 PUNKTE="."
14 for i in $(seq `expr $X - 1`);
15 do
16         NULLEN="${NULLEN}0"
17         PUNKTE="${PUNKTE}."
18 done
19 VALUES="1${NULLEN}"
20
21 BATCH=`expr \( $X \* $VALUES \) / 2`
22
23 echo "${VALUES} values"
24 echo "Batch: ${BATCH}"
25
26 echo "generating numbers (1)"
27 echo $(date)
28 tr -dc 0-9 < /dev/urandom | head -c"${BATCH}" | sed 's/\('$PUNKTE'\)/\1\n/g' > unsorted1a &
29 tr -dc 0-9 < /dev/urandom | head -c"${BATCH}" | sed 's/\('$PUNKTE'\)/\1\n/g' > unsorted1b &
30 pwait
31 echo "generating numbers (2)"
32 echo $(date)
33 tr -dc 0-9 < /dev/urandom | head -c"${BATCH}" | sed 's/\('$PUNKTE'\)/\1\n/g' > unsorted2a &
34 tr -dc 0-9 < /dev/urandom | head -c"${BATCH}" | sed 's/\('$PUNKTE'\)/\1\n/g' > unsorted2b &
35 pwait
36
37 echo "removing empty lines"
38 echo $(date)
39 rm -f unsorted1 unsorted2
40 sed '/^$/d' unsorted1a >> unsorted1
41 sed '/^$/d' unsorted1b >> unsorted1
42 sed '/^$/d' unsorted2a >> unsorted2
43 sed '/^$/d' unsorted2b >> unsorted2
44
45 echo "formatting numlist"
46 echo $(date)
47 cat unsorted1 | sort -n | sed -e ':a;N;$!ba;s/\n/,/g' -e 's/^/,/' -e 's/,[0]*/,/g' -e 's/^,/\tint a[] = {/' -e 's/{,/{0,/' -e 's/$/,-1};/' >numlist1.c &
48 cat unsorted2 | sort -n | sed -e ':a;N;$!ba;s/\n/,/g' -e 's/^/,/' -e 's/,[0]*/,/g' -e 's/^,/\tint b[] = {/' -e 's/{,/{0,/' -e 's/$/,-1};/' >numlist2.c &
49 pwait
50
51 echo "Done."
52 echo $(date)
53