$#define DEBUG
#define FIGLIST triangle smear smoothing 2point5 interp8 interpS8 deriv8
#define USRLIBS SEPCLASSLIB
#define FIGDIR ./Fig
#include "../Cakerules/SEP.martin.rules"
#define BINDIR ../Bin/MTYPE
#include <SEP.defs>
#define NULL head=/dev/null

/* make slides*/

triangle.slidefigures.resize&:
	vppen backcol.v FIGDIR/triangle.v | SLIDETUBE yscale=2 xscale=1.5 xshift=1.0 yshift=3

smear.slidefigures.resize&:
	vppen backcol.v FIGDIR/smear.v | SLIDETUBE yscale=2 xscale=1.5 xshift=1.0 yshift=3

interpS8.slidefigures.resize&:
	vppen backcol.v FIGDIR/interpS8.v | SLIDETUBE yscale=2 xscale=1.5 xshift=1.0 yshift=3

2point5.slidefigures.resize&:
	vppen backcol.v FIGDIR/2point5.v | SLIDETUBE yscale=0.7 yshift=3

smoothing.slidefigures.resize&:
	vppen backcol.v FIGDIR/smoothing.v | SLIDETUBE yscale=0.7 yshift=3

interp8.slidefigures.resize&:
	vppen backcol.v FIGDIR/interp8.v | SLIDETUBE yscale=0.7 yshift=3

deriv8.slidefigures.resize&:
	vppen backcol.v FIGDIR/deriv8.v | SLIDETUBE yscale=0.7 yshift=3

4up: slide.ps
        psnup -nup 4 slide.ps slide4up.ps

slide&: slide.ps

$ this is the working version with seminar.sty: slide.tex
%.ps&:  %.tex
        texpr -l -2 -d %.tex
        dvips -t landscape -o %.ps %.dvi


norm_wants_numbers&: BINDIR/Central2n
	BINDIR/Central2n m=1 n=1 >j4.H
	BINDIR/Central2n m=1 n=2 >j4.H
	BINDIR/Central2n m=1 n=3 >j4.H
	BINDIR/Central2n m=1 n=4 >j4.H
	BINDIR/Central2n m=1 n=6 >j4.H
	BINDIR/Central2n m=1 n=8 >j4.H
	BINDIR/Central2n m=1 n=16 >j4.H
	BINDIR/Central2n m=2 n=4 shift=0 >j4.H
	BINDIR/Central2n m=2 n=8 shift=0 >j4.H
	BINDIR/Central2n m=2 n=16 shift=0 >j4.H

testder&: BINDIR/Central2n BINDIR/Reconv
        BINDIR/Central2n m=1 n=4 >j4.H
        Spike n1=128 n2=1 n3=1 k1=64 mag=1 d1=1 o1=1 >in.H
        Reverse which=1 < j4.H >j4r.H
        BINDIR/Reconv <in.H niter=400 filter=j4r.H fderiv=1 fint=1 > junkder.H

testfind&: BINDIR/Central2n BINDIR/Reconv
        BINDIR/Central2n m=1 n=4 >j4.H
        Spike n1=512 n2=1 n3=1 k1=256 mag=1 d1=0.008 o1=0| Bandpass flo=20 fhi=80 >in.H
        Reverse which=1 < j4.H >j4r.H
        BINDIR/Reconv <in.H niter=400 filter=j4r.H fderiv=0 fint=1 > junkfind.H



#define TRIANGLE 0.25 0.5 0.25
FIGDIR/triangle.v triangle& : BINDIR/Reconv
	echo TRIANGLE >tri.asc.H
	atoF <tri.asc.H >tri.H
	echo " o1=-1 d1=1" >> tri.H
	Spike n1=128 k1=64 o1=-63 d1=1 mag=1 n2=1 n3=1 >spike.H
	BINDIR/Reconv niter=400 < spike.H filter=tri.H >spiketri.H fderiv=0 fint=0 scaleit=1
	Window f3=1 j3=40 < spiketri.H >junk.H
	echo "d2=40" >> junk.H
	Thplot <junk.H  alpha=60 wanttitle=n title=" " label2="Iteration" label1=" " out=junk11.v NULL
	vp_Unrotate junk11.v align=lb >junk1.v
$	Graph  <junk.H wantlabel=n wantaxis=n wanttitle=n out=junk2.v NULL
	Wiggle poly=y pclip=100 <junk.H wanttitle=n label2="Iteration" label1=" " out=junk2.v NULL
	Transp plane=12 <junk.H | Reverse which=1|Contour wanttitle=n wantaxis=n wantlabel=n  nc=10 dc=0.1 c0=0.25 out=junk3.v NULL
	vp_SideBySideIso junk1.v junk2.v junk3.v >FIGDIR/triangle.v

