#!/bin/bash

xmax=7
umax=5
n=1
coef="100,0.02,"
name="$1"
dx="$2"
lamax="$3"
lamin="$4"
xmax="$5"
umax="$6"
n="$7"
coef="$8"
echo invltfig.sh $1 $2 $3 $4 $5 $6 $7 $8
D=invlt${name}.demo

echo "LOADCONFIG ../configs/hjælpga3.gier" >$D
echo "LOADREADER ../tapes/mk/invlt/invlt1.asc" >>$D
../maketext.sh "_halgol" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 64" >>$D
../maketext.sh "_e" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 64" >>$D
echo "WAITINPUT" >>$D
if [ $n -ne 0 ]
then
# include pon/poff
echo "TYPE 38" >>$D
echo "WAITINPUT" >>$D
fi
# start compile
echo "TYPE 0" >>$D
echo "WAITINPUT" >>$D
# pause
if [ $n -eq 0 ]
then
echo "TYPE 19" >>$D
../maketext.sh "$coef" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 64" >>$D
echo "WAITINPUT" >>$D
# 4 case shifts
echo "TYPE 58" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 60" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 58" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 60" >>$D
echo "WAITINPUT" >>$D
echo "TYPE 58" >>$D
echo "WAITINPUT" >>$D
# type y
echo "TYPE 24" >>$D
else
echo "TYPE 0" >>$D
fi
echo "WAITINPUT" >>$D
echo "LOADPUNCH ../tapes/mk/invlt/invlt${name}.flx" >>$D
echo "LOADREADER ../tapes/mk/invlt/p111.flx" >>$D
echo "SLEEP 1" >>$D
echo "PLOTTERWIDTH 1" >>$D
# start run
echo "TYPE 0" >>$D
# wait for read of p111.flx
echo "SLEEP 1" >>$D
# load gamma table
echo "LOADREADER ../tapes/mk/invlt/loggamma.asc" >>$D
# wait for typewriter input
echo "WAITINPUT" >>$D
# INPUT FRA SKRIVEMASKINE:
# dx     skridtlængde ved x-integration  (f.eks. 0.25)
../maketext.sh "$dx," >>$D
# xmax   øvre grænse ved x-integrationen, tastes evt først ind , efter
#        at plotteren har tegnet grafen af integranden ved x-integration
#        skal være lige mult af dx
../maketext.sh "$xmax," >>$D
# du     skridtlængde ved u-integration, skal være mult af 0.1
../maketext.sh "0.1," >>$D
# umax   øvre grænse ved u-integration, skal være lige mult af du
../maketext.sh "$umax," >>$D
# lamax  hhv øvre og nedre grænse for det interval for lamda, hvori
# lamin  man ønsker at undersøge g(lamda)/lamda. lamax og lamin skal
#        hele mult af '-i
../maketext.sh "$lamax," >>$D
../maketext.sh "$lamin," >>$D
# noofy  antal plottepunkter i det angivne lamda-interval
../maketext.sh "100," >>$D
# n, n>0 antal exponentialled i den syntetiske kurve f(t) af typen 1)
#        med parametrene
# N[i], lambda[i]   (i=1,...,n)
../maketext.sh "$n," >>$D
if [ $n -ne 0 ]
then
../maketext.sh "$coef" >>$D
# n, n<0 i dette tilfælde indlæses strimmel med rigtige data
# F[n,-n] som er den experimentelle kurve aflæst med ækvidistancen dx
#        i x-intervallet [n*dx,-n*dx];
# plot:
../maketext.sh "1," >>$D
# wait for typewriter input
echo "WAITINPUT" >>$D
# finish plot
echo "PLOTTERSCALEUP YES" >>$D
echo "PLOTTERSCALEDOWN YES" >>$D
echo "PLOTTERSIZE A4" >>$D
echo "FINISHPLOTTER invlt${name}xmax.ps" >>$D
# xmax
../maketext.sh "$xmax," >>$D
fi
echo "WAITINPUT" >>$D
#echo "DEBUG 901" >>$D
#alas: p
echo "TYPE 39" >>$D
../maketext.sh "1," >>$D
echo "WAITINPUT" >>$D
echo "PLOTTERSCALEUP YES" >>$D
echo "PLOTTERSCALEDOWN YES" >>$D
echo "PLOTTERSIZE A4" >>$D
echo "FINISHPLOTTER invlt${name}.ps" >>$D

echo "FINISHPUNCH" >>$D
#echo "SLEEP 20" >>$D
echo "QUIT" >>$D

../GIER $D
IFS=',' read -r -a coefs <<< "$coef"
if [ $n -eq 0 ]
then
func=" "
else
func="f(t)="
for((i=0;i<n;i++))
do
  coef1="${coefs[i*2]}"
  coef2="${coefs[i*2+1]}"
# if [ $i -eq 2 -a $n -gt 2 ]
# then
#   func="$func\n  "
# fi
  if [ $i -gt 0 ]
  then
    func="$func+"
  fi
  func="$func${coef1}e<sup>-${coef2}t</sup>"
done
fi

# -gravity None -annotate +440+70 "$func" \
if [ $n -ne 0 ]
then
convert -density 200 invlt${name}xmax.ps -alpha off \
	  -font Courier -pointsize 20 \
	  -gravity None -annotate +1100+330 "umax=$umax" \
	  -gravity None -annotate +1100+410 "dx=$dx" \
	  -gravity NorthEast -annotate +20+0 "$name" \
	  invlt${name}xmax.pdf
fi
convert -density 200 invlt${name}.ps -alpha off \
	  -font Courier -pointsize 20 \
	  -gravity None -annotate +440+250 "xmax=$xmax" \
	  -gravity None -annotate +440+330 "umax=$umax" \
	  -gravity None -annotate +440+410 "dx=$dx" \
	  -gravity NorthEast -annotate +20+0 "$name" \
	  /tmp/invlt.png
s100=`flx2a <../tapes/mk/invlt/invlt${name}.flx|fgrep '100: '|sed "s/'/<sub>10<\/sub>/"`
convert -background transparent -font courier -pointsize 40 \
	  pango:"$s100" /tmp/100.png
if [ $n -ne 0 ]
then
convert -background transparent -font courier -pointsize 40 pango:"$func" /tmp/func.png
width1=`identify -format "%w" /tmp/invlt.png`
width2=`identify -format "%w" /tmp/func.png`
center=$((width1/2-width2/2))
echo $width1 $width2 $center
composite -geometry +${center}+40 /tmp/func.png /tmp/invlt.png /tmp/invlt2.png
else
cp /tmp/invlt.png /tmp/invlt2.png
fi
composite -geometry +440+450 /tmp/100.png /tmp/invlt2.png invlt${name}.png

convert invlt${name}.png invlt${name}.pdf

