Index: trunk/SophyaProg/Tests/Makefile
===================================================================
--- trunk/SophyaProg/Tests/Makefile	(revision 3851)
+++ trunk/SophyaProg/Tests/Makefile	(revision 3852)
@@ -1,5 +1,5 @@
 include ../BuildMgr/sophyamake.inc
  
-PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tswfits $(SOPHYAEXEP)tnfits $(SOPHYAEXEP)tfitsdt $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr $(SOPHYAEXEP)tmtrnd $(SOPHYAEXEP)tmtrnd3 $(SOPHYAEXEP)tmtdt $(SOPHYAEXEP)tparlex $(SOPHYAEXEP)tssqmx
+PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tswfits $(SOPHYAEXEP)tnfits $(SOPHYAEXEP)tfitsdt $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr $(SOPHYAEXEP)tmtrnd $(SOPHYAEXEP)tmtrnd3 $(SOPHYAEXEP)tmtdt $(SOPHYAEXEP)tparlex $(SOPHYAEXEP)tssqmx $(SOPHYAEXEP)tstinterp
  
 all: $(PROGS)
@@ -7,5 +7,5 @@
 clean:
 	rm -f $(PROGS)
-	rm -f $(SOPHYAOBJP)tssqmx.o $(SOPHYAOBJP)tparlex.o $(SOPHYAOBJP)tmtdt.o $(SOPHYAOBJP)tmtrnd3.o $(SOPHYAOBJP)tmtrnd.o $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tfitsdt.o $(SOPHYAOBJP)tnfits.o $(SOPHYAOBJP)tswfits.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
+	rm -f $(SOPHYAOBJP)tstinterp.o $(SOPHYAOBJP)tssqmx.o $(SOPHYAOBJP)tparlex.o $(SOPHYAOBJP)tmtdt.o $(SOPHYAOBJP)tmtrnd3.o $(SOPHYAOBJP)tmtrnd.o $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tfitsdt.o $(SOPHYAOBJP)tnfits.o $(SOPHYAOBJP)tswfits.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
  
 arrt: $(SOPHYAEXEP)arrt
@@ -233,4 +233,9 @@
 $(SOPHYAEXEP)tssqmx: $(SOPHYAOBJP)tssqmx.o
 	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tssqmx.o $(SOPHYAALLSLBLIST)
+ 
+tstinterp: $(SOPHYAEXEP)tstinterp
+	echo $@ " done"
+$(SOPHYAEXEP)tstinterp: $(SOPHYAOBJP)tstinterp.o
+	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tstinterp.o $(SOPHYAALLSLBLIST)
  
 $(SOPHYAOBJP)arrt.o: arrt.cc $(SOPHYAINCP)sopnamsp.h \
@@ -2779,4 +2784,69 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tstdtable.cc
  
+$(SOPHYAOBJP)tstinterp.o: tstinterp.cc $(SOPHYAINCP)slininterp.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)osx_values.h \
+  $(SOPHYAINCP)array.h $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)timestamp.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)ppersist.h $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)objfio.h $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)randinterf.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)tmatrix_tsnl.h \
+  $(SOPHYAINCP)tvector.h $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tvector_tsnl.h \
+  $(SOPHYAINCP)matharr.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)fioarr.h $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)tarray.h $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)sopemtx.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)tmatrix.h $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)arrctcast.h \
+  $(SOPHYAINCP)tarray.h $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)utilarr.h $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)diagmtx.h \
+  $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)spesqmtx_tsnl.h \
+  $(SOPHYAINCP)trngmtx.h \
+  $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)spesqmtx_tsnl.h \
+  $(SOPHYAINCP)symmtx.h $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)spesqmtx_tsnl.h \
+  $(SOPHYAINCP)tarrinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)sopnamsp.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tstinterp.cc
+ 
 $(SOPHYAOBJP)tstndblk.o: tstndblk.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
Index: trunk/SophyaProg/Tests/programs
===================================================================
--- trunk/SophyaProg/Tests/programs	(revision 3851)
+++ trunk/SophyaProg/Tests/programs	(revision 3852)
@@ -44,3 +44,4 @@
 tparlex tparlex.o
 tssqmx tssqmx.o
+tstinterp tstinterp.o
 
Index: trunk/SophyaProg/Tests/smakefile
===================================================================
--- trunk/SophyaProg/Tests/smakefile	(revision 3851)
+++ trunk/SophyaProg/Tests/smakefile	(revision 3852)
@@ -1,5 +1,5 @@
 include $(SOPHYABASE)/include/sophyamake.inc
  
-PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tswfits $(SOPHYAEXEP)tnfits $(SOPHYAEXEP)tfitsdt $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr $(SOPHYAEXEP)tmtrnd $(SOPHYAEXEP)tmtrnd3 $(SOPHYAEXEP)tmtdt $(SOPHYAEXEP)tparlex $(SOPHYAEXEP)tssqmx
+PROGS = $(SOPHYAEXEP)arrt $(SOPHYAEXEP)carrt $(SOPHYAEXEP)lpk $(SOPHYAEXEP)obj_fits $(SOPHYAEXEP)ovharr $(SOPHYAEXEP)pizthr $(SOPHYAEXEP)ppftswap $(SOPHYAEXEP)spar $(SOPHYAEXEP)sphg0 $(SOPHYAEXEP)sph2lm $(SOPHYAEXEP)tcmd $(SOPHYAEXEP)tcxxcmpldynl $(SOPHYAEXEP)tdcr $(SOPHYAEXEP)tdynl $(SOPHYAEXEP)tfft $(SOPHYAEXEP)thash $(SOPHYAEXEP)timg $(SOPHYAEXEP)tmxv $(SOPHYAEXEP)tnt $(SOPHYAEXEP)tobjio2 $(SOPHYAEXEP)tobjio $(SOPHYAEXEP)tpipe $(SOPHYAEXEP)tsimplex $(SOPHYAEXEP)tsphereecp $(SOPHYAEXEP)tspm2 $(SOPHYAEXEP)tspm $(SOPHYAEXEP)tstboloread $(SOPHYAEXEP)tstcolread $(SOPHYAEXEP)tstdtable $(SOPHYAEXEP)tstndblk $(SOPHYAEXEP)tstppfwrapstl $(SOPHYAEXEP)tstsegdb $(SOPHYAEXEP)tswfits $(SOPHYAEXEP)tnfits $(SOPHYAEXEP)tfitsdt $(SOPHYAEXEP)tsttmat $(SOPHYAEXEP)tsttminv $(SOPHYAEXEP)tsttvec $(SOPHYAEXEP)ttimestamp $(SOPHYAEXEP)zthr $(SOPHYAEXEP)tmtrnd $(SOPHYAEXEP)tmtrnd3 $(SOPHYAEXEP)tmtdt $(SOPHYAEXEP)tparlex $(SOPHYAEXEP)tssqmx $(SOPHYAEXEP)tstinterp
  
 all: $(PROGS)
@@ -7,5 +7,5 @@
 clean:
 	rm -f $(PROGS)
-	rm -f $(SOPHYAOBJP)tssqmx.o $(SOPHYAOBJP)tparlex.o $(SOPHYAOBJP)tmtdt.o $(SOPHYAOBJP)tmtrnd3.o $(SOPHYAOBJP)tmtrnd.o $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tfitsdt.o $(SOPHYAOBJP)tnfits.o $(SOPHYAOBJP)tswfits.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
+	rm -f $(SOPHYAOBJP)tstinterp.o $(SOPHYAOBJP)tssqmx.o $(SOPHYAOBJP)tparlex.o $(SOPHYAOBJP)tmtdt.o $(SOPHYAOBJP)tmtrnd3.o $(SOPHYAOBJP)tmtrnd.o $(SOPHYAOBJP)zthr.o $(SOPHYAOBJP)ttimestamp.o $(SOPHYAOBJP)tsttvec.o $(SOPHYAOBJP)tsttminv.o $(SOPHYAOBJP)tsttmat.o $(SOPHYAOBJP)tfitsdt.o $(SOPHYAOBJP)tnfits.o $(SOPHYAOBJP)tswfits.o $(SOPHYAOBJP)tstsegdb.o $(SOPHYAOBJP)tstppfwrapstl.o $(SOPHYAOBJP)tstndblk.o $(SOPHYAOBJP)tstdtable.o $(SOPHYAOBJP)tstcolread.o $(SOPHYAOBJP)tstboloread.o $(SOPHYAOBJP)tspm.o $(SOPHYAOBJP)tspm2.o $(SOPHYAOBJP)tsphereecp.o $(SOPHYAOBJP)tsimplex.o $(SOPHYAOBJP)tpipe.o $(SOPHYAOBJP)tobjio.o $(SOPHYAOBJP)tobjio2.o $(SOPHYAOBJP)tnt.o $(SOPHYAOBJP)tmxv.o $(SOPHYAOBJP)timg.o $(SOPHYAOBJP)thash.o $(SOPHYAOBJP)tfft.o $(SOPHYAOBJP)tdynl.o $(SOPHYAOBJP)tdcr.o $(SOPHYAOBJP)tcxxcmpldynl.o $(SOPHYAOBJP)tcmd.o $(SOPHYAOBJP)sph2lm.o $(SOPHYAOBJP)sphg0.o $(SOPHYAOBJP)spar.o $(SOPHYAOBJP)ppftswap.o $(SOPHYAOBJP)pizthr.o $(SOPHYAOBJP)ovharr.o $(SOPHYAOBJP)obj_fits.o $(SOPHYAOBJP)lpk.o $(SOPHYAOBJP)carrt.o $(SOPHYAOBJP)arrt.o
  
 arrt: $(SOPHYAEXEP)arrt
