#!/bin/bash set -e TEMPLATE=${1:-"ag_parameters"} PREFIX=param log() { echo "-#- $@" >&2 } die() { echo "ERROR: $@" >&2 exit 2 } test -r "$TEMPLATE" || die "file not found: $TEMPLATE" for flavour in "I" "R"; do for distrib in "1" "N"; do for ratio in "1000:1" "100:1" "10:1" "1:1" "1:10" "1:100" "1:1000"; do declare -a opts=( ) case "$flavour" in "I") opts+=( -Z ) ;; "R") : ;; *) die "unknown flavour: $flavour" ;; esac case "$distrib" in "1") : ;; "N") opts+=( -r42 -R ) ;; *) die "unknown distribution: $distrib" ;; esac case "$ratio" in "1000:1") opts+=( -c1e6,0 -C1.25e2,0 ) ;; "100:1") opts+=( -c1e6,0 -C1.25e3,0 ) ;; "10:1") opts+=( -c1e6,0 -C1.25e4,0 ) ;; "1:1") opts+=( -c1e6,0 -C1.25e5,0 ) ;; "1:10") opts+=( -c1e6,0 -C1.25e6,0 ) ;; "1:100") opts+=( -c1e6,0 -C1.25e7,0 ) ;; "1:1000") opts+=( -c1e6,0 -C1.25e8,0 ) ;; *) die "unknown ratio: $ratio" ;; esac suffix="${flavour}${distrib}_${ratio}" output="${PREFIX}_${suffix}" more_args="${opts[@]}" results="./results_${suffix}" log "writing file: ${output}" { sed -n '/MORE_ARGS/q;p' "$TEMPLATE" printf 'MORE_ARGS=( %s )\n' "${more_args}" sed -n '1,/MORE_ARGS/d;/RESULTS/q;p' "$TEMPLATE" printf 'RESULTS="%s"\n' "${results}" sed '1,/RESULTS/d' "$TEMPLATE" } > "${output}" done done done