#define SMEAR 0.5 0.5
FIGDIR/smear.v smear& : BINDIR/Reconv
	echo SMEAR >smear.asc.H
	atoF <smear.asc.H >smear.H
	echo " o1=-1 d1=1" >> smear.H
	Spike n1=128 k1=64 o1=-63 d1=1 mag=1 n2=1 n3=1 >spike.H
	BINDIR/Reconv shiftback=1 niter=400 < spike.H filter=smear.H >spikesmear.H fderiv=0 fint=0 scaleit=1
	Window f3=1 j3=40 < spikesmear.H >junk.H
	echo "d2=40" >> junk.H
	Thplot <junk.H  alpha=60 wanttitle=n title=" " label2="Iteration" label1=" " out=junk11.v NULL
	vp_Unrotate junk11.v align=lb >junk1.v
$	Graph  <junk.H wantlabel=n wantaxis=n wanttitle=n out=junk2.v NULL
	Wiggle poly=y pclip=100 <junk.H wanttitle=n label2="Iteration" label1=" " out=junk2.v NULL
	Transp plane=12 <junk.H | Reverse which=1|Contour wanttitle=n wantaxis=n wantlabel=n  nc=10 dc=0.1 c0=0.25 out=junk3.v NULL
	vp_SideBySideIso junk1.v junk2.v junk3.v >FIGDIR/smear.v


FIGDIR/smoothing.v :
	echo "0 0.25 0.5 0.25 0" >smoothing.asc.H
	atoF <smoothing.asc.H >smoothing.H
	Dots dots=2 strings=1 connect=0 seemean=1 <smoothing.H title="Smoothing Filter" label1=" " label2=" " out=FIGDIR/smoothing.v NULL

FIGDIR/2point5.v :
	echo "0 0.5 0.5 0" >2point5.asc.H
	atoF <2point5.asc.H >2point5.H
	Dots dots=2 strings=1 connect=0 seemean=1 <2point5.H title="Interpolation Filter" label1=" " label2=" " out=FIGDIR/2point5.v NULL

#define FRANCIS 0.0006975 -0.009570 0.079752 -1.1962891 1.1962891 -0.079752 0.009570 -0.0006975

FIGDIR/interp8.v: BINDIR/Central2n
	BINDIR/Central2n m=0 n=4 >j4.H
	Dots dots=2 strings=1 connect=0 seemean=1 <j4.H title="Self-similar Interpolation" label1=" " label2=" " out=FIGDIR/interp8.v NULL

conv&:
	Central2n m=1 n=4 >j4.H
$	Wavelet n1=128 n2=1 n3=1 wavelet=ricker0 tdelay=0.256 >in.H
$ wavelet has to low a frequency to see a change
	Spike n1=128 n2=1 n3=1 k1=64 mag=1 >in.H
	Reverse which=1 < j4.H >j4r.H
	Reconv <in.H niter=1 filter=j4r.H > jiter1.H

FIGDIR/deriv8.v: BINDIR/Central2n
	BINDIR/Central2n m=1 n=4 >j4.H
	Dots dots=2 strings=1 connect=0 seemean=1 <j4.H title="Self-similar Differentiation" label1=" " label2=" " out=FIGDIR/deriv8.v NULL

spike8.HH: if not exist spike65535.HH
	Central2n m=1 n=4 >j4.H
	Spike n1=128 n2=1 n3=1 k1=64 mag=1 >in.H
	Reverse which=1 < j4.H >j4r.H
	Reconv <in.H niter=65535 filter=j4r.H fderiv=0 fint=1 > spike65535.HH

FIGDIR/derivS8.v:  spike65535.HH
	Window f3=2 n3=1 < spike65535.HH >js8.1.H
	Window f3=16 n3=1 < spike65535.HH >js8.2.H
	Window f3=64 n3=1 < spike65535.HH >js8.3.H
	Window f3=256 n3=1 < spike65535.HH >js8.4.H
	Window f3=1024 n3=1 < spike65535.HH >js8.5.H
	Window f3=16384 n3=1 < spike65535.HH >js8.6.H
	Window f3=65535 n3=1 < spike65535.HH >js8.7.H
	Merge js8.1.H js8.2.H js8.3.H js8.4.H js8.5.H js8.6.H js.7.H axis=2 space=n >junk.H
	echo "d2=0" >> junk.H
	Thplot <junk.H  alpha=60 wanttitle=n title=" " label2=" " label1=" " out=junk11.v NULL
	vp_Unrotate junk11.v align=lb >junk1.v
	Wiggle poly=y pclip=100 <junk.H wanttitle=n label2=" " label1=" " out=junk2.v NULL
	Transp plane=12 <junk.H | Reverse which=1|Contour wanttitle=n wantaxis=n wantlabel=n  nc=10 dc=0.1 c0=0.25 out=junk3.v NULL
	vp_SideBySideIso junk1.v junk2.v junk3.v >FIGDIR/derivS8.v
	

