-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.sh
More file actions
executable file
·40 lines (28 loc) · 780 Bytes
/
search.sh
File metadata and controls
executable file
·40 lines (28 loc) · 780 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
set -euo pipefail
RADIX=$1
NABORS=$2
START=${3:-'@'}
ITERS=10000
# because bc breaks its lines ?!
export BC_LINE_LENGTH=0
TMPFILE=stdout.cell
MAX=0
CMPXZ="xz -c -z -9"
CMPGZ="gzip -c -9 -f"
CMPZSTD="zstd -c -9 -f"
function div() { echo "scale=3 ; $1 / $2" | bc; }
function fsize() { stat -c %s $1; }
for i in $(seq 0 $ITERS); do
RULE_COUNT=$(echo "$RADIX^$RADIX^$NABORS" | bc)
RULE_NUMBER=$(python3 -S -c "import random; print (random.randrange(1,$RULE_COUNT))")
CMD="./target/release/ca1d $RADIX $NABORS $RULE_NUMBER $START --output=Raw --to=200 --width=200 --verbose=0"
$CMD > $TMPFILE
SZ=$($CMPZSTD $TMPFILE | wc -c)
if (( ${SZ} >= ${MAX} )); then
echo -n $(div $SZ $(fsize $TMPFILE))
echo -e " : ${CMD}"
MAX=${SZ}
fi
done
rm -f ${TMPFILE}