@@ -233,4 +233,9 @@
 $(SOPHYAEXEP)tssqmx: $(SOPHYAOBJP)tssqmx.o
 	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tssqmx.o $(SOPHYAALLSLBLIST)
+ 
+tstinterp: $(SOPHYAEXEP)tstinterp
+	echo $@ " done"
+$(SOPHYAEXEP)tstinterp: $(SOPHYAOBJP)tstinterp.o
+	$(CXXLINK) $(CXXTEMPFLG) -o $@ $(SOPHYAOBJP)tstinterp.o $(SOPHYAALLSLBLIST)
  
 $(SOPHYAOBJP)arrt.o: arrt.cc $(SOPHYAINCP)sopnamsp.h \
@@ -2779,4 +2784,69 @@
 	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tstdtable.cc
  
+$(SOPHYAOBJP)tstinterp.o: tstinterp.cc $(SOPHYAINCP)slininterp.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)osx_values.h \
+  $(SOPHYAINCP)array.h $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)basarr.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)timestamp.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)objfio.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)gnumd5.h \
+  $(SOPHYAINCP)ppfbinstream.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)rawstream.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)ppfnametag.h \
+  $(SOPHYAINCP)ppersist.h $(SOPHYAINCP)dvlist.h \
+  $(SOPHYAINCP)objfio.h $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)utilarr.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)mutyv.h \
+  $(SOPHYAINCP)randinterf.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)anydataobj.h \
+  $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)tmatrix_tsnl.h \
+  $(SOPHYAINCP)tvector.h $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tvector_tsnl.h \
+  $(SOPHYAINCP)matharr.h \
+  $(SOPHYAINCP)machdefs.h $(SOPHYAINCP)tarray.h \
+  $(SOPHYAINCP)fioarr.h $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)tarray.h $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)ppersist.h \
+  $(SOPHYAINCP)sopemtx.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)tmatrix.h $(SOPHYAINCP)tvector.h \
+  $(SOPHYAINCP)arrctcast.h \
+  $(SOPHYAINCP)tarray.h $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)ndatablock.h \
+  $(SOPHYAINCP)pexceptions.h \
+  $(SOPHYAINCP)utilarr.h $(SOPHYAINCP)tmatrix.h \
+  $(SOPHYAINCP)diagmtx.h \
+  $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)spesqmtx_tsnl.h \
+  $(SOPHYAINCP)trngmtx.h \
+  $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)spesqmtx_tsnl.h \
+  $(SOPHYAINCP)symmtx.h $(SOPHYAINCP)spesqmtx.h \
+  $(SOPHYAINCP)spesqmtx_tsnl.h \
+  $(SOPHYAINCP)tarrinit.h \
+  $(SOPHYAINCP)sophyainit.h \
+  $(SOPHYAINCP)machdefs.h \
+  $(SOPHYAINCP)sopnamsp.h
+	$(CXXCOMPILE) $(CXXTEMPFLG) -o $@  tstinterp.cc
+ 
 $(SOPHYAOBJP)tstndblk.o: tstndblk.cc $(SOPHYAINCP)sopnamsp.h \
   $(SOPHYAINCP)machdefs.h \