FIGDIR/interpS8.v: BINDIR/Central2n BINDIR/Reconv
	BINDIR/Central2n m=0 n=4 >j4.H	
	Spike n1=128 o1=-63 d1=1 n2=1 n3=1 k1=64 mag=1 >inint.H
	Reverse which=1 < j4.H >j4r.H
	BINDIR/Reconv <inint.H niter=400 filter=j4r.H fderiv=0 fint=0 shiftback=1 > interpS8.H
	Window f3=1 j3=40 < interpS8.H >junk.H
	echo "d2=40" >> junk.H
	Thplot <junk.H  alpha=60 wanttitle=n title=" " label2="Iteration" label1=" " out=junk11.v NULL
	vp_Unrotate junk11.v align=lb >junk1.v
	Wiggle poly=y pclip=100 <junk.H wanttitle=n label2="Iteration" label1=" " out=junk2.v NULL
	Transp plane=12 <junk.H | Reverse which=1|Contour wanttitle=n wantaxis=n wantlabel=n  nc=10 dc=0.1 c0=0.25 out=junk3.v NULL
	vp_SideBySideIso junk1.v junk2.v junk3.v >FIGDIR/interpS8.v



interpspike8.H:
	BINDIR/Central2n m=0 n=4 >j4.H
	Spike n1=128 n2=1 n3=1 k1=64 mag=1 >inint.H
	Reverse which=1 < j4.H >j4r.H
$
	Spike n1=2 mag=0 n2=1 n3=1 >jzero2.H
	Merge jzero2.H inint.H space=n >jint2.H
	Reconv <jint.H niter=2 filter=j4r.H fderiv=0 fint=0 > spint2.HH
	Window f1=2 < spint2.HH >int2.H
$	
	Spike n1=256 mag=0 n2=1 n3=1 >jzero16.H
$
	Window f2=2 n2=1 < spint65535.HH >ji8.1.H
	Window f2=16 n2=1 < spint65535.HH >ji8.2.H
	Window f2=64 n2=1 < spint65535.HH >ji8.4.H
	Window f2=1024 n2=1 < spint65535.HH >ji8.5.H
	Window f2=16384 n2=1 < spint65535.HH >ji8.6.H
	Window f2=65535 n2=1 < spint65535.HH >ji8.7.H
	Merge ji8.1.H ji8.2.H ji8.3.H ji8.4.H ji8.5.H ji8.6.H ji8.7.H axis=2 space=n >interpspike8.H

int8&:
	Central2n m=0 n=4 >j4.H
	Spike n1=128 n2=1 n3=1 k1=64 mag=1 >jin.H
	Reverse which=1 < j4.H >j4r.H
	Reconv <jin.H niter=1 filter=j4r.H > jiter1.H

fcheck&:
	Central m=1 n=4 >junk.H
	Pad n1=128 <junk.H | Rtoc | Ft3d sign1=-1 |Cabs >junk1.H
	echo FRANCIS > junkaf.H
	atoF <junkaf.H >junkf.H
	Pad n1=128 <junkf.H | Rtoc | Ft3d sign1=-1 |Cabs >junk1f.H
	Merge junk1.H junk1f.H space=n axis=2 >fcheck.H

16pt.H&:  holberg.ascii.H 
	BINDIR/Central2n m=1 n=8 >francis.16.H
	atoF <holberg.ascii.H >holberg.H
	Pad n1=128 < holberg.H    | Rtoc | Ft3d sign1=-1 |Cabs >holberg.spec.H
	Pad n1=128 < francis.16.H | Rtoc | Ft3d sign1=-1 |Cabs >franc16.spec.H
	Merge holberg.spec.H franc16.spec.H  space=n axis=2 >16pt.H
	
holberg.ascii.H: if not exist holberg.H /*      Holberg's coefficients        */
        echo "0.1326224603581672E-04 -0.1260422755482438E-03 0.6766549997685445E-03 -0.2713077307504363E-02 0.9277622829117149E-02 -0.3045387209576234E-01 0.1178572129899180E+00 -0.1247830531633298E+01 0.1247830531633298E+01 -0.1178572129899180E+00  0.3045387209576234E-01 -0.9277622829117149E-02  0.2713077307504363E-02 -0.6766549997685445E-03  0.1260422755482438E-03 -0.1326224603581672E-04" >holberg.ascii.H
	
#define OBJS Central.o cgmeth.o matmul.o gaussj.o
BINDIR/Central Central: OBJS
	FLINK(OBJS,BINDIR/Central)

#define OBJSTWON Central2n.o cgmeth.o matmul.o gaussj.o cgstep.o
BINDIR/Central2n: OBJSTWON
	FLINK(OBJSTWON,BINDIR/Central2n)


Gaussj: Gaussj.o
	FLINK(Gaussj.o,Gaussj)

#define OBJREC Reconv.o ftintegslow.o ftderivslow.o
BINDIR/Reconv Reconv: OBJREC
	FLINK(OBJREC,BINDIR/Reconv)

clean&: jclean texclean
	-RM_CMD Central Gaussj Central2n *.ascii

#include <SEP.obj.rules>
#include <SEP.prog.rules>
#include <SEP.idoc.rules>