Index: trunk/SophyaProg/Tests/tparlex.cc
===================================================================
--- trunk/SophyaProg/Tests/tparlex.cc	(revision 3851)
+++ trunk/SophyaProg/Tests/tparlex.cc	(revision 3852)
@@ -106,5 +106,7 @@
   {
     nbex++;
-    cout << " ---- TParTaskA::execute(tid=" << tid << ") Start computing - NbExec= " << nbex << endl;
+    cout << " ---- TParTaskA::execute(tid=" << tid << ") NbParallelThr=" << getNbParallelThreads()  
+	 << " Start computing - NbExec= " << nbex << endl;
+
     Vector vx = mxa.Row(tid);
     r_8* x = vx.Data();
@@ -176,5 +178,6 @@
   {
     nbex++;
-    cout << " ---- TParTaskB::execute(tid=" << tid << ") Start computing - NbExec= " << nbex << endl;
+    cout << " ---- TParTaskB::execute(tid=" << tid << ") NbParallelThr=" << getNbParallelThreads()  
+	 << " Start computing - NbExec= " << nbex << endl;
     sa_size_t sz = mxb.NRows();
     // On s'arrange pour que chaque thread calcule une partie de la matrice resultat
Index: trunk/SophyaProg/Tests/tstinterp.cc
===================================================================
--- trunk/SophyaProg/Tests/tstinterp.cc	(revision 3852)
+++ trunk/SophyaProg/Tests/tstinterp.cc	(revision 3852)
@@ -0,0 +1,95 @@
+#include <iostream>
+#include <fstream>
+#include <math.h>
+#include <vector>
+#include <string>
+#include <stdexcept>
+
+#include "slininterp.h"
+
+using namespace std;
+
+#include "array.h"
+#include "tarrinit.h"
+#include "sopnamsp.h"
+
+
+//-------------------------------------------
+// --- Test program for class SLinInterp1D : 
+//-------------------------------------------
+
+int main(int narg, char* arg[]) 
+{ 
+  cout << " +++++++  Programme test de la classe SLinInterp1D  +++++++ " << endl;
+// To compile without SOPHYA : Comment the following  line 
+  TArrayInitiator arrinit_;
+  try {
+    vector<double> xs;
+    vector<double> ys;
+    vector<double> yreg;
+    
+    double lesx[6] = {2.,3.,5.,9.5,11.,14.};
+    for(int i=0;i<6; i++) {
+      xs.push_back(lesx[i]);
+      ys.push_back(lesx[i]*lesx[i]);
+    }
+        
+    double xmin = 0.5;
+    double xmax = 0.;
+    for(int i=0; i<=12; i++) {
+      xmax = xmin+i*0.05;
+      yreg.push_back(sin(xmax)*cos(2.2*xmax));
+    }
+
+    {
+      cout << " --- Creating file finterpXY.dat from xs,ys vectors ..." << endl;
+      ofstream ofxy("finterpXY.dat");
+      for(size_t i=0; i<xs.size(); i++) 
+	ofxy << xs[i] << " " << ys[i] << " " << endl;
+ 
+      cout << " --- Creating file finterpYR.dat from yreg vector ..."  << endl;
+      ofstream ofy("finterpYR.dat");
+      for(size_t i=0; i<yreg.size(); i++) 
+	ofy << "  " << yreg[i] << endl;
+    }
+    SLinInterp1D interp(xs, ys);  // sans utilisation de X regularly spaced 
+    SLinInterp1D interpR(xs, ys, 200);   // avec utilisation de X regularly spaced 
+    SLinInterp1D interpYR(xmin, xmax, yreg);
+    interp.Print(2);
+    interpR.Print(2);
+    interpYR.Print(2);
+
+    cout << " ++++++++++++++++ From file +++++++++++++++++ " << endl;
+    SLinInterp1D interpxyf, interpyf;
+    string fname="finterpXY.dat";
+    interpxyf.ReadXYFromFile(fname);
+    fname="finterpYR.dat";
+    interpyf.ReadYFromFile(fname,xmin,xmax);
+    interpxyf.Print(2);
+    interpyf.Print(2);
+    cout << " ++++++++++++++++ Checking from file - without file +++++++++++++++++ " << endl;
+    cout << " ++++++++++++ Interp With YRegular +++++++++++++ " << endl;
+
+    for(int j=-3; j<=27; j++) {
+      double x=j*0.025+xmin;
+      double y = sin(x)*cos(2.2*x);
+      cout << " sin()cos() -  J=" << j << " x=" << x << " y=" << y << "  yIterpolYR=" << interpYR(x) 
+	   << "  interpYFile=  " << interpyf(x) << endl;
+    }
+    cout << " ++++++++++++++++ Interp With list of X,Y  +++++++++++++++ " << endl;
+    for(int j=0; j<40; j++) {
+      double x=j*0.5;
+      cout << " J=" << j << " x=" << x << " y=" << x*x << "  yIterpol=" << interp(x) 
+	   << "  interpxyf=" << interpxyf(x)  << "  yIterpolR=" << interpR(x) << endl; 
+    }
+    cout << " +++++++++++++++++++++++++++++++++++++++++++++++++++ " << endl;
+
+  }
+  catch(std::exception& exc) {
+    cout << " Catched execption - msg=" << exc.what() << endl;
+  }
+  cout << " ---- FIN du programme test de la classe SLinInterp1D ---- " << endl;
+  
+}
+
+
